Pull to refresh
50
0
Андрей Матвеев @zlbb

User

Send message

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

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

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

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

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

Почему так происходит?
Читать дальше →
Total votes 208: ↑203 and ↓5+198
Comments25

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

Reading time5 min
Views8.2K

Введение


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

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

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

USSD в Android

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

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

Reading time5 min
Views44K
Шорткоды – пользовательские функции, которые сохраняют время при написании поста в WordPress. Сегодня я хочу представить Вам 10 самых используемых WordPress шорткодов.
Читать дальше →
Total votes 96: ↑73 and ↓23+50
Comments22

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

Reading time4 min
Views358K

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

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

Reading time1 min
Views7K


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

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

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

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

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

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

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

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

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

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

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

Image Hosted by pixs.ru

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

Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments4

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

Reading time9 min
Views192K
Ранее мы уже рассмотрели общие вопросы использования 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 — просто откройте его в двух-трех различных браузерах).
Читать дальше →
Total votes 99: ↑84 and ↓15+69
Comments17

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

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

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

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

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

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

Скриншот:
image

UPD
Более новая версия редактора: http://imperavi.ru/redactor/.
Total votes 148: ↑124 and ↓24+100
Comments116

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

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



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

Читать дальше →
Total votes 57: ↑53 and ↓4+49
Comments16

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

Reading time1 min
Views8.9K


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

elFinder 2.0 beta. Don't panic!

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


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

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

Читать дальше →
Total votes 112: ↑101 and ↓11+90
Comments73

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

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

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

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

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

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

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

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

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

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

Reading time1 min
Views14K
Opera Mobile Emulator

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

И верстальщики берут в руки девайсы и начинают тестировать…
Читать дальше →
Total votes 85: ↑79 and ↓6+73
Comments56

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

Reading time6 min
Views16K
Спрайтовая анимация — одна из тех вещей, которые при всей своей примитивности успешно работают и применяются в компьютерной графике и играх уже больше четверти века. Даже в трехмерных играх есть спрайты — например, билборды взрывов. Во многих браузерных и флеш-играх применяют именно спрайтовую анимацию, так как она очень проста и не требует высокой производительности — просто переключай кадры и все! А с появлением анимации в CSS 3 стало возможным использовать спрайты на своих страницах без яваскриптов.
Подробнее об этом - под катом
Total votes 51: ↑50 and ↓1+49
Comments24

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity