Доклад про Redis (видео)

В этом году участвовал в конференции DUMP — открывал секцию «Serverside.Knowledge» с докладом про базу данных «Redis».

Случилось это аж в марте, но я со свойственной мне расторопностью выкладываю это только сейчас. Задачу ставил себе — охватить широкую аудиторию — те кто слышал про Redis, кто трогал Redis, кому интересно — что дальше.

Читать далее Доклад про Redis (видео)

Сервер отвечает!

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

Теперь практически всё реализуется с его поддержкой, чтобы «быть в интырнете».  Не предусмотрены протоколом сеансы — добавляем cookie и т.д. Потом, когда увлекаемся извращёнными извращениями — появляются различные Semantic URL, REST, SEO опять же бьёт по рукам тех, кто увлёкся CSS и превратил HTML в span через div. Всё, чтобы слегка сбить спесь и вернуть в родное русло.

Но есть (на данный момент) уж совсем чужеродная хотелка — как сделать так, чтобы не клиент говорил, что ему надо, а сервер. Суть HTTP — клиент спросил документ — мы его отдали. Всё.

А теперь небольшой финт ушами — мы говорим, что документ — структура супер-динамическая и меняется даже во время «ответа». Поэтому ответ сервера на запрос должен уметь сам определять, когда он совершится.

Иными словами мы переходим к серверам, которые шлют запросы подключённым клиентам.

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

Читать далее Сервер отвечает!

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

В прошлом программист, руководитель отдела разработки в Лаборатории Касперского, а ныне тренер — Максим Дорофеев хорошо и по делу рассказывает об управлении процессами, теории ограничений.

Полезно послушать программистам и вообще «рабочим», чтобы понять, как оно выглядит «сверху». Многие нелогичные решения руководства становятся понятны.

Читать далее Мастер класс по управлению

Мастер-класс по клоунаде

Весь мир — театр.
В нем женщины, мужчины — все актеры:
У них свои есть выходы, уходы,
И каждый не одну играет роль.

— уже давно писал Шекспир. Учитывая, что мир меняется, меняется ритм и формы, нынешний мир всё больше напоминает цирк. А потому стоит хотя бы виртуально посетить мастер-класс по клоунаде.

Читать далее Мастер-класс по клоунаде

AMQP — протокол шины сообщений

Пришёл этот протокол из банковской сферы, когда один из разработчиков различных критичных участков системы решил описать наконец то, что он частенько делал для коммуникации компонент. То был John O’Hara из банка «JP Morgan Chase & Co». Почему банки? Видимо, потому что эта сфера очень чувствительна к ошибкам доставки и прочего pub/sub. Да и количество сообщений там велико.

Многие банки делали свои системы передачи сообщений, имелись даже коммерческие решения, а O’Hara написал протокол, чтобы положить конец разброду и шатанию.

И в банковской сфере таки стало по-спокойнее с этим. Появились разные реализации (AMQP-брокеры). Одна из наиболее известных — RabbitMQ.

Читать далее AMQP — протокол шины сообщений

Пятница — время деплоя!

«В пятницу вечером на продакшн релизят ведущие разработчики и дегенераты, и что-то я не вижу у тебя бороды.» (с) @glorphindale

Забавно читать такое, зная, что творится в нашей компании.

Читать далее Пятница — время деплоя!

Остервальдер, Пинье — Построение бизнес моделей

Предыдущая книжка, описанная в блоге, вызвала некий резонанс в IT-сообществе, кое я лицезрю в своей твиттер-ленте (fav — круто, но давайте RT!). Видимо, программистам важны моменты, которые делают стартап, а значит и их работу, важными. Либо же много стартаперов затесалось в мою ленту :)

Тем не менее эта книжка также нацелена на эту аудиторию: Александр Остервальдер и Ив Пинье презентуют нам свой труд: «Построение бизнес-моделей».

Читать далее Остервальдер, Пинье — Построение бизнес моделей

Git: «Corrupt loose object»

После аварийного завершения работы компьютера git выдал

$ git status
error: object file .git/objects/03/9e5691db59686e2afce2da700853398c961b4a is empty
error: object file .git/objects/03/9e5691db59686e2afce2da700853398c961b4a is empty
fatal: loose object 039e5691db59686e2afce2da700853398c961b4a (stored in .git/objects/03/9e5691db59686e2afce2da700853398c961b4a) is corrupt

Всё синхронизировано с удалённым git-репозиторием, поэтому особо не стал озадачиваться проблемой…

$ rm -rf .git
$ git init
$ git remote add origin адрес_репозитория
$ git fetch
$ git reset --hard origin/master

Частые push и коммиты небольших изменений (но, естественно, логически отдельных) — это прекрасно, но, интересно, а что делать в этой ситуации, если жалко терять изменения? git fsck ? fsck ?

Sticker driven development

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

Важной частью коммуникации и командной разработки считаю обещания. «Обещания» — это не «завтраки» (когда каждый день обещают сделать завтра), обещания — это гарантии исполнения части работ к какому-то моменту времени.

Теперь давайте рассмотрим, как стикеры могут помочь нам в управлении обещаниями.

Читать далее Sticker driven development