Как стать автором
Обновить
50
0
Андрей Матвеев @zlbb

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

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

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Время на прочтение17 мин
Количество просмотров278K
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

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

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

Итак, вы изучили mod_rewrite, составили несколько RewriteRule и успели столкнуться с бесконечными перенаправлениями, со случаем, когда правило почему-то не ловит ваш запрос, а также с непредсказуемой работой группы правил, когда последующее правило неожиданно изменяет запрос, кропотливо подготовленный правилами предыдущими.

Почему так происходит?
Читать дальше →
Всего голосов 208: ↑203 и ↓5+198
Комментарии25

Стратегия оптимизации веб-проекта с использованием MySQL

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

Введение


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

Интересно, что, как правило, даже тяжелые фреймворки (вроде Symfony или RoR) на «медленных» языках, в production-окружении работают достаточно сносно по скорости, а основные «тормоза» вызываются SQL-запросами и неграмотным кешированием (к примеру, инициализация достаточно сложной и большой конфигурации проекта на Symfony занимает около 80 мс, а времена исполнения страницы, при этом, иногда достигают секунды и более).

Если вы смогли определить, что это — ваш случай, и ваш проект на MySQL, то эта статья может вам помочь принять конкретные меры и исправлению ситуации с закреплением результата и предотвращением возникновения откровенных проблем с СУБД впоследствии.
Читать дальше →
Всего голосов 102: ↑90 и ↓12+78
Комментарии81

USSD в Android

Время на прочтение4 мин
Количество просмотров35K
USSD (Unstructured Supplementary Service Data)— стандартный сервис в сетях GSM, позволяющий организовать интерактивное взаимодействие между абонентом сети и сервисным приложением в режиме передачи коротких сообщений.
Как известно, Android не имеет API для чтения USSD сообщений, далее я расскажу как решить эту проблему.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии42

10 практичных WordPress шорткодов

Время на прочтение5 мин
Количество просмотров44K
Шорткоды – пользовательские функции, которые сохраняют время при написании поста в WordPress. Сегодня я хочу представить Вам 10 самых используемых WordPress шорткодов.
Читать дальше →
Всего голосов 96: ↑73 и ↓23+50
Комментарии22

Краткий список WYSIWYG редакторов от Марка Андреева

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

Однажды мне потребовался WYSIWYG редактор, я помнил как он выглядит, его функции, но не помнил названия. Через 45 минут я все же его нашел… Тогда я поставил перед собой задачу помочь многим, в том числе и себе: сделать сводный список всех чуть более известных WYSIWYG редакторов.
Читать дальше →
Всего голосов 201: ↑178 и ↓23+155
Комментарии89

If This Then That (ifttt). Мэшап для связывания веб-сервисов

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


Если вы когда-нибудь пользовались веб-приложением Yahoo! Pipes, то представляете себе методы создания таких мэшапов, в которых взаимодействуют между собой сторонние сервисы. Например, можно автоматически сохранять в Instapaper все статьи, которые вы пометили в Google Reader, или посылать по почте сообщение, если завтра будет дождь.

Yahoo! Pipes — замечательный сервис, и ему посвящено несколько статей на Хабре, но у него есть недостаток: он довольно сложный в настройке. Разработчики сайта ifttt.com (If This Then That) постарались сделать интерфейс как можно проще.
Читать дальше →
Всего голосов 63: ↑51 и ↓12+39
Комментарии30

Методы борьбы с DDoS-атаками

Время на прочтение5 мин
Количество просмотров116K
Хотелось бы поговорить с вами на актуальную нынче тему, а именно — про DDoS и методы борьбы с ним. Рядовые администраторы знают, что это такое, а вот для большинства вебмастеров это аббревиатура остается загадкой до того момента пока они на личном опыте не столкнуться с этой неприятностью. Итак, DDoS — это сокращение от Distributed Denial of Service (распределенный отказ в обслуживании), когда тысячи зараженных компьютеров отправляют на сервер множество запросов, с которыми он, в последствии, не может справиться. Целью DDoS атаки является нарушение нормальной работы сервера, а в дальнейшем — «падение» сайта или сервера целиком.

Как же от этого защититься? К сожалению, универсальных мер защиты от DDoS-атак до сих пор не существует. Тут необходим комплексный подход, который будет включать меры аппаратного, программного и даже организационного характера.
Читать дальше →
Всего голосов 123: ↑94 и ↓29+65
Комментарии66

Встреча с сотрудниками Opera в Москве

Время на прочтение1 мин
Количество просмотров3.7K
Разработка браузера сегодня — процесс сложный, требующий ощутимых затрат времени и сил. Но даже при таком напряжённом режиме работы мы всегда стараемся организовать встречу с пользователями Opera, как только появляется такая возможность. На самом деле такие мероприятия — тоже часть процесса разработки браузеров, причём одна из самых важных: только получая из первых рук отзывы о программном продукте можно быть уверенным, что он будет наиболее полно отвечать запросам и ожиданиям пользователей.

Посему рад сообщить, что очередная встреча с пользователями состоится в Москве 29 сентября. Вы сможете задать вопросы ведущим специалистам компании, рассказать о наиболее важных проблемах и, если повезёт, выведать секреты о том, что ожидается в грядущих версиях браузеров Opera. Впрочем, если быть более точным, поговорить получится в основном о десктопной версии Opera в силу специализации приезжающих в Москву сотрудников компании. А именно:
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии8

Обновления сервиса подачи документов в арбитражные суды «Мой арбитр»

Время на прочтение2 мин
Количество просмотров7K
В феврале был запущен сервис для подачи документов в арбитражные суды в электронном виде «Мой арбитр». Благодаря этому и, конечно, 228-ФЗ, который как раз предоставил такую возможность, управлять судебными спорами можно, не вставая с дивана.

За время работы сервиса 24 906 человек подали 111 372 документов, из которых 97 938 приняты в работу.

Image Hosted by pixs.ru

Сегодня мы представляем обновления сервиса «Мой арбитр».

Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии4

Как сделать собственный видео-плеер на HTML5 Video

Время на прочтение9 мин
Количество просмотров191K
Ранее мы уже рассмотрели общие вопросы использования HTML5 Audio и Video и начали погружаться в детали, начав с задачи определения поддержки браузером нужного кодека. Сегодня мы рассмотрим задачу создания собственного видео-плеера на HTML5 Video.


Напомню, что video-элемент сам по себе уже обеспечивает необходимый набор контролов для управления проигрыванием. Чтобы была видна панель управления воспроизведением, достаточно указать атрибут controls.

<video src="trailer_480p.mp4" width="480" height="270" poster="poster.gif" controls />

Однако, как я отмечал в вводной статье, со стандартными контролами есть проблема, которая заключается как раз в том, что выглядят они нестандартно. Другими словами, в каждом браузере они выглядят по-своему (проверить, как выглядят контролы в разных браузерах, можно на примере Video Format Support на ietestdrive.com — просто откройте его в двух-трех различных браузерах).
Читать дальше →
Всего голосов 99: ↑84 и ↓15+69
Комментарии17

Imperavi: удобный и действительно красивый JS WYSIWYG редактор

Время на прочтение1 мин
Количество просмотров22K
В продолжение темы о красивой и удобной JS визуализации (http://habrahabr.ru/blogs/javascript/124899/) хочу рассказать вам о WYSIWYG редакторе, на который сегодня случайно наткнулся.

Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятся секретаршам и т.д. нашим пользователям.

Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.

И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
  • работает стабильно
  • выглядит очень стильно
  • написан на jQuery

Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.

Скриншот:
image

UPD
Более новая версия редактора: http://imperavi.ru/redactor/.
Всего голосов 148: ↑124 и ↓24+100
Комментарии116

Иконифицированное окно настроек (Preferences)

Время на прочтение4 мин
Количество просмотров6.2K
Все видели настройки в Android аппаратах — меню с иконками. Это стандартный PreferencesActivity, только вот стандартными функциями Андроида такого эффекта достичь невозможно.
Что бы получить такой внешний вид, используем код, позаимствованный из системного приложения Settings.apk, благо open-source это позволяет сделать.



И так, нам понадобится:
1. Класс IconPreferenceScreen.java;
2. Файл attrs.xml в папке values;
3. Лэйаут preference_icon.xml;
4. Свой класс PreferencesActivity.java;
5. Файл с настройками приложения preferences.xml

Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии16

Лого тостер за 5 минут

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


Увидел я вот такой тостер. И загорелся сделать что то подобное своими руками. Для того чтобы каждое утро радовать своих близких разными картинками на тостах. Оказалось, что это довольно таки просто.
Нам понадобится: алюминиевая банка, и простые инструменты.
Читать дальше →
Всего голосов 83: ↑54 и ↓29+25
Комментарии78

elFinder 2.0 beta. Don't panic!

Время на прочтение7 мин
Количество просмотров18K
«Для многих цивилизаций Восточного Завитка Галактики, не столь церемонных, elFinder уже с успехом заменил прочие web файловые менеджеры и стал общепринятым, поскольку, хотя в нем и встречаются редкие баги, но зато у него есть два больших преимущества.
Во-первых, он дешевле;
а во-вторых, у него есть большая красная кнопка, на которой большими веселыми
буквами написан дружеский совет: Don't panic!»


Сегодня у меня по настоящему счастливый день!
Несколько месяцев крайне напряженной, но невероятно приятной работы позади.
И я с удовольствием представляю — файловый менеджер для web elFinder 2.0 beta!

Хочу выразить огромную благодарность всему сообществу за помощь, патчи и переводы.
Коллегам по студии — спасибо, что взяли на себя всю текучку, чтобы освободить меня для этого проекта.
И хочу представить нового разработчика elFinder — 667bdrm. Он же автор модуля для drupal.
И еще, нам всем очень приятно, что сейчас нет практически ни одного фреймворка, в который бы не был интегрирован elFinder. Кстати, одними из первых это сделали РБК Софт.

Читать дальше →
Всего голосов 112: ↑101 и ↓11+90
Комментарии73

Чтение XML файла с помощью App Inventor

Время на прочтение3 мин
Количество просмотров12K
Всем привет. Я хочу посвятить этот топик Google App Inventor (далее просто inventor), с которым, я думаю, вы знакомы по предыдущим топикам других людей. Его упрекают в малом функционале. Я тоже так считал, и когда он только запустился, я смог сделать только пару безделушек. Но, зайдя намедни в inventor, я был приятно удивлен, ведь в июньском обновлении добавилось множество интересных блоков, таких как:
Web, TinyWebDB, TinyDB, Notifier. В этом топике мы посмотрим, как можно прочитать XML файл, на примере получения кармы пользователя (использовать этот пример мне вздумалось после того, как один из пользователей написал топик про Python и SL4A). Интерфейс подробно рассматривать не будем, в нем легко разобраться и так.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии7

Исследуем производительность JOIN в MySQL

Время на прочтение4 мин
Количество просмотров37K
Я думаю, ни для кого не секрет, что JOIN считается достаточно дорогой операцией, и многих начинающих программистов (которые юзают MySQL) любят запугивать, что JOIN — это плохо, и лучше всего обойтись без них, если есть возможность.

Давайте исследуем этот вопрос более подробно и посмотрим, действительно ли JOIN — это плохо, и когда вообще стоит задумываться об этом.
Читать дальше →
Всего голосов 103: ↑81 и ↓22+59
Комментарии90

БезАгентов.com — Возможно ли сдать/снять квартиру без посредников?

Время на прочтение3 мин
Количество просмотров2.5K
Увидев в очередной раз заголовок с набившим оскомину словосочетанием «без посредников» в голове может возникнуть мысль — как, опять? Сколько можно плодить подобных сервисов? Не стоит спешить с выводами.

Перед написанием статьи я прочитал все статьи данной тематики на хабре, и у большинства проектов есть одно общее свойство — они все пытаются отфильтровывать агентские объявления от объявлений, добавленных собственниками. Вводят черные списки риелторов, хранят наполняемую базу агентских телефонов, используют алгоритмы фильтрации. Насколько эти методы эффективны? Проверив около сотни “отфильтрованных” объявлений, мне показалось, что эффективность, мягко скажем, не на высоте.

В этой статье я хочу поделиться своим подходом к решению задачи устранения посредников из цепочки арендатор-арендодатель.
Подробности
Всего голосов 85: ↑61 и ↓24+37
Комментарии236

Отладка становится проще: Opera Mobile Emulator

Время на прочтение1 мин
Количество просмотров14K
Opera Mobile Emulator

Сегодня не иметь мобильной версии проекта или хотя бы не тестировать его на мобильных устройствах — верный способ потерять пользователей. Если я не смогу найти адрес или телефон вашей кафешки со своей малосильной мобилки — значит я к вам просто не приеду.

И верстальщики берут в руки девайсы и начинают тестировать…
Читать дальше →
Всего голосов 85: ↑79 и ↓6+73
Комментарии56

Спрайтовая анимация на CSS 3

Время на прочтение6 мин
Количество просмотров16K
Спрайтовая анимация — одна из тех вещей, которые при всей своей примитивности успешно работают и применяются в компьютерной графике и играх уже больше четверти века. Даже в трехмерных играх есть спрайты — например, билборды взрывов. Во многих браузерных и флеш-играх применяют именно спрайтовую анимацию, так как она очень проста и не требует высокой производительности — просто переключай кадры и все! А с появлением анимации в CSS 3 стало возможным использовать спрайты на своих страницах без яваскриптов.
Подробнее об этом - под катом
Всего голосов 51: ↑50 и ↓1+49
Комментарии24

Информация

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