• Стоит ли бояться DevOps-а современному QA



      Вы слышали про DevOps, но слабо представляете что это такое? Может быть, вы QA-инженер и вас пугает, что спрос на вас может упасть из-за DevOps? Или вы разработчик и хотите прокачать себя и свою команду до внедрения DevOps-а, но не знаете, с чего начать? Ответы под капотом.

      На вопросы отвечает Full-stack Engineer в компании ZeroTurnaround, со-ведущий русскоговорящего DevOps подкаста «Two Devs One Ops» Сергей bsideup Егоров (twitter.com/bsideup).

      Сергей Егоров:

      «… Деплой, изменение инфраструктуры, недостаток знаний о разных частях системы, прозрачность доставки изменений, сложность локальной разработки, “борьба с огнём” после выкатывания на боевые сервера… по каждому из них DevOps даёт ответы и рекомендации»
      Читать дальше →
      • +18
      • 15,2k
      • 2
    • Гид по заголовкам кэширования HTTP для начинающих

      • Перевод
      В статье данные сведения по заголовкам кэширования (ЗК) для HTTP и соответствующее поведение сетей доставки контента (CDN). Если вам хочется разобраться, каким образом заголовки кэширования вписываются в современный веб, или вам просто интересно, о чём говорят ваши коллеги – эта статья для вас.

      Если вы уже понимаете преимущества ЗК, и хотите расширить свои знания, я рекомендую вам обратиться к документации от W3.

      Что могут ЗК сделать для вас?


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

      Настройки кэширования веб-трафика крайне важны для посещаемых сайтов. Если вы платите за трафик, получаете доход от электронной коммерции, или просто хотите поддерживать свою репутацию хорошего веб-разработчика, вам нужно разбираться в том, как работает кэширование.
      Читать дальше →
      • +30
      • 55,4k
      • 8
    • Краткая шпаргалка по tmux (менеджеру терминалов)

        tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).

        image

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

        Читать дальше →
      • Хочется плакать от российских сайтов недвижимости

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

          Целей у моей писанины две: открыть для себя нормальный сайт по питерской недвижимости — вдруг такой есть. Это главное. И вторая цель — иногда сидишь на жопе, и вроде все ок… до тех пор, пока со стороны не ткнут носом в твое «дело». Так вот, товарищи, которые занимаются bn, bkn, bsn, eip, emls, itakа, — эти вот «интернет проекты» — это не нормально, это даже не позавчера.

          Вот как надо. Хотя бы.
        • L-Systems — математическая красота растений

            Красота растений привлекала внимание математиков веками. Активнее всего изучались интересные геометрические свойства растений, такие как симметрия листьев относительно центральной оси, радиальная симметрия цветов, и спиральное расположение семечек в шишках. «Красота связана с симметрией» (H. Weyl. Symmetry). Во время роста живых организмов, особенно растений, можно четко видеть регулярно повторяющиеся многоклеточные структуры. В случае составных листьев, например, маленькие листочки, которые являются частью большого взрослого листа, имеют ту же форму, что весь лист имел на раннем этапе формирования.

            В 1968г. Венгерский биолог и ботаник Аристид Линденмайер (Aristid Lindenmayer) предложил математическую модель для изучения развития простых многоклеточных организмов, которая позже была расширена и используется для моделирования сложных ветвящихся структур — разнообразных деревьев и цветов. Эта модель получила название Lindenmayer System, или просто L-System.

            Для тех, кто в теме и не хочет все читать целиком, проскрольте вниз, есть вопрос.
            Дальше интереснее
          • Тестирование «быстрой MongoDB» – TokuMX в условиях, близких к реальности

              В последнем выпуске Радио-Т мы упоминали TokuMX — High-Performance MongoDB Distribution. Продукт этот звучит интересно — 9ти кратное сжатие данных в комплекте с 20ти кратным приростом скорости и поддержкой транзакций. При этом переход с mongo на tokumx весьма прост и с точки зрения внешнего наблюдателя — полностью прозрачен. Такое волшебство показалось мне более чем привлекательным и я решил проверить насколько все хорошо на практике.
              Читать дальше →
            • MacroGroovy — работа с AST на Groovy ещё никогда не была такой простой

                image
                Последнее время часто приходится работать с такой мощной возможностью Groovy как Compile-time AST Transformations.

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

                def someVariable = new ConstantExpression("someValue");
                def returnStatement = new ReturnStatement(
                    new ConstructorCallExpression(
                        ClassHelper.make(SomeCoolClass),
                        new ArgumentListExpression(someVariable)
                    )
                );
                


                До боли знакомые конструкции, не правда ли? Хотите, чтобы было вот так?
                def someVariable = macro { "someValue" }
                def returnStatement = macro { return new SomeCoolClass($v{ someVariable }) }
                


                Или даже так?
                def constructorCall = macro { new SomeCoolClass($v{ macro { "someValue" } }) }
                


                В данной статье речь пойдёт о моём решении этой проблемы, максимально близком к родному решению Groovy — github.com/bsideup/MacroGroovy

                Читать дальше →
              • Публикация артефакта в Maven Central через Sonatype OSS Repository Hosting Service

                На написание этой статьи меня сподвигла некоторая разрозненность источников информации по такой
                важной, на мой взгляд, теме, как публикация своих артефактов в Maven Central. Конечно, следует
                отдать должное сотрудникам Sonatype: их официальный гайд (ссылка в конце статьи) достаточно полно
                описывает весь процесс. Но в нём нет некоторых неочевидных тонкостей (вроде проблемы хранения
                паролей), и он сам выглядит немного неряшливо. На русском же языке на эту тему ресурсов я не нашёл в
                принципе. Лично для меня это не страшно, но многих это может остановить.

                Внимание, много текста
              • Пишем deploy-скрипт для Grails

                  Зачем нужен deploy-скрипт


                  Grails-приложения очень легко собираются в WAR. Делается это так:

                  grails war
                  

                  Помимо того, что WAR собирается, очень хочется этот WAR еще и установить на сервер. В нашем случае это Tomcat. Установка вручную требует некоторой возни:
                  1. Остановить сервер. Убить процесс, если он не остановился сам.
                  2. Удалить старые файлы приложения (на всякий случай)
                  3. Скопировать новый WAR на сервер. Иногда его нужно переименовывать (скажем, в ROOT.war)
                  В Maven эту работу может проделать, например, cargo plugin. Но с ним много приключений и настройки, причем он не особо учитывает особенности сервере.

                  Мы также можем использовать shell-скрипт. Но зачем писать на неудобном языке shell, когда есть замечательный кроссплатформенный язык Groovy?

                  Подробности
                • Запиши свой терминал

                    Теперь если Вас просят показать, как что-то выполняется в консоли, не надо копировать вывод из putty или записывать видео через snagIt. Утилита ascii.io сделает все это за Вас.
                    image
                    Читать дальше →
                  • Puppet, система управления конфигурациями. Часть II

                      R2-D2 и C-3PO
                      В первой части я рассказал об основных особенностях системы управления конфигурациями Puppet. Во второй части мы настроим две машины для того, чтобы попробовать базовые вещи.

                      Для имён хостов я решил использовать имена роботов из эпопеи Джорджа Лукаса «Звёздные войны»: R2D2 и C-3PO. Так как R2 умнее, то он будет управлять C-3PO.
                      Читать дальше →
                    • AWS Insight: Virtual Private Cloud

                        Привет, хабрасообщество! image

                        Сегодня я, наконец, набрался смелости и имею время рассказать вам о замечательном сервисе, который предоставляет Amazon Web Services: Virtual Private Cloud — VPC.

                        VPC — это сервис, позволяющий создавать приватные изолированные сети в публичном облаке Amazon. Что же предоставляет VPC?
                        • Подсети серых адресов
                        • Полный контроль над адресами
                        • Динамическое и удобное управление сетевыми устройствами и маршрутизацией
                        • Поддерживает EC2, RDS, SQS, ElastiCache и другие сервисы
                        • Многое другое..

                        У VPC есть много внутренних понятий и терминов, давайте я буду их описывать по мере настройки. И сегодня я вместе с вами настрою кроссзонную сеть для VPC для большей отказоустойчивости.
                        Под катом инструкции, объяснения и картинки
                      • Создание нативной библиотеки расширений для OpenFL, часть вторая

                        • Перевод
                        • Tutorial

                        Предисловие


                        Это продолжение перевода серии статей о создании расширений для OpenFL от Laurent Bédubourg. В первой части мы создали простое расширение и скомпилировали его для нативных платформ (Linux/Windows, Android, iOS). В этой части мы добавим в наше приложение на iOS возможность отправлять твиты.

                        Что мы узнаем:
                        • как структурировать исходный код нашего расширения для различных платформ
                        • как связать код на haxe и функции из нашего расширения
                        • как линковаться с iOS фреймворками (с фреймворком Twitter, в частности)

                        Читать дальше →
                      • Haxe + OpenFL: даже моя бабушка сможет сделать игру под iOS

                        • Tutorial


                        Привет, %USERNAME%! решил рассказать тебе, как, приложив минимальные усилия, начать разрабатывать на Haxe игры под iOS (на самом деле и не только, но я решил ограничить данную статью именно этой платформой).

                        Для этого нам понадобятся:
                        1. бабушка Руки. Желательно прямые. Ещё желательней из плеч;
                        2. Mac OS X;
                        3. XCode;
                        4. Идея для игры.


                        Приглашаю всех под кат, даже если чего-либо из списка у Вас нет в наличии.
                        Читать дальше →
                      • Создание нативной библиотеки расширений для OpenFL (Haxe)

                        Предисловие


                        Если вы задумались о создании мобильных приложений, но не знаете с чего начать, у вас есть достаточно времени на эксперименты и изучение нового, то позвольте порекомендовать вам в качестве инструмента выбрать язык программирования haxe. Возможно, вы о нем уже слышали и возможно, слышали о нем, как о некоторой замене для Flash'a. Это не совсем так, и можно даже сказать совсем не так.

                        Да, стандартная библиотека haxe имеет подмножество классов и функций, организационно похожих на стандартную библиотеку actionscript 3. Но это не мешает создавать приложения для нативных платформ, таких как Linux, Windows, Android, Mac, iOS.

                        При создании приложений для нативных платформ возможностей стандартной библиотеки не хватает и приходится искать сторонние библиотеки или разрабатывать свои. Я пошел по второму пути и для текущего проекта (небольшой игры, похожей на TripleTown по механике) разработал библиотеку для работы с Flurry, Localytics, GooglePlay Game Services и некоторыми другими сервисами.

                        В представленом ниже переводе, описывается с чего начать, если вы хотите создать библиотеку расширений для haxe и фреймворка OpenFL (бывший NME), в частности. Автор оригинальной статьи Laurent Bédubourg.

                        Читать дальше →
                        • +12
                        • 5,5k
                        • 7
                      • Балансировщик нагрузки для Amazon EC2 c автомасштабированием

                        Многие знают, что Amazon предоставляет возможность автоматически наращивать мощность вашего пула (увеличивать количество виртуальных серверов) в зависимости от нагрузки. Однако я не сумел найти в русскоязычном сегменте сети толкового описания практической реализации такой схемы. Рискну представить на суд общественности итог моих штудий на данную тему.

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

                        Читать дальше →
                        • +37
                        • 8,8k
                        • 9
                      • Отчёт по онлайн конференции RuHaxe #1

                          8 июня 2013 года прошла онлайн-конференция RuHaxe — первое событие в рунете, посвященное Haxe-платформе.

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

                          Под катом Вы найдёте видеозаписи каждого из четырёх выступлений, а также информацию о дальнейших планах развития конференции.
                          Читать дальше →
                          • +19
                          • 8,1k
                          • 8
                        • Настройка Travis-CI для iOS проектов с открытым кодом

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

                            Примерно два месяца назад, в апреле 2013 года комапания Sauce labs объявила о поддержке iOS / Mac для CI-сервера Travis. Сам сервис существует уже довольно давно, и пользуется довольно большой популярностью в open-source community благодаря поддержке большого количества языков и удобству использования. Cервис бесплатен для любого пользователя github и открытых репозиториев. На Хабре уже имеется пост о сервисе и его настройки для тестирования Ruby-проектов, поэтому в этой статье я хотел бы рассказать о более специфической стороне сервиса — настройке автоматической сборке билдов iOS проектов на Travis-CI. Основным фокусом этой статьи будет связка CocoaPods + Cedar + Travis CI, однако я постараюсь рассказать немного и о других связанных с темой вещах.

                            Итак, начнем.
                            Читать дальше →
                          • Легендарный JS-Livecoding пример Брета Виктора (Bret Victor) сделали на Flash



                              Bret Victor свою реализацию так и не показал, Light-Table — красиво выглядит только на демках, в реальности детский сад, а COLT вот он. Flash сообществу есть чем гордиться.

                              Ссылка на «Bret Victor — inventing on principle» в подписи к видео на youtube.
                              Читать дальше →
                            • Sphinx-документация на GitHub Pages

                              • Tutorial
                              GitHub Pages — это такая классная шизофреническая штука, которая может а)показывать созданную при помощи встроенного редактора страничку, б)генерировать Jekyll-блог и в)отображать html-файлы на произвольном домене.
                              В последнем образе она нас и интересует для размещения документации, написанной с использованием Sphinx.
                              Читать дальше →