Как стать автором
Обновить
124
0
habracut @habracut

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

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

Получаем IP-адреса HTTPS-клиентов с HAProxy (frontend) на Nginx (backend) в режимах HTTP и TCP-балансировки

Время на прочтение3 мин
Количество просмотров54K
Довольно часто требуется балансировать нагрузку между несколькими веб-серверами. При этом, как правило, необходимо, чтобы веб-приложения получали реальные IP-адреса клиентов, а не IP балансировщика.

В случае балансировки и терминации HTTP(S)-трафика на HAProxy (Layer 7 [1]) данная задача легко решается добавлением заголовка “X-Real-IP” и его обработкой на Nginx при помощи модуля ngx_http_realip_module [2]. При балансировке TCP-трафика от HTTPS-клиентов и передаче его на веб-сервера напрямую без модификации или терминации (Layer 4 [3]) добавить данный заголовок невозможно, поэтому требуется воспользоваться возможностями, предоставляемыми Proxy Protocol [4, 5, 6].

Рассмотрим оба варианта (балансировка L7 и L4) на примере выдержек из конфигурационных файлов haproxy 1.5.9 и nginx 1.6.2

Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии14

Видео докладов с DevOps Meetup про Docker

Время на прочтение1 мин
Количество просмотров16K
Недавно в офисе Badoo проходил DevOps Meetup про Docker и контейнерную виртуализацию. Делимся с вами видео докладов.

1. «Docker в Badoo: от восторгов к внедрению».
Антон banuchka Турецкий, Раудсепп Илья, Badoo.



Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии5

За один проход

Время на прочтение7 мин
Количество просмотров154K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Всего голосов 73: ↑72 и ↓1+71
Комментарии56

25 полезных шорткатов для Photoshop

Время на прочтение3 мин
Количество просмотров187K
Здравствуй, дорогой хабрадруг! В этой статье приводятся 25 самых полезных сочетаний клавиш (шорткатов) в Photoshop, которые вы можете использовать, для того чтобы ускорить выполнение вашей работы. Некоторые из них редко упоминаются, некоторые применяются довольно часто, а некоторые вообще доступны только в Photoshop CS5. Я надеюсь, что каждый из вас найдет новые и полезные шорткаты в этой статье. Итак, давайте же начнем!


Читать дальше →
Всего голосов 126: ↑103 и ↓23+80
Комментарии76

Интернет через ICMP

Время на прочтение1 мин
Количество просмотров29K
Здравствуйте! Вы забыли заплатить за интернет, провайдер заблокировал TCP и UDP, а про ICMP забыл, и любой ресурс пингуется? Тогда этот топик для вас!

image
Читать дальше →
Всего голосов 193: ↑181 и ↓12+169
Комментарии83

О чем недоговаривают производители SSD [Обновлено!]

Время на прочтение4 мин
Количество просмотров52K
Это перевод статьи с сайта «The SSD Review». По правде сказать, это не совсем перевод — скорее выжимка смысла с добавлением графиков, которые говорят сами за себя. Я намеренно оставил без внимания рекламу накопителей Intel. Ну и еще один момент — автор странно передергивает, сначала показывая преобладание random 4-8k write, а затем приводя на графиках как меру производительности random 4-8k read. Ощущение, что он сам что-то недоговаривает. Будет неплохо, если кто-то из компетентных людей оставит в комментариях свое мнение.

UPD:
Достоверность информации в статье подтверждена опытным путем. Проделал опыты, написал парсер и выложил результаты хабражитель deseven, за что ему огромное спасибо. Табличку с его данными вы можете посмотреть в конце статьи.

Вы задумались о покупке SSD? Речь пойдет о самом важном, что необходимо для этого знать. Данная информация покажет в выгодном свете лишь парочку-другую производителей, в то время как остальные окажутся в крайне невыгодном положении.

Итак, в чем же обман?
Читать дальше →
Всего голосов 202: ↑185 и ↓17+168
Комментарии291

Статистика по вашим сообщениям в соц. сети Вконтакте

Время на прочтение1 мин
Количество просмотров18K
Для любителей статистики, был написан jsскрипт (не мной) который делает статистику по вашим сообщениям.
image

смотрим под кат
Читать дальше →
Всего голосов 38: ↑15 и ↓23-8
Комментарии46

Chatroulette своими руками — 50 строк кода

Время на прочтение1 мин
Количество просмотров28K
image
Пару месяцев назад я приглашал всех на веб-семинар о p2p во Flash, но сделал это слишком поздно, поэтому наверняка большое количество желающих на него не попало. Самое ценное, что я извлек из этого семинара — то, что peer-to-peer приложения во Flash делать очень легко. Правда у самого руки очень долго до этого не доходили.

Но буквально вчера руки очень сильно зачесались, и посидев ночку я разобрался в том, как работает технология p2p во Flash. Соединить видеопотоки двух flash-клиентов мне показалось мало, поэтому решил сделать что-то более интересное:
  1. Пользователь открывает страничку
  2. Выбирает тему для разговора (один из постов на главной хабры)
  3. Разговаривает со всеми, кто выбрал эту же тему

Сделал. Тут мой пример видеоконференции, исходники клиента и сервера можно скачать отсюда. Минимальные требования для примера — наличие Flash Player 10 и вэб-камеры.

UPD: Все это добро хостится на AppEngine, могут закончиться бесплатные квоты и все перестанет работать. Перекинул клиента на narod.ru. Если работать не будет — заходите сюда
Всего голосов 78: ↑72 и ↓6+66
Комментарии59

Исследование надёжности SSD дисков Intel опытным путём

Время на прочтение5 мин
Количество просмотров43K
Тут я расскажу, как я вывел некоторые примерные цифры надёжности SSD Intel принадлежащих к mainstream серии и использующих MLC технологию. Почему Intel? Всё просто, у меня их две штуки. Да и на текущий момент это наиболее адекватные SSD на рынке по всем соотношениям, которые можно применить к SSD дискам, а именно: Скорость/Надёжность/Цена. Вдобавок к этому они достаточно популярны (если не самые популярные) и найти других пользователей данных SSD совсем не трудно. Ну и наконец, у компании Intel есть замечательная программа Intel SSD Toolbox, которая и помогла мне определить возможный уровень надёжности этих дисков. Исследование я провёл по чужим показаниям этой программы. К слову говоря, подошла бы любая программа, которая умеет читать S.M.A.R.T. значения с контроллера диска, но искать данные проще по названию известной программы.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии101

Угадай 2/3 среднего, %username%

Время на прочтение3 мин
Количество просмотров23K
В 2005 году датская газета Politiken предложила своим читателям сыграть в следующую игру: каждый желающий мог прислать в редакцию действительное число от 0 до 100. Тот, чье число оказалось бы ближе всего к 2/3 от среднего арифметического присланных чисел, выигрывал 5000 датских крон (на тот момент около $800).
Читать дальше →
Всего голосов 105: ↑96 и ↓9+87
Комментарии90

Провайдер заблокировал доступ к блогу Навального по запросу ФСБ

Время на прочтение2 мин
Количество просмотров1.3K
Вчера обнаружил, что не могу зайти в блог Навального. Пинги до navalny.livejournal.com не идут, в то время как остальные блоги ЖЖ работают нормально (На текущий момент ни один блог на домене livejournal.com не открывается).

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

В техподдержке сказали дословно следующее: «Доступ к этому сайту заблокирован по требованию ФСБ».

update: На мой запрос пришел ответ от провайдера:
От кого a.kamcharov@evolife.su
Когда 17 мая 2011 в 20:50

доступ к ресурсу navalny.livejournal.com временно приостановлен по приказу ФСБ
--
Специалист технической поддержки ООО "Телеком.ру" тел. 8 (8422) 270303


update 2: Запись разговора с техподдержкой (прошу прощения за ужасное качество).

update 3: Сильно удивлен всеобщим недоверием. Считаю, что лучшим вариантом, проливающим ясность на событие, был бы звонок самого Алексея или его представителя в техподдержку провайдера. Если «аудиозапись разговора с техподдержкой тоже не кажется очень убедительной», что мешает сделать самому такую же?

update 4: В связи с появившемся официальным комментарием директора компании «Телеком.ру» с изложением точки зрения об ошибке оператора, хочу заметить, что как минимум 2 различных представителя службы техподдержки указывали на то, что причина блокировки крылась в запросе ФСБ.

У меня нет желания идти в противоречие с мнением директора, а доношу лишь известные мне факты.
Читать дальше →
Всего голосов 348: ↑292 и ↓56+236
Комментарии257

Ускорение загрузки Windows for fun and profit

Время на прочтение4 мин
Количество просмотров803K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Всего голосов 532: ↑516 и ↓16+500
Комментарии365

Пробежки: хороший спорт для айтишника или как начать бегать

Время на прочтение5 мин
Количество просмотров28K
Всем известно что IT специалисты, в большистве своём, ведут сидячий образ жизни. Практически все рабочее время они проводят на своей 5-й точке. Это явно не идёт на пользу здоровью. А если учесть тот факт, что рацион среднестатистического ITшника достаточно вреден для организма, то в результате всех ждут: избыточный вес, атрофирование мышц, и еще всякие «мелкие неприятности» (вроде геморроя и импотенции). В этой статье я раскажу о пользе регулярных физических нагрузок, о беге трусцой, чем он хорош, и главное — как начать им заниматься.

Регулярные физические нагрузки нужны и полезны. Среднестатистический ITшник недополучает физических нагрузок на работе, это факт. Он не таскает холодильники на 9й этаж без лифта, не носит мешки с цементом на стройке, не бегает за мамонтом в надежде на вкусный ужин. Так что со временем он только «хиляет» и «сдувается». Думаю, это ощущает каждый, кто еще не занимается спортом по какой-либо причине, будь то нехватка времени, лень, или растеряность. Если же желание всё же возникает, то вместе с ним возникает и вопрос — какой же спорт выбрать?
П.С. Регулярный бег позволяет эффективно сбросить вес.
Читать дальше →
Всего голосов 254: ↑216 и ↓38+178
Комментарии271

Автоматически убираем фон у сфотографированного текста в Photoshop или ImageMagick

Время на прочтение2 мин
Количество просмотров4K
Хочу поделиться трюком, который немного помогает улучшить качество при печати в ч/б всякого рода конспектов, если их почему-то «оцифровали» фотоаппаратом вместо сканера.
image
Читать дальше →
Всего голосов 70: ↑56 и ↓14+42
Комментарии25

Собираем среду разработки сайтов на Маке

Время на прочтение2 мин
Количество просмотров1.3K
Хотелось бы дать небольшую наводку маководам, как установить себе окружение для локальной разработки сайтов. В данном примере рассматривается установка с MacPorts набора Apache+PHP+MySQL+phpMyAdmin. Сразу скажу, что я данный топик не является детальным и отлаженным руководством по установке и у кого-то что-то может не получиться, поэтому сделаю ссылку на готовые и отработанные решения — продукт MAMP и руководство по установке, на которое ссылается php.net.
Среда в которой выполнялась установка: Mac Mini, OS X 10.4.
Итак, ставим среду разработки на Мак:
  1. Устанавливаем MacPorts.
  2. Устанавливаем Apache.
    Вводим в терминале:
    sudo port install apache2
    Пароль, который спросят — ваш маковский пароль
    Первоначально я хотел поставить апач 1.3, но связать его с php5 с ходу не получилось, поэтому поставил второй.
    Запускаем:
    sudo /opt/local/apache2/bin/apachectl start
    Проверка: смотрим в браузере localhost
  3. Устанавливаем PHP с поддержкой MySQL:
    sudo port install php5 +mysql5
    sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini
  4. Добавляем модуль PHP в Apache
    sudo /opt/local/apache2/bin/apxs -a -e -n «php5» /opt/local/apache2/modules/libphp5.so
    Вставляем содержание /apache2/conf/extras-conf/mod_php.conf в /apache2/conf/httpd.conf ручками или инклудом в том же httpd.conf.
    Добавляем index.php в индексные файлы.
    Перезапускаем апач:
    sudo /opt/local/apache2/bin/apachectl restart
    Проверка: создаём test.php в /opt/local/apache2/htdocs/ с содержанием <?php phpinfo() ?> и проверяем его по адресу localhost/test.php
  5. Устанавливаем MySQL:
    sudo port install mysql5 +server
    Даём права пользователю mysql на /opt/local/var/db/ и вложения в неё. Я делал через Finder, наверное можно и через терминал.
    Устанавливаем БД:
    sudo /opt/local/bin/mysql_install_db5 -user root
    Запусаем демона:
    sudo /opt/local/libexec/mysqld -u root
  6. Устанавливаем phpmyadmin:
    sudo port install phpmyadmin
    Заходим на localhost/pma/setup/index.php
    Устанавливаем новый сервер localhost без пароля
    Заходим в phpmyadmin под root


К сожалению автоматический запуск MySQL и Apache, как это обещал MacPorts у меня не заработал, поэтому запускаю ручками:
$ sudo /opt/local/apache2/bin/apachectl start
$ sudo /opt/local/libexec/mysqld -u root
Данная проблема с MacPorts уже описывалась на Хабре и были найдены какие-то решения.
Всего голосов 23: ↑12 и ↓11+1
Комментарии8

Вардрайвинг, сбор информации о беспроводных сетях

Время на прочтение4 мин
Количество просмотров21K
Сбор информации о беспроводных сетях или wardriving (в зависимости от способа передвижения, это может быть и warwalking, и warflying, и, как было продемонстрировано на BlackHat 2008 — warbalooning) занятие очень увлекательное и при этом предоставляющее богатые статистические данные об уровне защищености беспроводных сетей по городу.

Читать дальше
Всего голосов 22: ↑20 и ↓2+18
Комментарии14

BitTorrent Tracker based on Django

Время на прочтение1 мин
Количество просмотров837
Как то захотелось поставить себе персональный трекер для того чтобы публиковать большие файлы. Те существующие трекеры, которые я нашел, меня не удовлетворили, и я тогда решил написать свой, да и повод нашелся все таки изучить Django.
В общем встречайте, SimpleBTT.
Часть концепции взял у tokyotosho.com и nyaatorrents.org

В общем смотрите, критикуйте, вносите предложения.
Собственно сам трекер
Исходники на git GPLv3

P.S. Упреждая вопрос, на самом деле трекеры на джанго уже есть, но все таки свой велосипед удобнее.
P.S.S. Грабить корованы оно не будет.
Всего голосов 15: ↑15 и ↓0+15
Комментарии5

Бекапим сервер

Время на прочтение2 мин
Количество просмотров1.6K
Нередкая это задача, но делается довольно просто!

Приступим:

1) бэкап мускула

Для этого есть очень хорошая утилитка “mysqldump”, она входит в состав мускула. (если вы юзаете lampp то она лежит в “/opt/lampp/bin/mysqldump”)

Вобщем набиваем в консоли примерно следующее:
mysqldump –all-databases > /mysql.12.12.2008.dump


эта команда забекапит все базы данных в файл “mysql.12.12.2008.dump” в корне! на самом деле пишем любой удобный путь! Если вы не рут то нужно указать логин/пароль с помощю –user логин –password пароль

Приготовьтесь, это может занять серьёзное количество времени если бд приличного размера.

Фишка может не работать, если в какой-нибудь из бд есть ошибки…

Кстати говоря можно подойти к проблеме немного подругому и не бекапить все базы, а каждую отдельно, плюс если в какойто из них есть ошибки то мы узнаем в какой, делается так:
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии19

Список стран и городов in English

Время на прочтение1 мин
Количество просмотров754
Для проекта понадобился список стран и городов на английском. Нашел довольно быстро, но, все же, решил выложить сюда, может кому-нибудь еще понадобится. Формат: CSV.

Страны
Города

P.S. На хабре нашел только список на русском.
Всего голосов 16: ↑11 и ↓5+6
Комментарии4

Попытка реализации многопоточности в PHP

Время на прочтение7 мин
Количество просмотров653
Задача была в след: Нужно было получить координаты для множества городов и регионов.
Т.к. координат было куча возникло решение в многопоточности.

Плюсы: одновременное выполнение нескольких запросов к серверу.
Минусы: если запускать свой скрипт, то надо указывать url к скрипту, т.е. на локале не всегда будет работать.
Читать дальше →
Всего голосов 11: ↑5 и ↓6-1
Комментарии23
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Польша
Дата рождения
Зарегистрирован
Активность