Как стать автором
Обновить
8
3.4
Александр @minalexpro

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

Отправить сообщение

geoDNS с помощью Powerdns и nginx

Время на прочтение6 мин
Количество просмотров28K
Обожаю задачи “на стыке технологий”, это одна из таких.
Задача:
  • реализовать geoDNS*
  • c возможностью wildcard (*.some.tst. A 1.2.3.4)
  • с возможностью менять содержимое зон на ходу, добавлять новые зоны пачками
  • без необходимости запускать громоздкие скрипты на каждый запрос “мимо кеша”
  • научиться тестить этот реактор (с локалхоста, а не кучи proxy/VDS)


*) под geoDNS я подразумеваю возможность для клиентов из разных регионов отдавать разные, например, адреса сервера/А-записи (для США отдаётся IP сервера в США, для СНГ — в москве, для ЕС — в Европе ...)

Статья описывает
  • метод реализации geoDNS
  • метод тестирования
  • эскизное решение на “чистом nginx”

Если интересно, причём же здесь nginx, прошу под кат.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии18

Репортаж из Кремниевой Долины. Тур по Hacker Dojo — бесплатный коворкинг-центр

Время на прочтение1 мин
Количество просмотров21K

Hacker Dojo, пожалуй, одно из самых удивительных мест в Кремниевой Долине. Это абсолютно бесплатный коворкинг-центр (и сообщество), куда может прийти каждый, чтобы поработать над своим стартапом или проектом (бесплатный офис). Помимо общей рабочей области со столами, креслами и диванами, есть ещё и мастерская, оснащённая различным оборудованием от паяльников и микроскопов, до 3D-принтера и элементов робототехники. Это ещё не всё.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии57

Работайте так, словно таланта у вас вообще нет

Время на прочтение2 мин
Количество просмотров91K
Намедни наткнулся на замечательное высказывание талантливого боксера и невероятно сильного человека Роя Джонса. Он сказал: “Нужно работать так, словно таланта у тебя вообще нет”. Эти слова невероятно глубоко запали мне в душу. Я перечитал фразу раз двадцать и с каждым новым прочтением все больше понимал — “Да! Точно! Это именно то, чего мне не хватало.”

Это высказывание подходит пожалуй к любой профессиональной деятельности, начиная от спортсменов заканчивая любыми представителями около-творческих профессий, где в той или иной форме требуется проявление таланта. Для меня программирование — искусное ремесло, которое требует от творителя неимоверной остроты ума, таланта и трудолюбия. Именно о талантливой составляющей в программировании я бы хотел порассуждать.
Читать дальше →
Всего голосов 141: ↑93 и ↓48+45
Комментарии245

Готовим адаптивное видео для HTTP Live Streaming

Время на прочтение7 мин
Количество просмотров38K
Почти все пользуются, и, наверняка, многие слышали про динамическую адаптацию видеопотока под пропускную способность сети. В последнее время это уже практически обязательное требование к online-видео в интернете. Преимущества адаптивного видеопотока очевидны: если сеть временами «проседает», видео продолжает отображаться в плеере без видимых подкачек и буферизации; качество картинки автоматически выбирается адекватным пропускной способности сети.

Несмотря на то, что динамическая адаптация видеопотока уже сравнительно «старая» технология, существует множество мелких подробностей о том, как добиться лучшего результата. Чтобы и на серверной стороне попроще и подешевле, и чтобы такое видео было совместимо с как можно большим количеством клиентов (Web, iOS, Android, ну и не забываем про Smart TV).

Посмотреть, как сделать адаптивное видео для HLS
Всего голосов 15: ↑12 и ↓3+9
Комментарии14

Куда идет рынок электронных платежных систем в России? Часть 2. Пластиковые карты

Время на прочтение9 мин
Количество просмотров39K
Платежные системы
В прошлой статье мы рассказали о том, куда идет, а скорее даже падает, рынок электронных платежей. Но тема оказалась куда более широкой, и поэтому сегодня хотелось бы еще раз обратиться к ней. А точнее — к тем платежам, которые остались за бортом: к оплате банковскими картами.

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

Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии74

Яндекс 23 минуты был заблокирован Ростелекомом

Время на прочтение1 мин
Количество просмотров91K
Сегодня Ростелеком заблокировал Яндекс для своих абонентов — примерно с 14:04 до 14:27 по Москве. Наших пользователей встречала страница-заглушка об ограничении доступа к сайту.

Яндекс 23 минуты был заблокирован Ростелекомом

Ростелеком в качестве причины блокировки ссылается на «предписание суда ограничить доступ к сайту, IP которого совпадал с некоторыми ресурсами». Никаких уведомлений по этому поводу в Яндекс не поступало. Мы считаем случившееся недоразумением.
Читать дальше →
Всего голосов 178: ↑158 и ↓20+138
Комментарии213

Chrome Logger — серверсайд логи в консоли хрома

Время на прочтение1 мин
Количество просмотров34K


Chrome Logger это Google Chrome расширение для отладки серверсайд приложений в консоли хрома.

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

Инструкции по применению инсайд.
Читать дальше →
Всего голосов 75: ↑71 и ↓4+67
Комментарии27

Практические советы по выбору облачного провайдера

Время на прочтение15 мин
Количество просмотров22K
Выбор облачного провайдера — сложная задача. В этом посте я расскажу, как к ней подступиться, на что обратить внимание в первую очередь, где может быть скрыт подвох, и как вообще построить общение с провайдером. Ниже — о самом сложном и комплексном сценарии развития событий, переносе всей ИТ-инфраструктуры в облако. Давайте рассмотрим перенос в «облако» критической части ИТ-инфраструктуры, недоступность которой в течение даже нескольких часов может нанести существенный ущерб бизнесу компании.

Памятка


Как отсеять хостинг провайдеров
  1. Используется ли виртуализация серверов в принципе?
  2. Используется ли виртуализация систем хранения данных или виртуализация сетей? Это необязательные требования, но они свидетельствуют о технологическом уровне облачного провайдера.
  3. Как управлять услугами? Есть ли портал самообслуживания? Можно ли самому запускать новые серверы, управлять производительностью уже запущенных? Можно ли добавить диски, настроить внутреннюю адресацию и управлять маршрутизацией? Можно ли самому настраивать расписание резервного копирования и запускать задания по восстановлению данных? И т.д.
  4. Как учитываются ресурсы? Есть ли автоматизированный биллинг (посекундный-почасовой)? Или все учитывается руками?


Площадка
  1. Где расположен ЦОД: за границей или в РФ? Насколько далеко от вашего офиса и второго ЦОДа, если он есть? Задержки?
  2. Кому принадлежит ЦОД? Можно ли войти посмотреть?
  3. Он сертифицирован? Какие были аварии на этой площадке ранее?
  4. Какие провайдеры связи присутствуют на площадке?
  5. Как можно будет подключиться к «облаку»?


Услуги «облака»
  1. Что такое vCPU (виртуальное ядро)? Чему оно равняется: целому физическому ядру процессора или, например, его четверти?
  2. Какие используются дисковые ресурсы? Локальные или подключенные по SAN?
  3. Как резервируются каналы до Интернет?
  4. Что делать, если стандартного функционала «облака» не хватает? Можно ли, например, подключить к «облаку» специализированное сетевое оборудование или машины не x64 архитектуры и так далее?
  5. Доступен ли гибридный режим работы? Как сделана интеграция в этом случае?
  6. Есть ли сервис резервного копирования?
  7. Как средства ИБ доступны в базе, какие нужно отдельно заказывать?
  8. При необходимости построения HA (high availability) или DR (disaster recovery) решений возможно ли разнести части размещаемого ИТ-сервиса между двумя ЦОД? Есть ли у провайдера второе облако для построения подобных решений?


Поддержка
  1. Отвечает ли поддержка 24/7, быстро и по делу, а не «мы разберёмся позже»?
  2. Язык — русский и английский?
  3. Как далеко можно выходить за SLA, если очень нужно? (Как правило, на Западе — ни шагу в сторону).
  4. Нужно ли обращаться в поддержку за мониторингом ресурсов и баланса, или все данные доступны через портал самообслуживания?
  5. Есть ли демо-режим? Насколько он отличается от «боевого» и чем конкретно?
Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии8

CDN для статики и измерения: как Яндекс.Почта стала быстрее в регионах

Время на прочтение5 мин
Количество просмотров25K
Скорость работы веб-интерфейса — очень важная вещь, и мы в Яндексе особенно хорошо понимаем это. От ощущения лёгкости и того, с какой скоростью у пользователя загрузятся важные ему элементы, может зависеть и то, каким сервисом он в итоге будет пользоваться.

Мы в Яндекс.Почте много работаем над ускорением клиентской части. Только на Хабре мы рассказывали о том, как оптимизируем верстку, отказались от XSL и перешли на новый шаблонизатор.

Но добиться увеличения скорости работы можно не только за счет оптимизации фронтенда. Сегодня мы хотим рассказать о переезде статических файлов Яндекс.Почты на специальный CDN Яндекса для статики и о том, как это ускорило её работу, особенно в регионах.



Подробности о том, куда переехали, как устроен новый хостинг, почему он устроен именно так, и как мы измеряли, насколько стало быстрее, — читайте дальше.
Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии35

Дата-майнинг помог заработать Пулитцеровскую премию

Время на прочтение2 мин
Количество просмотров81K


Самую престижную награду в области журналистики в этом году получила газета Sun Sentinel из Южной Флориды за серию статей «Превыше закона: копы на высокой скорости».

Для расследования журналисты запросили из полицейских участков записи о прохождении патрульными машинами пропускных пунктов SunPass на платных дорогах. В каждой записи SunPass стоит отметка с точным временем прохождения пункта. Полиция предоставила информацию, не заподозрив подвоха.
Читать дальше →
Всего голосов 136: ↑126 и ↓10+116
Комментарии170

Рамка для номера ставит в тупик камеры на светофорах

Время на прочтение7 мин
Количество просмотров301K

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

Как обмануть камеру на светофоре и почему в США это законно
Всего голосов 116: ↑94 и ↓22+72
Комментарии277

Для чего мы повесили в офисе телевизор?

Время на прочтение4 мин
Количество просмотров39K
Недавно у нас в смоленском офисе, на самом видно месте, появился большой телевизор. Зачем?

Дело в том, что мы занимаемся разработкой сайтов и хотим выпускать проекты в обещанный в договоре срок. А кто этого не хочет? Хотят все – и студии и заказчики, да вот только получается, что не получается… Заказчик не может своевременно согласовать работу или прислать материалы, у студии в нужный момент перегружены ресурсы и т.д. В результате – невыполнение договора. И самое обидное, что сколько времени не выделяй, все равно не успеешь. Но это не нормально, так не должно быть.

Мы уже давно занимаемся этим вопросом, экспериментируя с разными подходами. И вот он один из них – телевизор. Как он помогает нам выполнять сроки – об этом небольшая история.
Читать дальше →
Всего голосов 56: ↑36 и ↓20+16
Комментарии48

Хроники LinguaLeo: как мы сделали «Диалоги на английском» с Node.js и DynamoDB

Время на прочтение5 мин
Количество просмотров37K


Пользователи LinguaLeo начинают изучать английский язык в Джунглях — хранилище тысяч материалов разного уровня сложности, формата и тематик; шаг за шагом учатся слышать и понимать речь носителей языка и расширять словарный запас. Кому нужна грамматика — идут в Курсы. Словарный запас пополняется не только из Джунглей, при добавлении незнакомых слов в Личный словарь, но и с помощью подготовленных Наборов слов, доступных для индивидуального изучения. В разделе Общение можно вести Диалоги на английском, чтобы практиковать язык с другими пользователями LinguaLeo в режиме real-time, выбирая темы для общения. Общение только на английском!

Для создания Диалогов на английском мы использовали Node.js, DynamoDB (все на AWS). Сейчас поделимся нашим опытом.
Читать дальше →
Всего голосов 107: ↑96 и ↓11+85
Комментарии81

Bootstrap-wysiwyg: крошечный текстовый редактор

Время на прочтение2 мин
Количество просмотров104K



Текстовый редактор bootstrap-wysiwyg — это всего 1.5 Кб в минифицированном и сжатом виде и чуть больше 6 Кб исходного кода, базовые функции редактирования на основе execCommand, drag-and-drop для вставки изображений, поддержка стандартных горячих клавиш и ничего лишнего. Редактор работает в современных браузерах (Chrome 26, Firefox 19, Safari 6) и на мобильных платформах (IOS 6 iPad/iPhone, Android 4.1.1 Chrome). Зависимости — jQuery, jQuery HotKeys и Bootstrap.
Читать дальше →
Всего голосов 156: ↑149 и ↓7+142
Комментарии63

Foreman — менеджер процессов для ваших веб-приложений

Время на прочтение4 мин
Количество просмотров32K
Все более популярной становится модель разработки веб-приложений, основанная на идее масштабирования с помощью процессов. Современное приложение представляет из себя набор выполняющихся процессов, не хранящих состояния, причем каждый изолирован друг от друга. Каждому такому процессу назначается свой локальный порт, что позволяет прозрачно экспортировать ваши сервисы для последующего их потребления кем-нибудь еще, возможно даже, что друг другом (например, один обслуживает http-запросы от пользователей, принимая url-адреса видео, а другой медленно, но верно, загружает их и конвертирует). Как правило, в большинстве случаев http-сервисы просто ставят за reverse proxy в nginx, но возможны варианты.

Не секрет, что у каждого разработчика есть свой арсенал инструментов, позволяющий ему так или иначе сделать свою жизнь проще. Сегодня мы поговорим о таком инструменте, как Foreman. Используя его, вы можете объявить в одном месте все процессы, которые необходимы для запуска вашего приложения. Для этого используется так называемый Procfile, который выглядит как-то так:

web:    mono ./awesome-app --port $PORT
api:    node ./api.js -p $PORT
worker: bundle exec rake resque:work QUEUE=*
habr:   bundle exec ./bin/thin -a localhost -p $PORT

Как видите, все довольно просто, в каждой строчке файла содержится по названию типа процесса и строка для его запуска.
Так зачем оно нужно и что же там есть такого вкусного?
Всего голосов 45: ↑41 и ↓4+37
Комментарии9

Оперативная реакция на DDoS-атаки

Время на прочтение4 мин
Количество просмотров51K
Один из ресурсов, за которым я присматриваю, вдруг стал неожиданно популярным как у хороших пользователей, так и у плохих. Мощное, в общем-то, железо перестало справляться с нагрузкой. Софт на сервере самый обычный — Linux,Nginx,PHP-FPM(+APC),MySQL, версии — самые последние. На сайтах крутится Drupal и phpBB. Оптимизация на уровне софта (memcached, индексы в базе, где их не хватало) чуть помогла, но кардинально проблему не решила. А проблема — большое количество запросов, к статике, динамике и особенно базе. Поставил следующие лимиты в Nginx:

на соединения
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 100;

и скорость запросов на динамику (fastcgi_pass на php-fpm)
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s;
limit_req zone=dynamic burst=10 nodelay;

Сильно полегчало, по логам видно, что в первую зону никто не попадает, зато вторая отрабатывает по полной.

Но плохиши продолжали долбить, и захотелось их отбрасывать раньше — на уровне фаервола, и надолго.

Сначала сам парсил логи, и особо настырных добавлял через iptables в баню. Потом парсил уже по крону каждые 5 минут. Пробовал fail2ban. Когда понял, что плохишей стало очень много, перенёс их в ipset ip hash.

Почти всё хорошо стало, но есть неприятные моменты:
— парсинг/сортировка логов тоже приличное (процессорное) время отнимает
— сервер тупит, если началась новая волна между соседними разборками (логов)

Нужно было придумать как быстро добавлять нарушителей в черный список. Сначала была идея написать/дописать модуль к Nginx + демон, который будет ipset-ы обновлять. Можно и без демона, но тогда придётся запускать Nginx от рута, что не есть красиво. Написать это реально, но понял, что нет столько времени. Ничего похожего не нашёл (может плохо искал?), и придумал вот такой алгоритм.

При привышении лимита, Nginx выбрасывает 503-юю ошибку Service Temporarily Unavailable. Вот я решил на неё и прицепиться!

Для каждого location создаём свою страничку с ошибкой
error_page 503 =429 @blacklist;

И соответствующий именованный location
location @blacklist {
    fastcgi_pass    localhost:1234;
    fastcgi_param   SCRIPT_FILENAME    /data/web/cgi/blacklist.sh;
    include         fastcgi_params;
}

Дальше интересней.
Нам нужна поддержка CGI-скриптов. Ставим, настраиваем, запускаем spawn-fcgi и fcgiwrap. У меня уже было готовое для collectd.

Сам CGI-скрипт
Читать дальше →
Всего голосов 57: ↑50 и ↓7+43
Комментарии50

Стильный CSS переключатель без JavaScript

Время на прочтение2 мин
Количество просмотров51K
Здесь я покажу, как сделать переключатель на основе input-а на чистом CSS.


Демо
Все файлы
Читать дальше →
Всего голосов 85: ↑54 и ↓31+23
Комментарии40

Firefox: размер файла по ссылке, или через тернии к форку

Время на прочтение9 мин
Количество просмотров11K
Скриншот расширения Link Properties Plus
Вашему вниманию представляется небольшая история появления расширения Link Properties Plus и описание того, как работает его основная часть.
Расширение позволяет узнать размер, дату последнего изменения и некоторые другие свойства файла по ссылке (в том числе прямую ссылку после всех перенаправлений) без скачивания всего файла целиком. Если, конечно, все это сообщает сервер.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии15

Видеозаписи докладов с WebCamp 2012 и анонс WebCamp 2013

Время на прочтение3 мин
Количество просмотров5K
Дорогие хабрачитатели, я хочу представить вам видеозаписи всех докладов с 3-й профессиональной конференции веб-разработчиков WebCamp 2012, которая проходила в прошлом году в Одессе, а также пригласить вас на 4-ю конференцию WebCamp 2013, которая состоится с 12 по 13 июня.

В прошлом году мы расширили конференцию до 4 секций: веб-технологии и управление проектами; юзабилити и дизайн; интернет-маркетинг; стартапы. Провели несколько мастер-классов, Startup Crash Test и организовали аллею стартапов.

В этом году мы планируем пойти ещё дальше. Мы переместили конференцию на более тёплое время и увеличить время её проведения до 2-х дней. Первый день – доклады в потоках, второй день – мастер-классы. 4 основные секции мы расширим специализированными подсекциями, которые смогут подготовить и провести различные коммьюнити. Для того, чтобы подсекция была добавлена в программу, она должна иметь минимум 5 докладов. Наша команда побывала на киевском Startup Weekend и мы решили «привезти» его в Одессу. Поэтому приглашаем всех желающих после разогрева на WebCamp закрепить полученные знания путём создания собственного стартапа за 54 часа на Odessa Startup Weekend, который пройдет с 14 по 16 июня.

Регистрация на конференцию уже открыта. Стоимость участия в конференции составляет: при отплате до 1 мая – 400 грн (~50$); до 11 июня – 500 грн(~63$); в день конференции – 600 грн(~75$). Студентам при предъявлении студенческого билета предоставляется скидка 50%. Для читателей Хабры мы даем 10% скидку, для её получения при регистрации необходимо указать промо-код Habrahabr. Информация о том, как можно выиграть бесплатный билет здесь.

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

Информацию о том, как проекту принять участие в аллее стартапов или в Startup Crash Test, можно найти здесь. Участие для стартапов бесплатное.

Под катом можно ознакомиться с видеозаписями докладов конференции WebCamp 2012.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии2

Прощай, Zen Coding. Привет, Emmet!

Время на прочтение5 мин
Количество просмотров250K

Еще в 2009 году, image Сергей Чикуёнок опубликовал статью, в которой представил новый способ написания HTML и CSS кода. Этот революционный плагин, назывался Zen Coding, он помогал многим разработчикам на протяжении многих лет и в настоящее время вышлел на новый уровень.

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

Для тех, кто предпочитает смотреть, а не читать, вот видео любимых трюков автора.

Читать дальше →
Всего голосов 152: ↑123 и ↓29+94
Комментарии112

Информация

В рейтинге
1 141-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность