• Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

    • Tutorial
    Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

    Что мы будем рассматривать в данной статье?

    В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
    В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
    В Части 6 — послесловие
    Читать дальше →
  • Автоматизация workflow небольшой команды разработки (Часть 2)

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

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

      На протяжении 4-х лет у нас выработался следующий формат команды разработки:
      • 1 Project Manager, он же Product Manager, он же Delivery Manager.
      • 4-5 программистов
      • 1 Team lead
      • 3-4 QA
      • 1 Аналитик
      • 1 Техпис (иногда он же и аналитик в одном лице).

      В итоге команда размером около 10-11 человек. Таких команд (ячеек) у нас несколько.

      Работа в основном в стиле стартапа, когда нет конкретной и подробной постановки. Очень часто эксперименты вроде “а давайте попробуем так, посмотрим что получится” или “вы классно все сделали, но теперь надо все совсем по-другому”.
      За эти годы концепцию нашей работы можно описать одной фразой — это “стремительная смена концепции”.
      Понятное дело, что применить в таких условиях различные методологии никак не удавалось.

      Начинал в этой системе я как программист, потом Team lead, ну а теперь PM (DM). Т.е. руковожу, полностью участвую в проектировании и иногда даже пописываю. Во времена моего программирования у меня был замечательный ПМ (выходец из тестировщиков), которая поддерживала все мои идеи по автоматизации workflow. Даже более того, концептуально этот процесс придуман ей, а я уже смог его технически реализовать и в некоторых местах усовершенствовать.
      Читать дальше →
    • Форматирование сообщений для Yii::t()

        В данной статье рассмотрены особенности форматирования сообщений для системы интернационализации фреймворка Yii 2. В основном, это сведения из документации фреймворка и библиотеки ICU, с дополнительными пояснениями и примерами. Большая часть информации подойдет для любого фреймворка, который использует библиотеку ICU для интернационализации сообщений. В примерах подразумевается перевод сообщений с английского на русский ('en-US' => 'ru-RU'). Настройка системы интернационализации в статье не рассматривается.
        Читать дальше →
        • +11
        • 24,4k
        • 9
      • Лекции Технопарка. 1 семестр. Алгоритмы и структуры данных

        • Tutorial
        Очередной пост в рамках нашего цикла лекций Технопарка. В этот раз мы предлагаем вашему вниманию курс, посвящённый алгоритмам и структурам данных. Автор курса — Степан Мацкевич, сотрудник компании ABBYY.

        Лекция 1. Основы


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


        Читать дальше →
      • Текстовый чат для сайта

        image

        Хочу поделиться опытом создания текстового чата на основе nginx-push-stream-module модуля Nginx, PHP и Javascript. Этот модуль функционирует по принципу long polling и может быть использован как для обмена мгновенными сообщениями между пользователями, так и для системы push–уведомлений.
        Читать дальше →
      • Создание API: в рамку и на стену

        • Перевод
        • Tutorial
        Каждый программист — проектировщик API. Хорошие программы состоят из модулей, а протокол взаимодействия модулей — это тоже API. Хорошие модули используются повторно.

        API — это большая сила и большая ответственность. У хорошего API будут благодарные пользователи; поддержка плохого превратится в кошмар.

        Публичный API — не воробей, опубликуешь — не уберешь. Есть только одна попытка сделать все правильно, поэтому постарайся.

        API должно быть легко использовать, но сложно использовать неправильно. Сделать что-то простое с помощью такого API должно быть просто; сложное — возможно; сделать что-то неправильно должно быть невозможно, или, по крайней мере, трудно.

        API должен описывать сам себя. Изучение кода на таком API не вызывает желания читать комментарии. Вообще, комментарии редко нужны.

        Перед разработкой API собери требования с долей здорового скептицизма. Осознай общие задачи и реши их.

        Оформляй требования как шаблоны использования API. Сверяйся с ними в процессе проектирования.
        Читать дальше →
      • 8 сортов муды в твоей веб-студии

          Муда, что по-японски означает «потери» — это любая деятельность, которая потребляет ресурсы, но не создает ценности для клиента. (Источник).



          Эта короткая заметка для тех, кто системно ищет, где его студия теряет деньги. Похвальное занятие в наше весёлое время.

          Хорошо систематизировали виды потерь ребята из Toyota. Тойотовцы выделяют 7-8 видов муды, потерь на производстве. Посмотрим, есть ли аналоги между потерями в автомобилестроении и работе студии.
          Читать дальше →
        • Ratchet 2.0 — самый красивый HTML5-фреймворк теперь дружит и с iOS, и с Android



            Ratchet — так называется HTML5-фреймворк для быстрого прототипирования мобильных приложений, который 1,5 года назад создали те же парни, которые когда-то выпустили Bootstrap.

            Инструмент позволяет быстро создать красивый интерфейс мобильного приложения — и дает вам красивые стили и замечательные иконки, согласованные с гайдлайном в зависимости от платформы. Можно сделать прототип, а можно завернуть в PhoneGap и без особых усилий получить сравнимый с нативным интерфейс приложения в продакшене.
            Фреймворк очень прост в использовании и прекрасно документирован.

            Я являюсь поклонником Ratchet с момента выхода первой версии. Тогда он был доступен только под iOS.
            Не так давно вышла вторая версия, которая наряду с iOS поддерживает Android. Ура-ура!
            (правда, обратной совместимости с первой версией нет)

            Кому интересно про новые возможности Ratchet 2.0 — прошу под кат!
            Читать дальше →
          • «Галоп пикселя — часть первая» — базовые понятия, этапы взросления, прикладные упражнения

            • Tutorial


            «Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
            «Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
            «Галоп пикселя», часть III — Анимация (линк)
            «Галоп пикселя», часть IV — Анимация света и тени (линк)
            «Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)

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

            В данной публикации мы не рассматриваем программы, но копаем нечто большее. Сами пиксели. От истоков, начав с четырехцветной CGA-эры, вплоть до эпохи ренессанса. В публикации мы не рассматриваем игры, не поем дифирамбы художникам прошлого (разве что самую малость), занимаясь именно процессом создания простейшего пиксель-арта. Данный материал будет интересен начинающим артистам и интересующимся. Статья практически не содержит теории, нудных умозаключений и представляет сторонний взгляд на мир пиксель-арта со стороны некоего самоучки, который предпочел открыть каждую из Америк самостоятельно, не оглядываясь на официальных, общепризнанных и задокументированных Колумбов. Статья снабжена обильным количеством поясняющих иллюстраций, примеров, и советов.

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


            Лопатить пиксели
          • 01 Ссылки для UX-специалистов

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


              Читать дальше →
            • Что нужно знать, чтобы хорошо рисовать?

              • Перевод
              • Tutorial


              Давид Ревуа — прекрасный художник, работающий со свободным программным обеспечением, постоянный член сообществ Krita Foundation и Blender Institute, концепт-художник анимационных проектов Gooseberry Open Movie Project, Mango Open Movie Project (Tears of Steel) и Durian Open Movie Project (Sintel). В этой статье он делится с начинающими художниками списком знаний, которые необходимо приобрести, чтобы работы получались реалистичными. Он обращает внимание, что для рисования «в цифре» следует обзавестись теми же навыками, что и в традиционной технике. Итак, приобщимся к его опыту.
              Читать дальше →
            • Попробуй БЭМ на вкус!

              • Tutorial
              Эта статья рассказывает о том, как создать проект с использованием БЭМ-технологий.
              Мы шаг за шагом создадим страничку каталога товаров, пользуясь принципами БЭМ в CSS, возможностями писать декларативный JavaScript на фреймворке i-bem.js и с использованием шаблонизатора BEMHTML. Помогать делать всё это будут bem tools, в частности — инструмент для разработки bem server.

              Онлайн магазин

              Важно: в статье нет особенных подробностей, её цель — получить проект максимально быстро. Текст, раскрывающий больше информации, пройдёт следующим постом.
              Читать дальше →
            • Учебник AngularJS: Всеобъемлющее руководство, часть 1

              • Перевод
              • Tutorial

              Содержание


              1 Введение в AngularJS
              2 Engineering concepts in JavaScript frameworks
              3 Modules
              4 Understanding $scope
              5 Controllers
              6 Services and Factories
              7 Templating with the Angular core
              8 Directives (Core)
              9 Directives (Custom)
              10 Filters (Core)
              11 Filters (Custom)
              12 Dynamic routing with $routeProvider
              13 Form Validation
              14 Server communication with $http and $resource

              1 Введение в AngularJS


              Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

              MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

              Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
              Читать дальше →
            • Как мы пытались внедрить Яндекс.Кассу

              Предисловие


              Сколько живу рядом с миром технологий, всегда думал, что есть ИТ элита — люди которые с закрытыми глазами пишут код, с легкостью могут в уме генерировать md5 и переписывать ядра unix. И, сказать по правде, я думал, именно такие ребята работают в компании Яндекс. Мы очень удивились, что их детище под названием Яндекс.Касса находится в глубочайшем альфа-тестировании. О некоторых проблемах, с которыми мы столкнулись и пути их решения в этой статье.
              Читать дальше →
            • Восстанавливаем флешки

                Хотя со временем флешки становятся все дешевле и объемнее это не значит, что при любом сбое ее можно выбросить и приобрести другую. Хотя многие именно так и делают, даже на задумываясь о том, что ситуацию еще можно спасти. В свое время мы тряслись за каждую флоппи-дискету, почему же не поковыряться и с флешкой, чтобы дать ей вторую или даже не третью жизнь. Думаю, у многих в столе рядом с компьютером найдется какая-нибудь «мертвая» флешка-брелок, которую выбросить жалко из-за того, что она красивая или, хотя бы потому, что какое-то время назад она была полезна. Конечно, иногда флешки «умирают» раз и навсегда, но зачастую они находятся в состоянии «клинической смерти», а как известно, такое состояние обратимо.

                image
                Читать дальше →
              • Поиграем в жизнь

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

                  А теперь представьте, что на этом простом листочке мы создадим простой, но оттого не менее впечатляющий симулятор жизни. Ни больше, ни меньше. Конечно, он будет очень упрощенный, но ведь чтобы понять что-то сложное надо начать с простого, не так ли? Этот симулятор можно применить ко множеству наук и с каждой из них он будет иметь множество достаточно интересных точек соприкосновения. От социологии до астрономии, от биологии до электротехники.

                  Ладно, хватит завлекалок. Пора удариться в математику.


                  Включить мозги