Как стать автором
Обновить
17
0
Коваленко Александр @bumsaver

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

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

Cardsharing: Передача DW кодов по сети

Время на прочтение2 мин
Количество просмотров17K
imageПривет, коллеги! Как и любой нормальный человек периодически я отдыхаю от работы. И помимо автоспортивной тематики я иногда смотрю телевизор. Так как телевидение, предоставляемое по обычной антенне, меня не устраивает и хочется HD, то я выбрал для себя спутниковое ТВ. Купив себе недорогой HD-ресивер я жил с ним без проблем около года. Но в один прекрасный момент количество телевизоров в доме инкрементировалось и потребовалось «повторить». Я выяснил, что путей несколько: или же поставить спутниковый конвертор с двумя выходами, купить второй ресивер и оплатить второй контракт. Или же воспользоваться технологией cardsharing. По привычке я зашел на Хабр, что бы узнать об этом больше, и не обнаружил по этой тематике ничего. Что же, попробую исправить ситуацию и описать данную технологию.

Читать дальше →
Всего голосов 30: ↑21 и ↓9+12
Комментарии16

Балансировка статических файлов средствами nginx

Время на прочтение4 мин
Количество просмотров29K
Представим, что у нас есть приложение/сайт с достаточно высокой нагрузкой.

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

Как поступить, когда на сервер ежесекундно приходит большое количество народу? Ответ прост — nginx.

Читать дальше →
Всего голосов 49: ↑37 и ↓12+25
Комментарии19

Выводим текст на HTML5 Canvas

Время на прочтение5 мин
Количество просмотров101K
HTML5 Canvas – очень обширная тема со многими “вкусностями”, о многих из которых уже писали и ещё будут писать. Поэтому, я хочу немного рассказать в этой статье, только об одной маленькой, и как на первый взгляд может показаться банальной темой – работа с текстом. Я хочу показать, что с ним почти также можно работать, как с обычным текстом в вебе, т.е. позиционировать, накладывать стили и градиенты, а также писать многострочные предложения легко и без проблем.
Читать дальше →
Всего голосов 62: ↑56 и ↓6+50
Комментарии21

Бот для игры в камень, ножницы, бумага

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

Теория


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

Сама игра состоит в выборе и показе сопернику одного из трех вариантов: колодец(камень), ножницы и бумага. Причем, ножницы тонут в колодце(тупятся о камень), бумагу режут ножницы, колодец накрывается бумагой(камень оборачивается бумагой). Обозначим:

  1. 0 — колодец(камень)
  2. 1 — ножницы
  3. 2 — бумага

Предположим, что игра ведется достаточно долго, чтобы можно было собрать статистику, но не так долго, чтобы человек начал изменять свое поведение, раскусив алгоритм предсказания. Имеем последовательность пар чисел: (0, 1) (0, 2) (2, 2) (2, 0)..., где первое число показал бот, второе — человек. Чтобы определить победителя в паре, сравним числа. (0 — 1) % 3 = 2, значит человек проиграл, (0 — 2) % 3 = 1, значит человек победил, (2 — 2) % 3 = 0, ничья. Обозначим n — длина последовательности чисел из пар. Число возможных последовательностей равно 3^n. При n = 5 получится 243 варианта, что много больше 32 для двух вариантов выбора. Ясно что получить все варианты в течение одной игры маловероятно, поэтому усовершенствуем гадалку. Не каждый выбор человек делает опираясь на все n элементов последовательности чисел, некоторые ее элементы он игнорирует. Назовем такие элементы пустыми.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии9

Вешаем сервер через PHP

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

Здравствуйте, уважаемые хабра-пользователи. Довольно давно я написал PHP скрипт — fork-бомбу и начал его тестировать на различных серверах/хостингах. На моё удивление, скрипт работал на 90% протестированных мною компаний. Я отписал об этой баге во многие компании, но прошло уже много времени, а она до сих пор актуальна.
Читать дальше →
Всего голосов 128: ↑81 и ↓47+34
Комментарии61

Модуль nginx для борьбы с DDoS

Время на прочтение6 мин
Количество просмотров67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →
Всего голосов 142: ↑140 и ↓2+138
Комментарии43

Как я веду прямые эфиры на интернет-радиостанции

Время на прочтение4 мин
Количество просмотров26K
Для того чтобы вести прямой эфир кажется не так много и надо: настроить звук так чтобы одновременно играла музыка и шла запись с микрофона, хорошо если при этом будет работать Skype. На практике оказывается не так всё просто. В статье я расскажу о настройках моей рабочей станции и используемом программном обеспечении во время ведения эфиров на интернет-радио.

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


Читать дальше →
Всего голосов 95: ↑92 и ↓3+89
Комментарии69

HTPC из старого хлама

Время на прочтение3 мин
Количество просмотров27K
image

Давно чесались руки соорудить домашний медиацентр, и, по совместительству, файлохранилище. Новое покупать не давала жаба, пришлось собирать из того, что было. А было… (как всегда, трафик!!!)
Читать дальше →
Всего голосов 116: ↑113 и ↓3+110
Комментарии93

Настройка IPTV в OpenWRT

Время на прочтение3 мин
Количество просмотров139K
Хотя я практически не смотрю телевизор, иногда появляется непреодолимое желание посмотреть что сейчас вещают в новостях. Часто это желание возникает когда дочка спит, и телевизор уже вне зоны доступа. Как вы понимаете выход один — IPTV.
Читать дальше →
Всего голосов 38: ↑30 и ↓8+22
Комментарии65

Сети для самых маленьких. Часть вторая. Коммутация

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


После скучного рассказа о подключении к кошкам переходим к настройке сети. В этот раз темы будут для новичков сложные, для старичков избитые. Впрочем сетевым аксакалам едва ли удастся почерпнуть что-то новое из этого цикла. Итак, сегодня:
а) аккуратно впитываем теорию о коммутаторах, уровнях сетевой модели, понятии инкапсуляции и заголовков (не пугайтесь — еще не время),
б) собираем спланированную в нулевой части цикла сеть,
в) настраиваем VLAN'ы, разбираемся с access и trunk-портами и тегированными Ethernet-фреймами,
г) соотносим текущие знания со стеком протоколов TCP/IP и моделью OSI (да, наконец-то мы ее коснёмся).



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

Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии45

QoS в Linux: фильтр U32

Время на прочтение14 мин
Количество просмотров21K
Так повелось, что фильтр U32 в подсистеме управления трафиком ядра Linux считается простым и понятным, а потому в подробном документировании не нуждается. Например, в LARTC (Linux Advanced Routing and Traffic Control) про него лишь несколько абзацев. Но на самом деле U32 устроен гораздо сложнее и интереснее, но и в использовании он не так прост, как может показаться. Под катом статья по этому фильтру с примерами использования и подробными пояснениями.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии11

Список проверки глупых вещей — Лимончелли

Время на прочтение4 мин
Количество просмотров12K
Многим известны книги Томаса Лимончелли по системному администрированию, очень ценные для админа книжки. На его сайте тоже немало интересного, среди прочего нашёл такую статью: «A list of dumb things to check». На русском языке она, к сожалению, не нагуглилась, переводил сам. После допилинга под свои условия буду использовать как часть КМБ у себя в отделе, а первоначальный перевод выкладываю тут.
Читать дальше →
Всего голосов 66: ↑63 и ↓3+60
Комментарии27

Еще несколько слов о Path MTU Discovery Black Hole

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

Еще несколько слов о Path MTU Discovery Black Hole



Вместо вступления


Однажды для каждого настоящего системного администратора (или исполняющего обязанности такового) наступает момент истины. Ему выпадает судьба настроить маршрутизатор на компьютере с установленной ОС GNU/Linux. Те, кто это уже прошел, знают, что ничего сложного в этом нет и можно уложиться в пару команд. И вот наш админ находит эти команды, вбивает их в консоль и гордо идет к пользователям сказать, что уже все работает. Но не тут-то было – пользователи говорят что их любимые сайты не открываются. После траты некоторой части своей жизни на выяснение подробностей обнаруживается, что большая часть сайтов ведет себя следующим образом:
1. При открытии страницы загружается заголовок и больше ничего;
2. В таком состоянии страница висит неопределенно долгое время;
3. Строка статуса браузера все это время показывает что загружает страницу;
4. Пинги и трассировка до данного сайта проходят нормально;
5. Соединение по telnet на 80 порт тоже проходит нормально.
Обескураженный админ звонит в техподдержку провайдера, но там от него быстро избавляются, советуя попробовать настроить маршрутизатор на OC Windows, а если уж и там не работает тогда… купить аппаратный маршрутизатор.
Я думаю, эта ситуация знакома многим. Некоторые в нее попадали сами, у кого-то с ней сталкивались знакомые, а кто-то встречал таких админов на форумах и прочих конференциях. Итак: если у Вас Такая Ситуация, то — Поздравляю! Вы столкнулись с Path MTU Discovering Black Hole. Данная статья посвящается тому, отчего это бывает, и как решить эту проблему.

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

База GeoIP – страны и города, декабрь 2011

Время на прочтение2 мин
Количество просмотров9.7K
Вышла в свет обновленная версия русскоязычной базы данных стран и городов. Основное изменение — удалено большое количество дублей городов.
Читать дальше →
Всего голосов 80: ↑75 и ↓5+70
Комментарии70

Красивый вывод изображений

Время на прочтение3 мин
Количество просмотров46K
image
Всегда мне не нравилось, как выводятся изображения на моих сайтах. Хотелось какой-то упорядоченности, зависимости. Поэтому, я полез искать скрипты и решения в гугле. После безуспешных поисков, решено было делать что-то самому.
Но что? Я стал смотреть, как сделан вывод картинок у популярных сайтов. Всё мне не нравилось, пока я не додумался посмотреть вывод в google images и google+. Меня поразило то, что я никогда этого не замечал картинки выравниваются по ширине и высоте не обрезаясь. Такой принцип я и захотел реализовать. Получается мозаика. И всё будто на своём месте.
Не долго думая, я сел писать код, который сможет вывести картинки так же.
Читать дальше →
Всего голосов 105: ↑80 и ↓25+55
Комментарии96

«Правильный» system() для PHP-CLI

Время на прочтение2 мин
Количество просмотров13K
Внимание! Все рассуждения относятся к запуску PHP в режиме CLI, а не как модуль веб-сервера!

Если вы когда-либо использовали функцию system() в PHP, вы наверняка задавались вопросом: каким образом system() возвращает последнюю строку для команды, да ещё и выводит результаты исполнения команды на веб-страницу, а не себе куда-то в stdout веб-сервера? И почему system() работает не так, как system() в Си? Ответ, в общем-то, проще, чем может показаться.
Читать дальше →
Всего голосов 87: ↑72 и ↓15+57
Комментарии6

Разгони свой сайт – автоматическая СКЛЕЙКА + GZIP

Время на прочтение9 мин
Количество просмотров16K
Разгонись

Есть куча советов как убыстрить отдачу сайта – это и статика через nginx и кластеризация и куча еще всяческих хитрых технологий. Однако во всех книжках, советующих как можно повысить загрузку сайтов можно найти две постоянно повторяющиеся темы – «склеивание CSS/JS» и «включение сжатия».
Читать дальше →
Всего голосов 80: ↑60 и ↓20+40
Комментарии85

MySQL: Взламываем черный ящик

Время на прочтение2 мин
Количество просмотров13K
О чем пойдет речь: забавный и экстравагантный способ «взлома» веб-сайта, у которого «всего-лишь» не экранируются кавычки одного из параметров. При этом пропустим рассуждения о том, почему все не экранируется на стороне самого языка программирования или ORM.

Вводная: веб-сайт, у которого не экранируется один из параметров в простом SELECT запросе. При этом все ошибки перехватываются, обрабатываются и выводится скромное «Нет данных» или «Произошла ошибка».

Казалось бы: не велика беда. Обновление или изменение данных в него втереть, данные наружу не открываются, все сводится к «Извините, нет данных» — черный ящик.

Но, что на самом деле можно сделать в данной ситуации?
Читать дальше →
Всего голосов 122: ↑95 и ↓27+68
Комментарии25

VRRP в Linux

Время на прочтение4 мин
Количество просмотров35K
У одного молодого развивающегося провайдера на заре становления организации доступа для физ. лиц была принята следующая архитектура для сети:
  • IPoE
  • привязка порт-ip
  • выдача адресов по DHCP (опция 82)
  • маршрутизирующий сервер на Linux (CentOS)

По мере роста абонентской базы все проблемы из первых трех пунктов решались успешно. А с последним прогнозировались небольшие проблемы:
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии40

Mikrotik Router OS. «Справедливое» разделение канала

Время на прочтение9 мин
Количество просмотров142K
На просторах хабра мне попалась пара статей «Mikrotik Router OS, скрипт для динамического деления скорости». А поскольку этой проблемой я занимаюсь уже не первый год, я решил поделиться своими знаниями.

Прежде всего, эта статья пригодится тем, кто имеет желание «справедливо делить интернет» между несколькими клиентами сети. Однако решение подойдет и для разделения канала связи нескольких офисов или доступа к отдельным ресурсам, и для шейпинга.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии37

Информация

В рейтинге
Не участвует
Откуда
Херсон, Херсонская обл., Украина
Дата рождения
Зарегистрирован
Активность