Читать дальше →
User
Использование runit для своих сервисов
3 min
51KСупервизор сервисов runit позиционируется как замена стандартным скриптам инициализации Unix.
Но на практике оказалось, что runit идеален для управления сервисами безотносительно инициализации и т.п.
Супервизор берёт на себя такой функционал, как:
Для большинства операционных систем runit уже входит в репозитории пакетов (apt-get install runit). Кроме того, мы имеем уже готовый набор рецептов для популярных сервисов (nginx, apache etc.).
Но на практике оказалось, что runit идеален для управления сервисами безотносительно инициализации и т.п.
Введение
Супервизор берёт на себя такой функционал, как:
- превращение любого процесса в демон;
- логгирование вывода процесса и ротирование логов;
- запуск, остановка, рестарт, запрос состояния, управляющие скрипты для init.d;
- выключение и запуск сервисов автоматически при появлении новых сервисов в списке либо удалении старых из списка;
- возможность ведения нескольких независимых списков сервисов одновременно (например, для каждого пользователя отдельно и для системы в целом);
- удобный API для управления сервисами.
Для большинства операционных систем runit уже входит в репозитории пакетов (apt-get install runit). Кроме того, мы имеем уже готовый набор рецептов для популярных сервисов (nginx, apache etc.).
+35
+41
Конструктор/редактор Яндекс.Карт
1 min
14KВнезапно потребовалось выводить на странице виджет Яндекс.Карт с какими-то накладываемыми слоями. Проблема заключалась в необходимости дать пользователю редактировать эти слои.
Быстрый поиск редакторов накладываемых примитивов дал только конструктор схем проезда от Яндекса и какой-то убогий php'шный конструктор карт (к тому же ещё и платный). А редактор был нужен. По этому пришлось сесть и быстренько написать.
Быстрый поиск редакторов накладываемых примитивов дал только конструктор схем проезда от Яндекса и какой-то убогий php'шный конструктор карт (к тому же ещё и платный). А редактор был нужен. По этому пришлось сесть и быстренько написать.
+60
Закончен предварительный перевод книги «Волшебство Git»
1 min
26KЯ, как и многие программисты, после знаменитого выступления Линуса Торвальдса о Git на Google Talks заинтересовался распределенными системами управления версиями, а в особенно Git.
Я довольно таки свободно читаю на английском, но мне приятнее читать на русском языке, при условии нормального перевода.
Существует замечательная книга «Git Magic» Бена Лина (Ben Lynn).
Благодаря труду многих людей вышел первый черновой вариант этой книги. Всех желающих улучшить перевод — приглашаю под кат.
Я довольно таки свободно читаю на английском, но мне приятнее читать на русском языке, при условии нормального перевода.
Существует замечательная книга «Git Magic» Бена Лина (Ben Lynn).
Благодаря труду многих людей вышел первый черновой вариант этой книги. Всех желающих улучшить перевод — приглашаю под кат.
+73
Социальная сеть по аренде-съему квартир «Живая база»
2 min
12KРазрешите представить вашему вниманию новый проект (стартап) www.livebase.ru — социальную сеть по аренде квартир «Живая база».
Главная страница сайта www.livebase.ru (регистрация не обязательна)
Страница базы данных по аренде квартир — www.livebase.ru/estates
«Живая база» — это сервис по аренде квартир, который поможет каждому пользователю найти квартиру по месторасположению на карте google. Конечно, ни для кого, ни секрет, что на страницах Всемирной паутины есть много достойных проектов, которые показывают расположение квартир на карте, но наш проект уникален.
+33
Почему твой стартап не должен копировать 37signals или FogCreek
2 min
835Нам советуют со всех сторон — учись у лидеров. Твой бизнес должен быть похож на Тойоту или Google, твой блог должен быть похож на Джоэла Спольски или Сета Година, твой софт должен быть похож на софт от Apple и 37signals.
Возможно я сам виноват. Слишком много книг читаю, на слишком много блогов подписан.
Тем не менее — только потому, что у кого-то сработала стратегия или продукт, еще не значит, что ты должен делать то же самое.
Проблема в том, что все советы разные, а зачастую противоположные. Например, Zappos использует Twitter как часть своего потрясающего клиентского сервсиса. Их CEO, Tony Hsieh, даже написал введение в Twitter для новичков.
Все на баррикады Твиттера. Но подожди, а вот Сет Годин, 12й по популярности блогер вселенной, говорит, что Твиттер туфта полная. И не только Твиттер, а все социальные сети перегружены мусором и пустой болтовней.
Возможно я сам виноват. Слишком много книг читаю, на слишком много блогов подписан.
Тем не менее — только потому, что у кого-то сработала стратегия или продукт, еще не значит, что ты должен делать то же самое.
Проблема в том, что все советы разные, а зачастую противоположные. Например, Zappos использует Twitter как часть своего потрясающего клиентского сервсиса. Их CEO, Tony Hsieh, даже написал введение в Twitter для новичков.
Все на баррикады Твиттера. Но подожди, а вот Сет Годин, 12й по популярности блогер вселенной, говорит, что Твиттер туфта полная. И не только Твиттер, а все социальные сети перегружены мусором и пустой болтовней.
+28
Готовимся к Хабра-эффекту
3 min
13KЗаметка посвящена не столько возможным методам защиты (о них уже было много написано), сколько обзору небольшого списка для быстрой проверки при подготовке к возможных скачкам посещаемости. Судя по статистике нагрузки на электронные магазины на прошлой неделе (когда начался рождественский сезон продаж на Западе), даже для крупных магазинов время ответа может колебаться на 20%, что же говорить о менее крупных веб-сайтах?
Такую проверку обязательно нужно проводить перед выпусками новых продуктов, а также перед сезоном массовых покупок (для России это время в канун Нового Года и Рождества). Итак, с чего начать?
Такую проверку обязательно нужно проводить перед выпусками новых продуктов, а также перед сезоном массовых покупок (для России это время в канун Нового Года и Рождества). Итак, с чего начать?
+90
nginx, ещё раз про кэширование
3 min
14KИногда скорость роста проекта несколько выше чем скорость оптимизации веб-приложения или приобретение более мощного оборудования под backend.
Наиболее простая схема «распараллеливания» нагрузки — вынос основной нагрузки на несколько frontend. Раньше приходилось мучиться (или наслаждаться, кому как) с webdav'ами, кластерными ФС и прочими хитростями чтобы обеспечить актуальную информацию, так было до тех пор, пока не появился nginx, а точнее proxy_store и proxy_cache в нём.
Наиболее простая схема «распараллеливания» нагрузки — вынос основной нагрузки на несколько frontend. Раньше приходилось мучиться (или наслаждаться, кому как) с webdav'ами, кластерными ФС и прочими хитростями чтобы обеспечить актуальную информацию, так было до тех пор, пока не появился nginx, а точнее proxy_store и proxy_cache в нём.
+45
Ещё один способ победить Internet Explorer
2 min
7.8KРано или поздно все web-разработчики сталкиваются с ситуацией, когда Internet Explorer становится проблемой, тормозящей разработку проекта. Сайт свёрстан валидно, по стандартам. Нормально отображается в Mozilla, Opera, Safari и других нормальных браузерах. Но. Открываем его в IE. И видим. Как то, что мы подгоняли по пикселям, строго придерживаясь стандартов, размазано по странице. Ладно ещё в IE7 можно более-менее просто подогнать вёрстку (конечно зависит от дизайна), но от IE6 иногда волосы встают дыбом. К счастью, существуют способы, которые позволяют повлиять на ситуацию. Кто-то использует хаки, кто-то — conditional comments. Где-то можно пойти на компромис и упростить задумку дизайнеров, поддерживая пользователей недобраузеров.
+40
Расширения для Firebug
2 min
4.1KПоследнее время появляется все больше и больше различных дополнений для Firebug'a. Решил сделать краткое описание для этих плагинов.
Здесь были описаны только 4 плагина.
Постараюсь описать все известные плагины для Firebug'a
Статья на украинском языке
Здесь были описаны только 4 плагина.
Постараюсь описать все известные плагины для Firebug'a
Статья на украинском языке
+101
placeholder.js
1 min
23KВ HTML5 есть замечательный атрибут placeholder.
Сейчас он работает только в webkit-браузерах (Safari, Google Chrome).
С помощью JS, не изобретая велосипедов, placeholder.js делает этот атрибут кроссбраузерным.
placeholder.js (1.3 килобайта)
<input placeholder="inbox@disney.com">
Сейчас он работает только в webkit-браузерах (Safari, Google Chrome).
С помощью JS, не изобретая велосипедов, placeholder.js делает этот атрибут кроссбраузерным.
<input placeholder="inbox@disney.com" id="some_input"> <script type="text/javascript"> inputPlaceholder( document.getElementById('some_input') ) </script>
placeholder.js (1.3 килобайта)
+53
Ruby is not Rails
3 min
4.9KПоследнее время о Ruby начали думать только как о Ruby on Rails. Но в мире Ruby ещё много красивых и иногда уникальных вещей. Поэтому, в целях борьбы с предрассудками, хочу вкратце рассказать о отличных и необычных Ruby-проектах.
+55
Быстрый полнотекстовый поиск в Rails приложениях
3 min
6KРано или поздно перед каждым сайтом (будь то социальная сеть, форум, блог или еще какое-то хранилище информации) возникает проблема поиска. Каждый разработчик решает эту проблему по-своему: одни пишут свои решения, другие используют готовые встраиваемые поисковики, третьи используют внешние решения, например сервисы от Google.
В этой статье мне хотелось бы рассказать о таком средстве поиска, как Ferret, и о том, как просто использовать данное решение в своем Rails-приложении.
В этой статье мне хотелось бы рассказать о таком средстве поиска, как Ferret, и о том, как просто использовать данное решение в своем Rails-приложении.
+30
Защищаемся от HTTP DDoS и прочих Хабраэффектов
5 min
10KПростой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
+144
Vim Ruby Debugger
3 min
6.3KДо недавнего времени я писал Ruby код в Netbeans. Штука клевая и очень удобная, но я давно заглядывался на Vim, уж больно он мощный текстовый редактор, бобам и не снилось. Пытался несколько раз на него перейти, но как только встречался какой-то затык в коде, закрывал Vim, открывал Netbeans, ставил брейкпоинт и начинал разбираться что не так. В общем, привык я к отладчику.
Помучившись некоторое время, пришла идея написать Ruby дебаггер под Vim. Открыл код rails.vim, NERDTree.vim и начал учиться VimScript'у. Так что спасибо tpope и Marty Grenfell за уроки (хотя наверно они никогда этого не прочтут и не узнают об этом). Плагин можно сейчас лицезреть на гитхабе.
Помучившись некоторое время, пришла идея написать Ruby дебаггер под Vim. Открыл код rails.vim, NERDTree.vim и начал учиться VimScript'у. Так что спасибо tpope и Marty Grenfell за уроки (хотя наверно они никогда этого не прочтут и не узнают об этом). Плагин можно сейчас лицезреть на гитхабе.
+35
Легковесные веб-приложения на Ruby
5 min
8.6KБыстрая разработка
Вдохновленный постами на западных блогах вроде «Clone TinyURL with 40 lines of Ruby» или «Clone Pastie in 15 Minutes with Sinatra & DataMapper» я решил попробовать пройти и заодно описать весь процесс реализации легковесного веб-приложения на руби, от проектирования до деплоймента.
+45
Information
- Rating
- 3,998-th
- Date of birth
- Registered
- Activity