Search
Write a publication
Pull to refresh
1
0
postdig @postdig

User

Send message

DNS Tunneling via iodine: сыр действительно бесплатный

Reading time3 min
Views26K
Есть:
— отключенный за неуплату интернет (adsl, lan, etc)
или
— нешифрованная wi-fi сеть c закрытым интернетом, но работающим dns
или
— очень строгий firewall с открытым dns

Хочется:
полноценный интернет, пусть даже очень медленно
Как?

Javascript от а и до… II

Reading time7 min
Views11K
Вот и продолжение первой части, много времени прошло, и вот… здесь я, как и обещал, расскажу поподробней об основных типах. Для начала пара замечаний, первая часть не прошла естественно без критики, так что вступление будет 'работой над ошибками'. В дальнейшем такие работы над ошибками буду вставлять регулярно, и надеюсь хабралюди этому посодействуют…
Читать дальше →

Обобщая настройку роутеров

Reading time5 min
Views20K
image

Многие из вас слышали про Yota и WiMAX.

В этой статье я хочу обобщить информацию по настройке нейотовских роутеров таким образом, чтобы они раздавали WiMAX по WiFi и Ethernet.
Также я рассмотрю аналогичные решения для этого.


Введение


Если вы уже знаете, что такое Yota, пропустите эту часть. Если нет, то я вкратце расскажу.

WiMAX — это технология, обеспечивающая высокую скорость доступа в интернет — до 10 Мбит/с, в любое время, в любом месте зоны покрытия и поддерживает соединение даже в движении, на скорости до 120 км/ч.
Yota — первая в России сеть мобильного WiMAX. Она развернута в Москве, Санкт-Петербурге и Уфе, в регионах, где проживает более 20 млн человек. Сеть работает по стандарту IEEE 802.16e-2005 в частотном диапазоне 2,5-2,7 ГГц. (посмотреть карту покрытия)

Для доступа в сеть используются несколько разных устройств. Мы остановимся на модеме Samsung U200. Собственно, чтобы подключиться к интернету требуется всего лишь воткнуть этот модем в USB-порт компьютера. (подробнее на yota.ru)

Но что делать если нужно подключить к интернету не один компьютер, а несколько? Можно купить на каждый компьютер модем, но это дорого. А можно купить специальный роутер, который будет «раздавать» интернет на сколько угодно компьютеров как по Wi-Fi, так и по обыкновенной сети.

Я предлагаю вам сделать такой роутер.
Читать дальше →

Использование составных ключей для манипуляции данными в memcached

Reading time7 min
Views3.3K
Часто, при работе с memcached, возникает ситуация, когда необходимо удалить данные в самых различных местах. Например, при добавлении нового комментария, необходимо обновить не только кеш самих комментариев этой страницы, но и ленты комментариев на главной странице, списока комментариев пользователя, счетчика комментариев пользователя, общего счетчика комментариев сайта, счетчика комментариев статьи и т.д. Можно запомнить все ключи этих данных и множество раз вызвать delete() с этими ключами.

<?php
$cache->delete('comments_art123');
$cache->delete('comments_tape');
$cache->delete('comments_user123');
$cache->delete('comments_counters_art123');
$cache->delete('comments_counters_user123');
......
?>


* This source code was highlighted with Source Code Highlighter.


Как известно, memсached хранит данные плоско, то есть одному ключу соответствует всегда одно значение. Вложенных ключей не существует. Так же нет возможности удалить группу ключей, скажем по маске. Хорошо бы было, если бы можно было сделать, например, так: $cache->delete('comments*'); Но так нельзя.

Но если нельзя, но очень хочется, то можно ;)
Читать дальше →

phpFastCGI: настоящий FastCGI для PHP

Reading time2 min
Views10K
— Добрый день. Вы наверняка уже наслышаны о протоколе FastCGI, он связывает Веб-сервер и сервер приложений, его реализации есть во множестве языков. Однако, в PHP реализация FastCGI до недавних пор была представлена лишь патчем PHP-FPM, который фактически не давал прироста производительности перед mod_php, поскольку он, вопреки идеологии FastCGI, перезапускает скрипт каждый раз заново. Идеология FastCGI подразумевает единовременную инициализацию приложения при запуске (подгрузку нужных классов, соединение с базой данных, и т.д.), и выполнение запросов один за другим.
phpFastCGI — правильная реализация FastCGI, которая позволяет добиться немыслимой производительности.
Разработка идёт очень активно, и новые фичи появляются очень быстро.
Страничка проекта — phpfastcgi.googlecode.com
Пример простого приложения — code.google.com/p/phpfastcgi/source/browse/trunk/example.php
В действии пример можно увидеть здесь — ya-tv.ru/phpfastcgid (может переодически лежать, это нормально, идёт тестирование). Страничка-пример легко выдерживает 5,000 запросов в секунду всего на 20-ти воркерах.
Проект пока в стадии тестирования и живёт только в SVN.
Приглашаю всех заинтересовавшихся принять в нем посильное участие!
$ svn checkout phpfastcgi.googlecode.com/svn/trunk phpfastcgi

Читать дальше →

FlylinkDC++ и Wine

Reading time2 min
Views5.3K
В ответ на статью Linux DC++ и многопоточность решил описать свой опыт работы с клиентом FlylinkDC++ под Wine.
У автора вышеуказанной статьи при работе с этим клиентом возникло несколько проблем, решение которых я продемонстрирую.
Из того текста я выделил три проблемы:
  • Значки файлов в результатах поиска
  • Пропажа информации, «у скольки человек имеется данный файл» в результатах поиска
  • Очень медленное скачивание последних блоков крупных файлов
От себя я добавлю ещё один пункт: перехват клиентом magnet-ссылок из браузера Opera.
Читать дальше →

Задачка на мультикаст с маршрутизаторами cisco

Reading time1 min
Views7.9K
По материалам 5ой Российской Олимпиады cisco, где мне довелось проучаствовать в придумывании и тестировании задачек для финалистов, родилась такая непростая задачка:

Рассмотрим простейшую схему:

image

есть маршрутизатор cisco, за одним интерфейсом расположен компьютер с программой, принимающей потоковую передачу (например, VLC Player), за другим — передающая станция, вещающая поток (например, видео) на некоторый мультикастовый адрес.

Вы можете менять мультикастовый адрес потока, на который вещает сервер.

Задача1: можно ли заставить компьютер принять поток, не прибегая к мультикастовой машрутизации?
Задача2: можно ли заставить принять поток с условием, что вы вообще не знаете, что такое мультикаст, как работает и как настраивается?

ЗЫ Эту нетипичную задачку (второй вариант) из 30 человек решили 1.5 человека. Интересно, решите ли вы, ведь ваш уровень существенно выше CCNA, к коим относятся все участники Олимпиады.

ЗЫ Если вы желаете высказаться, но являетесь лишь читателем habra, заходите на форум на сайте www.anticisco.ru, где в разделе «Задачки на сообразительность» она продублирована. Регистрация на сайте простая.

Шпаргалка => Cross Domain AJAX. Dynamic script Tag Hack

Reading time2 min
Views5.6K
Так сложилось исторически (из-за соображений безопасности), что Javascript-обьект XMLHttpRequest, который лежит в основе AJAX, не может делать кросс-доменные вызовы. Это бесполезное ограничение: для злоумышленников не представляет особой проблемы, а для разработчиков создает некоторое неудобство. В следующих поколениях браузеров эту проблему обещали решить, но не раньше чем W3C хотя бы одобрит новые стандарты.

Есть море хаков чтобы обойти это ограничение, но самый популярный это Dynamic Script Tag Hack. Именно через этот хак организован доступ к многим API современных веб-приложений.

Читать дальше →

Средства создания горячих BackUp`ов MySQL

Reading time3 min
Views33K
Доброго времени суток. Недавно я задался вопросом о том, как делать горячие BackUp`ы MySQL-серверов — ниже компиляция из прочитанного. Заранее хочу сказать, что данный пост является скорее большой заметкой, чем полноценной статьёй. Я намеренно уклоняюсь от описания синтаксиса — на эту тему уже немало написано — я же ставил перед собой другую цель — составить краткий обзор основных методов с характерными особенностями:
далее

Защищаемся маршрутизатором: QoS

Reading time11 min
Views190K
QoS — тема большая. Прежде чем рассказывать про тонкости настроек и различные подходы в применении правил обработки трафика, имеет смысл напомнить, что такое вообще QoS.

Quality of Service (QoS) — технология предоставления различным классам трафика различных приоритетов в обслуживании.

Во-первых, легко понять, что любая приоритезация имеет смысл только в том случае, когда возникает очередь на обслуживание. Именно там, в очереди, можно «проскользнуть» первым, используя своё право.
Очередь же образуется там, где узко (обычно такие места называются «бутылочным горлышком», bottle-neck). Типичное «горлышко» — выход в Интернет офиса, где компьютеры, подключенные к сети как минимум на скорости 100 Мбит/сек, все используют канал к провайдеру, который редко превышает 100 МБит/сек, а часто составляет мизерные 1-2-10МБит/сек. На всех.

Во-вторых, QoS не панацея: если «горлышко» уж слишком узкое, то часто переполняется физический буфер интерфейса, куда помещаются все пакеты, собирающиеся выйти через этот интерфейс. И тогда новопришедшие пакеты будут уничтожены, даже если они сверхнужные. Поэтому, если очередь на интерфейсе в среднем превышает 20% от максимального своего размера (на маршрутизаторах cisco максимальный размер очереди составляет как правило 128-256 пакетов), есть повод крепко задуматься над дизайном своей сети, проложить дополнительные маршруты или расширить полосу до провайдера.

Разберемся с составными элементами технологии

(дальше под катом, много)
Читать дальше →

Действительно умные сессии и авторизация

Reading time3 min
Views11K
Добрый день. Увидев статейку на тему «умных сессий», я решил поделиться действительно умной схемой, которая по всем параметрам превосходит предложенную.

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

Читать дальше →

Мониторинг погоды или Cacti HowTo

Reading time5 min
Views14K
Этот пост можно было б начать по разному. Можно по делу: как необходима система мониторинга для поиска ошибок системы и как она помогает обнаружить узкие места. Но, сейчас лето, время отдыха на природе, и начну с того, как я решил узнать, как же часто менятеся прогноз погоды, с помощью популярного средства мониторинга Cacti. Под катом, о любопытный читатель!, тебя ждут рассказы о том как настроить мониторинг произвольных данных в Cacti, да не просто, а с картинками.

итак...

ADSL-интернет

Reading time5 min
Views84K
Наверно тот у кого доступ в интернет осуществляется по ADSL заглядывал в настройки модема и натыкался на параметры vpi/vci. Впервые с ними столкнувшись возникает резонный вопрос «что это и для чего?» В этой статье я решила рассказать немного подробнее о том как осуществляется доступ по технологии ADSL, про PPPoE и конечно же про параметры vpi/vci.

Connecting...

Memcached — стратегия кеширования

Reading time6 min
Views18K
Хочу поприветствовать хабросообщество. Из приятных впечатлении при регистрации на Хабре — так это атмосфера сказочности, которая бывает только в старых добрых сказках из советского Кинофильма.
Итак, слезы умиления прошли, приступаем. Ниже топик, который привел к инвайту на Хабр.

Memcached применяется для кеширования данных. Это делается для того, чтобы избежать лишних обращений к базе данных, т.е. в Memcached сохраняют результаты запросов. Это ускоряет работу сайта и уменьшают время выдачи страниц.
Кеш кроме преимуществ имеет свои недостатки. Одна из проблем кеша — это его актуальность. В режиме работы «только чтение» трудностей не возникает. Если же мы имеем дело с данными, которые изменяются, или изменяются часто, то эффективность кеширования резко падает.
Читать дальше →

Multicast routing для IPTV

Reading time8 min
Views224K
Один очень близкий мне человек, поклонник Хабра, захотел внести вклад в развитие блога Cisco. Являясь яростным поклонником того, что создает эта корпорация, он захотел поделиться опытом. =) Надеемся росчерк пера удался.

Относительно недавно мне посчастливилось познакомить и даже поконфигурять multicast routing для IPTV. Изначально, я с этой темой была совершенно не знакома, и это заставило меня вылакать горлышко от цистерны водки перекопать огромное количество документации, чтобы войти в курс дела.

И вот незадача. Обычно в документации выкладывают все и сразу и для человека, впервые столкнувшегося с этой темой, не понятно с чего начать. Во время чтения pdf’ок я ловила себя на мысли, что было бы неплохо наткнуться где-нибудь на статью, которая могла бы коротким путем провести от теории к практике, чтобы понять с чего стоит начать и где заострить внимание.

Мне не удалось обнаружить такую статью. Это побудило меня написать эту статейку для тех, кто также как и я столкнется с вопросом, что это за зверь IPTV и как с ним бороться.
Я хочу смотреть IPTV

Пишем свой плагин для nagios

Reading time1 min
Views9.7K
В своей повседневной работы я очень активно использую nagios. Как мне кажется, это очень мощная система для мониторинга серверов. Можно мониторить загрузку сервера, доступность разных серверов и тд и тп.

Для нагиоса есть очень много плагинов. Большое собрание плагинов находится по адресу nagiosplugins.org. Можно найти подходящий для себя, поставить и наслаждаться жизнью. Но что же делать если ни один плагин не устраивает вас по функционалу? Да ничего. Напишем свой. Это очень просто.

Итак начнем.

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

Он парсит свой конфиг, находит там команду запуска какого-либо плагина и запускает. Например, php -f checkServer.php. checkServer.php выполняет какую-то свою работу по проверке сервера и отдаёт в ответ статусное сообщение и код завершения работы.

Нагиос понимает 4 кода завершения работы
  • 0 — Все ок.
  • 1 — Предупреждение
  • 2 — Критическая ошибка
  • 3 — Что-то неизвестное случилось

Статусное сообщение это любая информация которая выводится скриптом на стандартный вывод.

И так сам скрипт простейшего плагина под nagios(на php).

define( "STATUS_OK", 0 );
define( "STATUS_WARNING", 1 );
define( "STATUS_CRITICAL", 2 );
define( "STATUS_UNKNOWN", 3 );

$checkFilePath = 'file';
if(file_exists($checkFilePath))
{
echo 'File exists. Everything is ok';
exit(STATUS_OK);
}

echo 'File does not exists';
exit(STATUS_CRITICAL);


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

Обратимое шифрование текста — метод «Двойной квадрат»

Reading time5 min
Views50K
Здравствуйте!

Однажды, мне понадобилось шифровать текст. Я знал что в PHP есть расширение mcrypt, но интуиция подсказывала, что не на всех хостингах это включено.
Поэтому я начал подозревать что придется кодить решение самому. Что я собственно и сделал. Получилась функция обратимого шифрования, достаточно быстрая и надежная.
Пример работы функции:
<?php 
	echo dsCrypt('habrahabr.ru');
	//Выведет: 60634K7T0*0!
	echo dsCrypt('60634K7T0*0!',1);
	//Выведет: habrahabr.ru
?>

Если вы все еще пользуетесь XOR шифрованием :), то можете заглянуть под кат и посмотреть как еще можно защищать данные…
Читать дальше →

MonIT + M\MonIT = простой и бесплатный мониторинг нескольких серверов

Reading time4 min
Views24K
Возникла задача мониторинга нескольких серверов, находящихся в разных ДЦ, имеющих разные ОС и ПО.

ТЗ получилось примерно такое:

  1. Мониторинг системы (cpu, mem, load average, bandwidth).
  2. Мониторинг состояния сервисов (запущен или нет).
  3. Мониторинг функционирования сервисом (отвечает на запросы корректно или нет).
  4. Контроль потребляемых сервисами ресурсов и общего их состояния.
  5. Централизованая «админка» для всей этой радости.
  6. Уведомление по email, самостоятельное исправление проблемы (например рестарт упавшей службы).


Читать дальше →

phpThread: нити в PHP? Запросто

Reading time2 min
Views2.2K
Если вы хотите научиться писать многопоточные приложения на PHP или здорово упростить себе жизнь — статья для вас.

Раньше для этих целей я пользовался либо запуском несколько копий скрипта, либо же использовал pcntl на более низком уровне, чем хотелось бы. Это, а от части и Java-идеология работы с потоками, побудили меня к написанию пакета phpThread.
Читать дальше →

Подключаем транспорты к GTalk. Через тернии…

Reading time2 min
Views1.6K
То там, то здесь в течение последнего полугода возникают сообщения о том, что люди не могут подключить к их jabber-аккаунту на Google Talk новые транспорты. Как показал анализ трафика и несколько обсуждений в списке рассылки jabber-operators, дело в том, что GTalk «не любит» JIDы в формате srv.example.org, а предпочитает исключительно node@example.org и поэтому честные транспорты не могут запросить у пользователя авторизацию.

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

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity