Pull to refresh
46
0
Сергей Егоров @bsideup

Пользователь

Send message

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

Reading time8 min
Views18K


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

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

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

«… Деплой, изменение инфраструктуры, недостаток знаний о разных частях системы, прозрачность доставки изменений, сложность локальной разработки, “борьба с огнём” после выкатывания на боевые сервера… по каждому из них DevOps даёт ответы и рекомендации»
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments2

Гид по заголовкам кэширования HTTP для начинающих

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

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

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


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

Настройки кэширования веб-трафика крайне важны для посещаемых сайтов. Если вы платите за трафик, получаете доход от электронной коммерции, или просто хотите поддерживать свою репутацию хорошего веб-разработчика, вам нужно разбираться в том, как работает кэширование.
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments8

Краткая шпаргалка по tmux (менеджеру терминалов)

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

image

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

Читать дальше →
Total votes 59: ↑53 and ↓6+47
Comments50

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

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

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

Вот как надо. Хотя бы.
Total votes 131: ↑109 and ↓22+87
Comments119

L-Systems — математическая красота растений

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

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

Для тех, кто в теме и не хочет все читать целиком, проскрольте вниз, есть вопрос.
Дальше интереснее
Total votes 87: ↑85 and ↓2+83
Comments33

Тестирование «быстрой MongoDB» – TokuMX в условиях, близких к реальности

Reading time4 min
Views21K
В последнем выпуске Радио-Т мы упоминали TokuMX — High-Performance MongoDB Distribution. Продукт этот звучит интересно — 9ти кратное сжатие данных в комплекте с 20ти кратным приростом скорости и поддержкой транзакций. При этом переход с mongo на tokumx весьма прост и с точки зрения внешнего наблюдателя — полностью прозрачен. Такое волшебство показалось мне более чем привлекательным и я решил проверить насколько все хорошо на практике.
Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments16

MacroGroovy — работа с AST на Groovy ещё никогда не была такой простой

Reading time5 min
Views5.9K
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

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments11

Публикация артефакта в Maven Central через Sonatype OSS Repository Hosting Service

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

Внимание, много текста
Total votes 5: ↑5 and ↓0+5
Comments12

Пишем deploy-скрипт для Grails

Reading time5 min
Views3.5K

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


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

grails war

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

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

Подробности
Total votes 6: ↑4 and ↓2+2
Comments4

Puppet, система управления конфигурациями. Часть II

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

Для имён хостов я решил использовать имена роботов из эпопеи Джорджа Лукаса «Звёздные войны»: R2D2 и C-3PO. Так как R2 умнее, то он будет управлять C-3PO.
Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments11

AWS Insight: Virtual Private Cloud

Reading time4 min
Views22K
Привет, хабрасообщество! image

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

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

У VPC есть много внутренних понятий и терминов, давайте я буду их описывать по мере настройки. И сегодня я вместе с вами настрою кроссзонную сеть для VPC для большей отказоустойчивости.
Под катом инструкции, объяснения и картинки
Total votes 13: ↑12 and ↓1+11
Comments14

Создание нативной библиотеки расширений для OpenFL, часть вторая

Reading time4 min
Views3.6K

Предисловие


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

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

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

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

Reading time3 min
Views53K


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

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


Приглашаю всех под кат, даже если чего-либо из списка у Вас нет в наличии.
Читать дальше →
Total votes 39: ↑33 and ↓6+27
Comments15

Создание нативной библиотеки расширений для OpenFL (Haxe)

Reading time3 min
Views6K

Предисловие


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

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

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

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

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments7

Балансировщик нагрузки для Amazon EC2 c автомасштабированием

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

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

Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments9

Отчёт по онлайн конференции RuHaxe #1

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

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

Под катом Вы найдёте видеозаписи каждого из четырёх выступлений, а также информацию о дальнейших планах развития конференции.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments8

Настройка Travis-CI для iOS проектов с открытым кодом

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

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

Итак, начнем.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments1

Легендарный JS-Livecoding пример Брета Виктора (Bret Victor) сделали на Flash

Reading time1 min
Views9K


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

Ссылка на «Bret Victor — inventing on principle» в подписи к видео на youtube.
Читать дальше →
Total votes 43: ↑22 and ↓21+1
Comments31

Sphinx-документация на GitHub Pages

Reading time2 min
Views9.9K
GitHub Pages — это такая классная шизофреническая штука, которая может а)показывать созданную при помощи встроенного редактора страничку, б)генерировать Jekyll-блог и в)отображать html-файлы на произвольном домене.
В последнем образе она нас и интересует для размещения документации, написанной с использованием Sphinx.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments3

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Date of birth
Registered
Activity