В данной статье приведены реальные примеры кода, который автор использует, разрабатывая сайты для своих клиентов. Уровень — чуть выше начального. Предлагаю вашему вниманию выдержки из статьи. Возможны неточности в переводе, если поправите — буду признательна. Если кому-то поможет — буду рада.
Ерошенков Сергей @TecHMeaT
Front End Developer
Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое
16 min
40K
Введение
С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:
0. Зачем вообще что-то оптимизировать? 1. Оптимизация ОС (FreeBSD) 1.1 Переход на 7.х 1.2 Переход на 7.2 1.3 Переход на amd64 1.4 Разгрузка сетевой подсистемы 1.5 FreeBSD и большое кол-во файлов 1.6 Softupdates, gjournal и mount options 2. Оптимизация фронтенда (nginx) 2.1 Accept Filters 2.2 Кеширование 2.3 AIO 3. Оптимизация бэкенда 3.1 APC 3.1.1 APC locking 3.1.2 APC hints 3.1.3 APC fragmentation 3.2 PHP 5.3 4. Оптимизация базы данных 4.1 MySQL 4.1.1 Переход на 5.1 4.1.2 Переход на InnoDB 4.1.3 Встроеный кеш MySQL - Query Cache 4.1.4 Индексы 4.2 PostgreSQL 4.2.1 Индексы 4.2.2 pgBouncer и другие. 4.2.3 pgFouine 4.3 Разгрузка базы данных 4.3.1 SphinxQL 4.3.2 Не-RDBMS хранилище 4.4 Кодировки 4.5 Асинхронность Приложение. Мелочи. 1. SSHGuard или альтернатива. 2. xtrabackup 3. Перенос почты на другой хост 4. Интеграция со сторонним ПО 5. Мониторинг 6. Минусы оптимизации
+361
Инструменты быстрого прототипирования
9 min
206KTranslation
Прототипы, как инструменты дизайна, находятся на подъёме, и вот почему. Я твёрдо верю, что прототипирование помогает нам в процессе создания качественных пользовательских интерфейсов. Мы работаем в мире богатых, обладающих динамикой интерфейсов пользователя как в сети, так и на наших устройствах. Интерфейсы, которые мы создаём, интерактивны, откликаются на воздействие пользователя и обладают эмоциями. Прототипы позволяют сформулировать чувства и функции дизайна так, как этого не могут сделать простые экранные формы. Но как выбрать лучший инструмент прототипирования для работы?
+53
HTML parser Jquery style
1 min
7.6KНаткнулся на вот такой полезный класс, любителям chained вызовов и jquery понравится очень!
PHP Simple HTML DOM Parser:
simplehtmldom.sourceforge.net
Примеры:
// Find all anchors, returns a array of element objects
$ret = $html->find('a');
// Find (N)th anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', 0);
// Find all which attribute id=foo
$ret = $html->find('div[id=foo]');
// Find all with the id attribute
$ret = $html->find('div[id]');
// Find all element has attribute id
$ret = $html->find('[id]');
// or
echo $html->getElementById(«div1»)->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id');
simplehtmldom.sourceforge.net/manual.htm — документация и больше примеров
PHP Simple HTML DOM Parser:
simplehtmldom.sourceforge.net
Примеры:
// Find all anchors, returns a array of element objects
$ret = $html->find('a');
// Find (N)th anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', 0);
// Find all which attribute id=foo
$ret = $html->find('div[id=foo]');
// Find all with the id attribute
$ret = $html->find('div[id]');
// Find all element has attribute id
$ret = $html->find('[id]');
// or
echo $html->getElementById(«div1»)->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id');
simplehtmldom.sourceforge.net/manual.htm — документация и больше примеров
+1
Горизонтальные меню, несколько советов
5 min
9.7KTranslation
Горизонтальные меню – пожалуй, самый популярный вид навигации в веб-дизайне. Можно с уверенностью сказать, что на сегодняшний день большинство сайтов используют такой тип меню с целью упрощения просмотра страниц.
Тем не менее, в современном веб-дизайне очень много видов горизонтальных меню. Некоторые предлагают преимущества в удобстве использования для определенных типов сайтов, а другие эстетически лучше смотрятся.
В этой статье мы сосредоточимся на множестве подходов и практик с тем, чтобы убедиться в простоте использования горизонтальных меню, а также отметим некоторые, менее эффективные, решения. Также, мы обратим внимание на парочку тенденций, которые, возможно, помогут разработчикам в работе над горизонтальными меню в будущих проектах.
Тем не менее, в современном веб-дизайне очень много видов горизонтальных меню. Некоторые предлагают преимущества в удобстве использования для определенных типов сайтов, а другие эстетически лучше смотрятся.
В этой статье мы сосредоточимся на множестве подходов и практик с тем, чтобы убедиться в простоте использования горизонтальных меню, а также отметим некоторые, менее эффективные, решения. Также, мы обратим внимание на парочку тенденций, которые, возможно, помогут разработчикам в работе над горизонтальными меню в будущих проектах.
+37
парсим сайты легко и непринуждённо вместе с phpQuery
3 min
112KПривет хабр, думаю у некоторых из вас возникала потребность стянуть что нибудь нужное с какова нибудь сайта. Но писать тонны функций, чтобы вытащить фразу, это очень муторно, долго и не продуктивно.
Представляю вашему вниманию phpQuery. Это php вариант известного javascript фраемворка — jQuery.
Автор постарался на славу и портировал почти всё что нам нужно.
Давайте посмотрим что она умеет.
Представляю вашему вниманию phpQuery. Это php вариант известного javascript фраемворка — jQuery.
Автор постарался на славу и портировал почти всё что нам нужно.
- Selectors
- Attributes
- Traversing
- Manipulation
- Ajax
- Events
- Utilities
- Plugin ports
Давайте посмотрим что она умеет.
+34
Разгоняем Wordpress до скорости света
7 min
141KTranslation

Скорость и отказоустойчивость – одни из тех факторов, что неизменно влияют на популярность вашего ресурса, ведь даже с лучшим в мире контентом медленно работающий сайт будет раздражать читателей и рано или поздно вы их потеряете. В этой статье мы будем оптимизировать самый популярный блоговый движок — Wordpress, работающий на PHP. А заодно рассмотрим несколько общих моментов в оптимизации сайтов.
+49
Список полезных инструментов для CSS разработчика
8 min
71KTranslation
Это не попытка создать список всех существующих инструментов для CSS разработки. Только некоторые, наиболее полезные были отобраны и размещены в соответствующих категориях.

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

Чтобы инструмент был по-настоящему полезен, у него должна быть хорошая документация и дружелюбный интерфейс. К сожалению, некоторые инструменты в списке не полностью попадают под данные критерии. Если кто-то знает лучшие альтернативы с более дружелюбным интерфейсом и большей функциональностью, пишите в комментариях.
+161
Software Configuration Management // Контроль версий
12 min
20KИ снова здравствуйте.
Продолжаю публиковать цикл статей о SCM — управлении конфигурацией ПО.
3 предыдущие заметки можно прочитать в этом же блоге.
Сегодня расскажу о том, с чем работает большинство читателей — о контроле версий.
Далее будут описаны основные техники, реализованные в подавляющем большинстве систем контроля версий. Как они реализуются в приложениях, которые использует читатель, оставим на откуп многочисленным руководствам пользователя, how-to, FAQ и прочим документам, коих можно найти без труда. Главное – понять, по каким принципам и зачем оно работает именно так.
Продолжаю публиковать цикл статей о SCM — управлении конфигурацией ПО.
3 предыдущие заметки можно прочитать в этом же блоге.
Сегодня расскажу о том, с чем работает большинство читателей — о контроле версий.
Disclaimer
Далее будут описаны основные техники, реализованные в подавляющем большинстве систем контроля версий. Как они реализуются в приложениях, которые использует читатель, оставим на откуп многочисленным руководствам пользователя, how-to, FAQ и прочим документам, коих можно найти без труда. Главное – понять, по каким принципам и зачем оно работает именно так.
+26
jQTouch выпускает новую версию мобильной доброты
1 min
2.9KTranslation
Мы писали о jQTouch, основанном на jQuery iUI-подобном наборе средств, созданном Давидом Канедою (David Kaneda).
Сегодня они выпустили новую версию, которая улучшает их расширяемую систему нижеследующим:
![[jQTouch]](http://ajaxian.com/wp-content/uploads/jqtouchbeta.png)
Сегодня они выпустили новую версию, которая улучшает их расширяемую систему нижеследующим:
- Улучшенный переход к 3D-перевороту (improved 3D flip transition)
- События обратного вызова (callback events) для всех переходов между страницами, сильных тычков (swipe events), изменений ориентации
- Прилагаются демонстрации: Часы,
To-do, Главное функциональное демо - Темы: в настоящее время есть темы Apple
и jQTouch (серого цвета)
![[jQTouch]](http://ajaxian.com/wp-content/uploads/jqtouchbeta.png)
+13
Как использовать стили операционной системы в CSS
2 min
3.2KВ CSS 2.1 появилась одна интересная фича, о которой не все знают — это возможность задавать на веб-странице шрифты и цвета, которые используются в текущей системной теме операционной системы.
Это может быть полезно в ситуациях, когда вы хотите приблизить интерфейс вашей страницы к пользовательскому интерфейсу операционной системы. Например, вы хотите написать Adobe AIR приложение, или сделать справочный интерфейс, наподобие нативной chm-справки (вот как здесь: manual.pohape.ru).
Это может быть полезно в ситуациях, когда вы хотите приблизить интерфейс вашей страницы к пользовательскому интерфейсу операционной системы. Например, вы хотите написать Adobe AIR приложение, или сделать справочный интерфейс, наподобие нативной chm-справки (вот как здесь: manual.pohape.ru).
+64
Защищаемся от HTTP DDoS и прочих Хабраэффектов
5 min
11KПростой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
+144
Настройка DNS сервера на FreeBSD
5 min
97K
Довольно часто возникает вопрос о внедрении своего ДНС сервера, который мог бы не только обслуживать запросы внешних пользователей к приобретенным ДНС именам, но и обслуживать запросы пользователей в локальной сети. Такая задача относительно просто решается средствами ОС FreeBSD.
-5
Организация видео трансляции
2 min
173KПредлагаю сообществу поделиться своим опытом в области видео трансляций.
Может получится создать что-то на подобии мини пособия.
Схема простая: кто-то задает вопрос, а знающий ответ – делиться информацией. И всё это попадает в топик.
Попробую начать из того, что узнал по советам и ответам на форумах.
Может получится создать что-то на подобии мини пособия.
Схема простая: кто-то задает вопрос, а знающий ответ – делиться информацией. И всё это попадает в топик.
Попробую начать из того, что узнал по советам и ответам на форумах.
+45
Онлайн чат для сайта через джаббер (GTalk)
2 min
41K
Великолепная веб-программа позволяющая разместить на вашем сайте панель с чатом для ваших клиентов сообщения которого будут прилетать в ваш джаббер клиент.
Другими словами это способ организовать общения с посетителями сайта.
Написать подробную инструкцию меня сподвигнула обзорная заметка на сайте dikiy.com
Под катом так-сказать пошаговая инструкция как запустить онлайн чат на своем сайте
+68
Шрифты, общие для всех (актуальных) версий Windows, и их Mac-эквиваленты
3 min
357KTranslation
Введение
В данном списке перечислены шрифты, общие для всех актуальных на данный момент операционных систем Windows (фактически начиная с Windows 98), и их эквиваленты в Mac OS. Такие шрифты иногда называют «безопасными шрифтами для браузеров» (browser safe fonts). Это небольшой справочник, которым я пользуюсь, когда делаю Web-страницы и думаю, что он будет полезен и Вам.
+47
Анимированные меню на jQuery [часть 2]
3 min
4.4KTranslation
По мотивам этого перевода.
На одном из текущих проектов мы хотели добавить эффект на иконки меню — приподнимание в момент наведения мышкой. Я поэкспериментировал, используя встроенный в jquery эффект animate, на иконках двух типов: с отражениями и с тенями.

Смотрим демо
На одном из текущих проектов мы хотели добавить эффект на иконки меню — приподнимание в момент наведения мышкой. Я поэкспериментировал, используя встроенный в jquery эффект animate, на иконках двух типов: с отражениями и с тенями.

Смотрим демо
+73
Visa virtual от Qiwi
1 min
5.9KТеперь у Киви есть возможность заказать витруальную карту виза. Кто не знает — ее не существует. Вы знаете только коды от карты и можете использовать ее только для онлайн покупок.
Юзается тут: visa.1pb.ru
Лично мне лень было ходить до автомата и я просто залогинился в свой личный кабинет на qiwi.ru и там потыкал.
Пока не было необходимости заюзать ее. Просто держу на заметке, что теперь появился такой сервис.
НЛО прилетело и решительно напомнило о комиссии 11% при оплате такой виртуальной картой
Юзается тут: visa.1pb.ru
Лично мне лень было ходить до автомата и я просто залогинился в свой личный кабинет на qiwi.ru и там потыкал.
Пока не было необходимости заюзать ее. Просто держу на заметке, что теперь появился такой сервис.
НЛО прилетело и решительно напомнило о комиссии 11% при оплате такой виртуальной картой
+24
Анимированные меню на jQuery
6 min
5.5KTranslation

Смотрим демо
+126
Делаем красивый список с GroupingStore/View и ExtJS
11 min
6.2K
+25
Information
- Rating
- Does not participate
- Location
- Сербия
- Date of birth
- Registered
- Activity