Search
Write a publication
Pull to refresh
10
0
Павел @Unixspv

Frontend Developer

Send message

Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables

Reading time7 min
Views67K
Здравствуй, Хабр!
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).

Способ реализация

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

Область применения

Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.

SEO под DDoS-ом

Ваш сайт будет правильно индексироваться во время атаки, что позволит сохранить позиции в выдаче поисковых систем. Особенно актуально для сайтов с большими SEO бюджетами.

Стоимость и эффективность

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

Принцип подстановки Барбары Лисков

Reading time6 min
Views153K
Привет, хабрачеловеки!

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

«Пусть q(x) является свойством верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.» © Wikipedia

Но они выносят мой мозг меня совершенно не радуют.

Если хочется услышать объяснение этой хрени умной фразы — прошу под кат.
Читать дальше →

QUnit. Тестирование javascript кода

Reading time5 min
Views64K
Наткнулся вчера на этот инструмент и не смог пройти мимо, провел ночь за написанием тестов, а теперь хочу поделиться находкой. QUnit — это библиотека от разработчиков jQuery, позволяющая писать unit-тесты для кода на javascript. Удобна в использовании, ничего лишнего, осваивается за 20 минут, выгода от применения — колоссальная.

Самым нетерпеливым сразу ссылки:
Официальная документация на сайте jquery: docs.jquery.com/QUnit
Реальные примеры тестов (для модулей jquery): view.jquery.com/trunk/jquery/test/unit
Руководство для начинающих (англ): www.swift-lizard.com/2009/11/24/test-driven-development-with-jquery-qunit
Система распределенного тестирования (гениально и просто): testswarm.com

Под катом информация о преимуществах юнит-тестирования применительно к js и разбор возможностей библиотеки на примерах.
Читать дальше →

Введение в Continuous Integration

Reading time5 min
Views178K
Недавно я попал на новый проект, с задачей создать небольшое приложение с нуля. Разговариваю с тестером:
— А как тебе новые версии поставлять?
— Можешь как все остальные на проекте, через SVN.
— То-есть ты сама билдить будешь?
— Да нет… Бинарники оттуда беру.


Оказывается, очень много программистов, даже имеющих в подписях слова вроде Senior или Superior никогда в жизни не стыкались с понятием CI, или слабо себе представляют что это такое. Не найдя отдельных публикаций на Хабре на эту тему, решил восполнить пробел, а заодно и по возможности заработать желанный инвайт.
Читать дальше →

Межсайтовая авторизация 2

Reading time2 min
Views28K
По итогам поста, сделанного в июле 2009 и продолжительным испытаниям, мы пришли к простой и оптимальной для нас схеме межсайтовой авторизации.
Спешу поделиться с общественностью

Страничка для счастливых обладателей IE6

Reading time1 min
Views6.1K
Наконец-то и я решился… Все новые проекты отныне будут иметь спец-страницу для Internet Explorer 6.

Изучив аналогичные решения в Интернете, решил создать свою страничку. Русский текст наскреб понемногу с разных проектов и отредактировал на свой вкус. Дизайн осознанно и намерено использовал майкрософтовский, чтобы хоть как-то повысить планку доверия для тех несчастных, что до сих пор сидят на IE6. Надеюсь, меня за это не осудят, тем более сделано это исключительно для многострадальных клиентов Майкрософта.
Читать дальше →

Отключайте autocomplete

Reading time3 min
Views80K
В 1999-м году в браузере IE 5 Микрософт впервые реализовал автозаполнение текстовых полей форм, что позволило вам не вводить текст, который вы уже вводили ранее в поле с данным именем (в том числе на другом сайте). Тогда же появилось нестандартное расширение тега <input>: атрибут autocomplete, установление которого в off позволяло отключить эту функциональность для конкретного поля. Сейчас все популярные браузеры (подсказали, что кроме Оперы) поддерживают автозаполнение и этот атрибут. Он также введён в стандарт HTML 5. Тем не менее, разработчики веб-сайтов зачастую им пренебрегают.
Читать дальше →

Побит рекорд самого короткого кода по определению IE

Reading time1 min
Views3.3K
Без малого год назад, я уже писал (http://habrahabr.ru/blogs/javascript/50544/) о самом коротком способе определение браузера Internet Explorer, но вот некто Aleko нашел еще более короткий вариант:

-[1,]

Всего 5 байт. Пример использования:
if(-[1,]){
alert("Not IE!");
}

Highcharts: Красивые, динамические чарты за 5 минут!

Reading time2 min
Views67K
image
Highcharts — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов.

Чарты работают со всеми популярными браузерами, включая Safari на iPhone.
Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
Читать дальше →

RTM Context Autocomplete Menu

Reading time5 min
Views2K
Однажды я зашел на rememberthemilk.com и понял, что хочу такое же контекстное autocomplete меню в свой проект. В результате получился небольшой jquery плагин, который хочу презентовать в этом посте. Работает в ie6+, opera, safari, firefox, chrome (тестировал в последних версиях). В кратце расскажу в чем суть «контекстного» меню в RTM-стиле.

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

image

Лицензия проекта — MIT / beerware.
Скачать библиотеку с примерами можно тут: js-context-autocomplete.googlecode.com/files/js-autocomplete-v5.tar
Последнюю ревизию забираем тут: svn checkout js-context-autocomplete.googlecode.com/svn/trunk js-context-autocomplete-read-only
Кому интересно поучаствовать в проекте — пишите в личку.
Временное online-demo (upd)

Под катом интересные моменты реализации, описание функциональности, примеры, список известных багов и фич для реализации.
Читать дальше →

7+ превосходных инструментов для оптимизации изображений

Reading time5 min
Views105K
Перевод статьи 8 Excellent Tools for Optimizing Your Images
К сожалению на момент перевода один из сервисов перестал работать. Но хабровчане предложили еще много хороших решений!

Одним из самых простых способов уменьшить время отклика страниц на вашем сайте является оптимизация изображений.

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

Профилирование PHP-кода

Reading time3 min
Views36K
Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
Читать дальше →

Отладка Javascript

Reading time5 min
Views146K
Debug Logo

Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».

Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.

(Примечание: наверное эта статья больше для новичков. Так что не судите строго)

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

jQuery.keyboard v0.1.0

Reading time2 min
Views5.6K

У меня есть на примете как минимум два проекта, в которых понадобится активное управление с помощью клавиатуры. Поэтому, я сел и написал удобный и красивый плагин для jQuery, который выкладываю во всеобщий доступ под свободной лицензией LGPL.
Читать дальше →

Поиск по сайту на основе Yandex.XML

Reading time3 min
Views13K
Почему-то вебмастера ленятся сделать нормальный поиск по своему сайту. Особенно это касается высокопосещаемых сайтов, где качественный поиск был бы очень удобен для рядового пользователя.

Чаще всего прибегают к готовому решению от Google, с помощью которого можно еще и подзаработать на контекстной рекламе. Но для рунета я бы посоветовал сделать поиск при помощи сервиса Yandex.XML, потому что такой поиск больше адаптирован под морфологию русского языка. К тому же вы можете получить шанс получить самые жирные биды для контекста, если будете использовать поисковый директ.

В этом посте я хочу подробно показать вам, что подобный поиск организовать совсем не сложно. Это займет всего несколько минут и выльется в десяток строк на PHP.
Читать дальше →

Глубокая трассировка в Internet Explorer

Reading time3 min
Views3.1K
image
После прочтения поста Стива Сойдерса о бесплатном инструменте — dynaTrace Ajax, я был дико заинтригован. Он предлагает полную анализ трассировки в IE6-8, включая JavaScript, прорисовку и сетевой трафик. Я протестировал несколько сайтов, но более интересный результат получил с тяжелым JavaScript'ом в Gmail в IE8.
Читать дальше →

Дружим тв-тюнер Avermedia Avertv 507 с Ubuntu 9.10

Reading time7 min
Views17K
Здравствуйте, Дорогие Хабровичане. Написать эту статью сподверг меня мой любимый дистрибутив Ubuntu и тв-тюнер Avermedia Avertv 507, с настройкой которого при чистой установке Ubuntu 9.10 у меня, и у многих других линуксоидов возникли проблемы. А еще это первый мой топик, за который я получил инвайт. А все дело в том, что в большинстве инструкций по настройке этого тюнера допущено множество ошибок, куча разногласий, не говоря о том, что на момент настройки тюнера статей для новога ядра Ubuntu 9.10 не было, и всвязи с этим настроить тюнер самому было очень трудно.
Так вот, чтобы помочь многим людям, уже растратившим все свои нервы, я ниже приведу алгоритм настройки вышеупомянутого тюнера с разъяснениями и правильными конфигами.
А те, кто, как говорится, в шапочке, могут просто сопировать конфиги.
О да! Это то, что я искал!

38 статей о создании закругленных углов на сайтах

Reading time4 min
Views12K
Моя статья на Временно.нет
38 статей о создании закругленных углов на сайтах
Часто сталкиваешься с необходимостью создания блоков с круглыми краями. Задавшись вопросом как вообще можно решить поставленную задачу, сделал подборку интересных статей и уроков на данную тему.

Здесь представлен обзор 38 статей, разбитых на 4 категории по способам реализации.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer, Fullstack Developer
Lead
Angular
JavaScript
TypeScript
Node.js
Web development
Adaptive layout
Linux