Как стать автором
Обновить
41
0
Рэй Керриган @kerrygun

Использователь

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

Безопасный метод авторизации на PHP

Время на прочтение9 мин
Количество просмотров363K
Примечание: мини-статья написана для новичков

Давайте посмотрим вокруг: форумы, интернет магазины, гостевые книги и т.д. используют регистрацию и последующую авторизацию пользователей. Можно даже сказать, что это почти необходимая функция каждого сайта (только если это не домашняя страничка Васи Пупкина или не визитная карточка, какой-нибудь небольшой компании). Сегодня я хочу поделиться со всеми новичками информацией, о том, как лучше это все реализовать.
Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии229

PHP Performance Series: Caching Techniques

Время на прочтение6 мин
Количество просмотров11K
Кеширование промежуточного кода (Opcode Caching)
Кэширование кода это один из самых легких и эффективных путей увеличения производительности в PHP. Использовании данного вида кэширования позволит избавиться от большого количества неэффективностей, возникающих при процессе запуска выполнения кода. Кэширование кода сохраняет промежуточный код в памяти для того чтобы не компилировать PHP-код каждый раз при запуске файла.
Читать дальше →
Всего голосов 59: ↑50 и ↓9+41
Комментарии66

Борьба с DDOS и DOS на уровне nginx

Время на прочтение1 мин
Количество просмотров8.3K
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl:

sysctl kern.maxfiles=90000
sysctl kern.maxfilesperproc=80000
sysctl net.inet.tcp.blackhole=2
sysctl net.inet.udp.blackhole=1
sysctl kern.polling.burst_max=1000
sysctl kern.polling.each_burst=50
sysctl kern.ipc.somaxconn=32768
sysctl net.inet.tcp.msl=3000
sysctl net.inet.tcp.maxtcptw=40960
sysctl net.inet.tcp.nolocaltimewait=1
sysctl net.inet.ip.portrange.first=1024
sysctl net.inet.ip.portrange.last=65535
sysctl net.inet.ip.portrange.randomized=0

Читать дальше →
Всего голосов 48: ↑45 и ↓3+42
Комментарии42

jQuery для самых маленьких или динамическая загрузка страниц (AJAX)

Время на прочтение1 мин
Количество просмотров3.6K
В один прекрасный день понадобилось мне сделать динамическую загрузку из базы. До этого я ничего подобного не делал и не интересовался этим вопросом. Я начал искать информацию на эту тему. Нашёл, что нужная мне задача делается при помощи AJAX.

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

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

Скачать пример можно вот тут
Всего голосов 26: ↑19 и ↓7+12
Комментарии21

От лапши к компонентам или Слушайтесь родителей!

Время на прочтение3 мин
Количество просмотров959
Родители всегда поучают своих детей (на то они и родители). Детям всегда кажутся родительские советы глупыми и не нужными и лишь потом, уже имея своих собственных, мы понимаем, что родители на самом деле были правы.

Вот, например, моя мама всегда говорила мне три вещи:

1. Не переедай на ночь,
2. Не играй в азартные игры,
3. Не пиши своих php фреймворков

И сейчас понимаю, что зря ее не послушался. А тогда… Как же это давно было… Хотя не так уж и давно, всего-то полтора года назад.
Читать дальше →
Всего голосов 66: ↑57 и ↓9+48
Комментарии247

И снова о speed performance вашего сайта

Время на прочтение3 мин
Количество просмотров2K
Уф… наконец-то я решился написать свой первый пост.

В этом посте я хочу рассказать вам о некоторых простых, и в тоже время эффективных способах ускорения загрузки вашего сайта.
Все методы основаны на LAMP + nginx + drupal, но я уверен что всё это верно и для остального тоже.
Разговор пойдёт о первой загрузке сайта, то есть когда у клиента нет ещё кеша в браузере.
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии76

CSS: все о сжатии

Время на прочтение1 мин
Количество просмотров1.7K
После статей «Практический CSS/JS: архивируем все!» и «JavaScript: жать или не жать» стало ясно, что проблема уменьшения CSS-файлов в размере действительно актуальна, и общественности хотелось бы аналогичного исследования уже конкретно для такой оптимизации. Которое, собственно, и приведено ниже.

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

График сжатия CSS-файлов

читать дальше на webo.in →
Всего голосов 41: ↑39 и ↓2+37
Комментарии29

Практический JS: разгоняем все, что движется

Время на прочтение1 мин
Количество просмотров876
Примечание: ниже находится перевод статьи «Speed Up Your Javascript Load Time», в ней автор рассматривает некоторые наиболее эффективные техники и методы действия по уменьшению времени отработки JavaScript'а на клиенте. Большая часть из них общеизвестна, но в статье важно не просто их перечисление, а общий подход для решения задачи оптимизации времени загрузки. Далее мои комментарии курсивом.

JavaScript становится все популярнее и популярнее. Каждый уважающий себя вебсайт старается применить его хоть где-нибудь: будь то подгрузка динамических данных через AJAX, или же некоторые специальные (визуальные) эффекты. К несчастью, за все нужно платить: приходится использовать «тяжелые» JavaScript-библиотеки, которые добавляют к размеру вашей страницы десятки или даже сотни килобайтов кода.

Пользователи так ненавидят ждать: им подавай все и сразу. Давайте тогда рассмотрим несколько методов, которые помогут вам «причесать» ваш сайт. Здесь находятся все рабочие примеры, которые будут приведены далее.

читать дальше на webo.in →
Всего голосов 51: ↑49 и ↓2+47
Комментарии27

Работа с временными зонами в PHP

Время на прочтение8 мин
Количество просмотров87K
Как только проект перестает быть завязан на ограниченное количество потребителей и растет география его применения, встает вопрос о применении временных зон. Когда я работал в одной известной интернет компании внедрение в работу временных зон (как в интерфейс отображения статистики, так и в программу анализа) было достаточно серьезным шагом.

Далее перевод :-)
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии37

Верстка под PDA, часть 2

Время на прочтение3 мин
Количество просмотров2.8K
Уже писал о верстке под PocketPC устройства, на неделе доработал все то, что так смущало и подвел небольшие итоги.

1. Резинка.
Верстка под PDA должна быть резиновой. Без дополнительного ПО эмулировать разное разрешение на PDA устройствах нельзя. Да и никому это особо не нужно =) Чаще всего это 320х240 или 640х480, хотя бывают и нестандартные разрешения. В любом случае сайт должен смотреться во всех разрешениях одинаково, т.к. их разброс не такой и большой, а значит верстка должна быть резиновой.

2. Одна колонка.
Есть исключения, но чаще всего скелет сайта должен быть одноколоночным. Т.е. исходник сайта может быть 2-х, 3-х колоночным, но PDA версия чаще всего превращается в одну колонку, т.к. места и так мало. Чаще всего левая колонка (навигация) превращается в <select>, а правая сползает под основной контент.

3. Авто определение PDA устройства + pda.site.ru домен.
Определить PocketPC не так и сложно. HTTP_USER_AGENT содержит «windows ce» + браузер (mobile ie) добавляет ряд своих заголовков, например HTTP_UA_OS. Соответственно при просмотре site.ru с мобильного устройства должна отображаться оптимизированная верстка. Однако помимо этого необходим и безусловный способ получения PDA верстки, самое простое — поддомен «pda». Это просто удобно + важно для всяких поисковых ботов, да и заранее сообщает, что есть и pda версия сайта…
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии52

Переключение раскладки в KDE

Время на прочтение2 мин
Количество просмотров63K
Небольшое, совсем маленькое руководство для тех, кто ещё мучается или совсем маленько мучается с переключением раскладки в KDE с русской на латиницу и наоборот. Цель: сделать «как в винде». А именно, кроме переключения раскладки, добиться сохранения её состояния в каждом окне.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии66

Про резиновую верстку

Время на прочтение1 мин
Количество просмотров29K
Навеяно этим.

Для тех, кто, возможно, не знает как сделать так, чтоб всё было хорошо.
Сайт должен тянуться только до определённой величины, и сужаться тоже только до некоторого значения. Я обычно беру 1500 и 980 пикселей соответственно.

Как сделать? min-width и min-height.

#site {
  margin: 0 auto; /*это чтоб центрировать контент при превышении max-width*/
  min-width: 980px;
  max-width: 1500px;
}


Но ведь IE их не поодерживает. А expression слишком нагружает браузер… Спокойно, други! Я выведу вас к свету из тьмы!
Пишем далее.



А в ie.js помещаем

window.attachEvent('onload', mkwidth);
window.attachEvent('onresize', mkwidth);

var minwidth = document.getElementById("site").currentStyle['min-width'].replace('px', '');
var maxwidth = document.getElementById("site").currentStyle['max-width'].replace('px', '');
function mkwidth(){
    document.getElementById("site").style.width = document.documentElement.clientWidth < minwidth ? minwidth+"px" : (document.documentElement.clientWidth > maxwidth ? maxwidth+"px" : "100%");
};


В чём особенная вкусность приведённого метода? А в том, что минимальное и максимальное значение нужно задавать только в одном месте, ну и вообще.

Пользуйтесь, короче, на здоровье!
Всего голосов 130: ↑123 и ↓7+116
Комментарии139

Конструируем форму для комментариев

Время на прочтение3 мин
Количество просмотров4.3K
Хотелось бы изложить свое мнение по поводу темы затронутой в топике «Идеальное комментирование» (автор dezmaster). У меня появились свои идеи, как сделать более удобной эту форму регистрации:

Я, разумеется, не претендую на идеал, но сотни заполненных подобных форм позволяют мне высказать несколько мыслей.
Читать дальше →
Всего голосов 71: ↑57 и ↓14+43
Комментарии154

Опыт верстки под Pocket PC на примере

Время на прочтение4 мин
Количество просмотров933
Не так давно я запустил небольшой проект, призванный помочь «мобильным» людям объеденяться, общаться на форуме, меняться мыслями на хабраподобных блогах итп. Однако, как правильно было замечено в комментариях, проект якобы «мобильный», а с мобильных устройств он смотрится хреновенько, не смотря на валидную xhtml верстку итп. «Черт подери», — подумал я, включил свой FS loox n560 и начал потихоньку переверстывать темплейты для pda версии.
Сначала я думал обойтись подключением «handheld.css» и написанием КПК-ориентированных стилей, как я это делаю обычно для «печатных» версий. Но достаточно быстро понял, что не все проблемы можно решить с помощью CSS. Тем более принцип построения тех же «печатных» страниц сводится обычно к: «Это скрываем, это скрываем, это переносим сюда, это туда, а это тоже скрываем». Все же мы имеем дело с мобильными устройствами и грузить лишний траффик, чтобы в итоге не отображать его это глупо… В итоге пришел к тому, что следует не только CSS стили переписать, но и шаблоны переверстать. Начал с более маленького и простого проекта, чтобы попрактиковаться…
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии30

Tag Systems

Время на прочтение2 мин
Количество просмотров1.3K
Ну и что, скажите, сложного в том, чтобы вешать в своей системе на все единицы контента N тегов, и после делать по этим тегам выборку с системой релевантности и важности связей? Да ничего в этом сложного нет, ибо это типовая задачка по проектированию БД из 10го класса! Что? Вы всё ещё кипятите? Ну тогда я расставлю быстренько все галочки :)

Итак, задача: Иметь возможность маркировать любой контент в системе «ключевыми словами», по которым позже делать выборку для получения списка данных, маркированых точно такими же ключсловами.
Подробности...
Всего голосов 34: ↑22 и ↓12+10
Комментарии27

Немного практики: «горячие клавиши» средствами jQuery

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

Предисловие



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

Ни для кого не секрет, что JS-фреймворки делают задачу «повесить хоткей на конкретную кнопку» если и не тривиальной, то достаточно простой. И даже задача максимально упростить и автоматизировать привязку «горячих клавиш» к функциональным элементам решается достаточно просто.

Правда? И как же?
Всего голосов 29: ↑26 и ↓3+23
Комментарии12

Практический JS: оптимизируем CSS expressions

Время на прочтение1 мин
Количество просмотров1.1K
Примечание: ниже находится перевод статьи «CSS Expression Optimization», в которой автор немного освещает использование и проблематику динамических свойств в CSS (aka CSS expressions). Также автор предлагает способ их оптимизации (исполнение один-единственный раз вместо постоянного выполнения). Далее приведены несколько тезисов с ClientSide'2007 по заявленной тематике. Мои комментарии даны курсивом.

CSS expressions были впервые представлены в Internet Explorer 5.0, который позволял назначать JavaScript-выражение в качестве CSS-свойства. Например, следующий код позволит разместить элемент в зависимости от того, какого размера окно браузера.

#myDiv {
   position:   absolute;
   width:      100px;
   height:     100px;
   left:       expression(document.body.offsetWidth  - 110 + "px");
   top:        expression(document.body.offsetHeight - 110 + "px");
   background: red;
}


Не самый лучший способ решения поставленной задачи, но в качестве примера его достаточно.

читать дальше на webo.in →
Всего голосов 40: ↑30 и ↓10+20
Комментарии26

Jevix 0.9.5

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


Опубликована новая версия Jevix — 0.9.5.

Основное отличие новой версии в том, что с этих пор Jevix можно использовать как средство для всестороннего контроля и преобразования текстовых данных больших интернет-проектов с «User-Generated» материалом.

Теперь Jevix умеет не только применять правила типографики, унифицировать HTML/XML разметку, но и контролировать перечень допустимых тегов с возможностью определения списка допустимых атрибутов для каждого тега отдельно. Также предусмотрена возможность предотвращения вероятных XSS-атак, скрытых в HTML-коде.

Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии56
12 ...
7

Информация

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