Pull to refresh
163
0
Саша Косс @kossnocorp

User

Send message

Chef или как управлять тысячей серверов

Reading time10 min
Views73K
Suck on my chocolate salty balls (c) ChefДавайте каждый попробует ответить на вопрос: как установить apache на сервер? Этот вопрос порождает ещё десяток: какая ОС стоит на сервере, какую версию ставить, где лежат конфиги по-умолчанию и т.д. и т.п.

А теперь давайте попробуем ответить на вопрос: как установить apache на 1000 серверов? Тут, при стандартном подходе, вопросов возникнет ровно в 1000 раз больше. Часть из вас наверняка подумали, что можно написать скрипт на shell/perl/python/ruby, который будет обходить все сервера и устанавливать apache, другая часть подумала о distributed shell'ах (PDsh, dsh, etc), кто-то же подумал монтировать rootfs серверов по NFS.

В ряде случаев выше предложенные варианты решений удовлетворительны, но на практике я нигде не видел полностью гомогенных систем (зачастую, внутри компании можно встретить не только разные версии ОС, но и различные дистрибутивы. Также в России/СНГ очень распространена каша из FreeBSD/Linux в ядре проектов), так что вряд ли за адекватное время будет возможно написать скрипт, который установит и настроит apache на зоопарке в 1000 машин под CentOS, Debian, Ubuntu, FreeBSD всевозможных версий.

По моим наблюдениям, очень мало IT подразделений, даже очень крупных компаниий, используют в своей работе SCM (Software Configuration Management). В этом посте я постараюсь описать все преимущества использования Chef в IT инфраструктуре на простых примерах и больших масштабах.

Если же, после столь короткого вступления, вы не прониклись идеей Chef, да и времени читать длинный технический пост у вас нет, то рекомендую вам пролистать до конца и посмотреть как используем Chef мы, Engine Yard, 37signals и подумать, можете ли вы переложить на него часть своей работы.
Читать дальше →
Total votes 97: ↑91 and ↓6+85
Comments26

Грабли при верстке HTML писем

Reading time3 min
Views104K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →
Total votes 282: ↑273 and ↓9+264
Comments77

Горячие клавиши в шелле

Reading time3 min
Views113K
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

Краткое вступление


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Читать дальше →
Total votes 150: ↑145 and ↓5+140
Comments59

Intel Software Network как площадка для обсуждения новых идей (и стартапов) в программировании

Reading time2 min
Views3K
ISN

Русскоязычный сегмент Intel Software Network уже упоминался на Хабре как место, где ведутся блоги, публикуются статьи, проходят священные войны в форумах. И хотя надпись на логотипе гласит «Прямая связь с инженерами Intel», не только с ними можно пообщаться на ISN. А пообщаться, можно, например, с другими представителями сообщества и обсудить свои идеи. Пример такого обсуждения, надеюсь, будет твориться прямо сейчас, когда вы комментируете (надеюсь) данный топик. Под катом — введение в тему.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments4

Пособие для начинающих в Blender 2.5

Reading time1 min
Views21K

Закончил перевод английского перевода пособия «Getting Started with Blender 2.5» в оригинале написанного итальянцем Joaclint Istgud.

Пособие отлично подойдет для интересующихся 3D и тех кто уже работает в Blender 2.49 и хотел бы начать переход на ветку 2.5.

Пособие изобилует иллюстрациями, объяснениями и подсказками.

On-Line версию перевода можно найти на сайте проекта b3d.mezon.ru.

P.s.
Ну и конечно же не забываем про книгу «Blender Basics 3-е издание»! :)
Total votes 76: ↑66 and ↓10+56
Comments34

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

Для многих из нас настает тот долгожданный день, когда аудитория сайта начинает стремительно расти. Каждое утро мы, затая дыхание, смотрим на графики google analitycs и расплываемся в улыбке, когда взят рубеж в очередную тысячу посетителей в день. Как правило, рост посещаемости не совпадает с ростом технической базы и сайт начинает тормозить. Тут в игру вступает сисадмин...

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

Читать дальше →
Total votes 102: ↑100 and ↓2+98
Comments69

Потоковое видео средствами ffserver & ffmpeg

Reading time2 min
Views147K

Для организации трансляции нам потребуется:


  • Linux
  • FFmpeg (включает в себя ffserver)

Теория


FFmpeg — это набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровое аудио и видео в различных форматах. Он включает libavcodec, библиотеку кодирования и декодирования аудио и видео и libavformat, библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и «FF», означающего «fast forward».

© Wikipedia

ffserver идёт в комплекте с ffmpeg и выполняет роль медиа-сервера — получает видеопоток от ffmpeg, который может быть запущен на другой машине, и раздаёт его счастливым пользователям.
Каждый получаемый поток называется Feed’ом (далее будет просто фид). Таких потоков может быть несколько, так же как и отдаваемых (выходных).
FFmpeg у нас будет захватывать видео с веб-камеры или читать из файла.
Читать дальше →
Total votes 49: ↑41 and ↓8+33
Comments34

Юзабилити и дизайн интерфейсов для хардкорных программеров

Reading time15 min
Views16K
С того момента как я начал программировать я наблюдал и думал об одном особом явлении — как большинство программистов активно избегают всего, что касается дизайна интерфейсов и вопросов юзабилити.


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

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

Читать дальше →
Total votes 127: ↑110 and ↓17+93
Comments75

ХХ полезных советов для пользователей Git среднего уровня. Часть 1

Reading time4 min
Views26K
Вообще-то изначально я планировал перевести статью Энди Джеффриса (Andy Jeffries) 25 Tips for Intermediate Git Users, но в процессе я отбросил бестолковые, общеизвестные или самые простые советы вроде «настройте первым делом user.name и user.email», которые явно не подходят людям, уже более-менее плотно знакомым с Git.
Взамен я дополню статью моментами из личной практики («Своя практика»! Звучит здорово, будто я частный врач или адвокат! :-] )

Читать дальше →
Total votes 75: ↑70 and ↓5+65
Comments32

Пример использования хуков (hooks) в git

Reading time2 min
Views37K
Для того чтобы познакомиться с механизмом хуков в git, достаточно просто начать их использовать и посмотреть как оно работает, и как оно устроено внутри.
Хуки в git это некие скрипты, срабатывающие на определенные события, по сути своей являются их обработчиками. Расположены они в каталоге .git/hooks.

простой пример обработчика...
Total votes 31: ↑30 and ↓1+29
Comments15

Шаблоны для проектирования приложения от руки

Reading time2 min
Views4.8K
Приветствую, хабрасообщество.

imageРечь пойдет о проектировании графического интерфейса приложений для iPhone. Уверен, что многие из вас частенько предпочитают пачку листов A4 и простой карандаш, вместо сложных программных сред. Конечно при таком подходе тоже надо иметь некоторую системность, но в любом случае тут свой шарм, гибкость и естественность, ведь каждый творил мелом на стене дома, забора или комнаты в своем советском детстве.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments23

Создание плагина для браузера с помощью NPAPI

Reading time6 min
Views25K
NPAPI это набор API, позволяющий создавать плагины для Firefox, Chrome, Safari, Opera. В этой статье я хочу дать первоначальные сведения о создании плагина на базе NPAPI. Будет приведен пример плагина под Windows, но и разработчикам на Mac и Unix статья будет полезной, т.к. описывает общий подход к созданию плагинов, использующих NPAPI.

NPAPI плагин это модуль, который «цепляется» к браузеру и отвечает за обработку определенного content type (например application/x-shockwave-flash).

О том как появился и менялся NPAPI вы можете прочитать на странице в Wikipedia
Полное описание API можно получить на странице Gecko_Plugin_API_Reference
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments12

Собираем GIMP-2.7 из GIT своими руками

Reading time6 min
Views109
GIMP — это мощный редактор растровой графики с открытым кодом, основной конкурент Adobe Photoshop на платформах, где его нету. Да и там где есть, в принципе, тоже свою долю пользователей держит уверенно.



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

К тому же, библиотеки гимпа собираются через autogen, что позволит читателю в будущем не бояться исходников, в которых команда ./configure выдает Not Found.

Заодно, познакомлю Вас с такими вещами, как GIT и редко попадающимися в таких статьях ключами APT, способными сильно облегчить сборку приложения.

ОСТОРОЖНО: ТРАФИК!

Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments100

deb-пакет на коленке

Reading time3 min
Views12K
Задача: создать пакет для Debian для выливки демона/сайта на сервер.
Я никогда ранее не работал с deb-пакетами — так что решение может быть не оптимальным. Но оно работает и достаточно просто в использовании.
Читать дальше →
Total votes 73: ↑63 and ↓10+53
Comments47

Боремся с неплавной анимацией скрытых элементов

Reading time3 min
Views26K
Работая с jQuery многие рано или поздно сталкиваются с одной особенностью: когда мы хотим показать с анимацией скрытый блок, его появление может быть дерганым. Происходит это не всегда, но довольно часто. К сожалению не все разработчики знают как с этим бороться, а те кто знают, зачастую ленятся. Явный пример дерганного появления блока, можно посмотреть прямо на главной странице jQuery, нажав на кнопку Run Code:

image
Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments11

Линус Торвальдс о GIT на Google Talks [видеоперевод 8 частей]

Reading time1 min
Views4.1K
Два года назад Линус Торвальдс рассказал представителям Google об использовании GIT (распределённой системы контроля версий) для ядра Linux. Посчитав, что многие могут пропустить эту интересную лекцию по причине незнания языка, я осмелился озвучить её по-русски.



а так же плейлист целиком.
пояснения...
Total votes 103: ↑100 and ↓3+97
Comments42

О модульном тестировании на C++ и о CxxTest

Reading time4 min
Views61K
Совсем недавно в ходе разработки одного проекта передо мной встала задача поиска удобного средства для написания юнит-тестов на C++. К каким результатам привело моё исследование подробнее в этой статье.
Поехали.
Total votes 20: ↑19 and ↓1+18
Comments29

Mac OS X в эмуляторе QEMU под Linux

Reading time2 min
Views27K
Здравствуйте хабровчане. Недавно понадобилось писать на Objective C под Mac OS X. Железо у меня не самое подходящее для всяких сборок, да и сидеть полностью в этой ОС религия не позволяет. Решил поставить Mac OS X в на виртуальную машину Qemu в Linux.
Читать дальше →
Total votes 94: ↑89 and ↓5+84
Comments41

Интеграция с TeamCity

Reading time2 min
Views4.3K
В процессе разработки проекта на Ruby 1.9 нам потребовалось использовать систему непрерывной интеграции.

CruiseControl.rb в своё время не подошёл из-за несовместимости с Ruby 1.9, в результате мы остановились на бесплатной TeamCity Professional под Linux.

Начальная настройка тривиальна, потребует лишь распаковки дистрибутивов TeamCity и JRE, а также настройки переменной JRE_HOME.

Прямо из коробки мы можем получить запуск тестов Test::Unit, RSpec, с оценкой покрытия rcov.

Но нам потребовалось большее, например, использовать кастомные тесты.

Рассмотрим тривиальный пример — тесты на компилируемость (например, исходного кода, файлов в формате YAML etc.).

image

Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments22

Легковесные веб-приложения на Ruby

Reading time5 min
Views8.7K

Быстрая разработка


Вдохновленный постами на западных блогах вроде «Clone TinyURL with 40 lines of Ruby» или «Clone Pastie in 15 Minutes with Sinatra & DataMapper» я решил попробовать пройти и заодно описать весь процесс реализации легковесного веб-приложения на руби, от проектирования до деплоймента.

Читать дальше
Total votes 49: ↑47 and ↓2+45
Comments24

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity