Для получения нескольких случайных записей из таблицы я всегда использовал всем известную конструкцию ORDER BY RAND() LIMIT. На днях я столкнулся с проблемой в производительности этого запроса. Таблица содержала более миллиона строк. И мне нужно было срочно найти решение. Под катом альтернативный вариант выбора нескольких случайных строк.
читать далее >>
Я пользуюсь PhpStorm и люблю этот продукт. Но всё время пользовался взломанной версией. На их сайте можно получить лицензию для open source проекта, но для этого нужно иметь страницу проекта. В этой статье я расскажу как получить такую лицензию на 1 год имея лишь активный репозиторий на GitHub и Demo страницу.
читать далее >>
На практике я столкнулся с ситуацией, когда нужно было выбрать данные из двух связанных сущностей при помощи полного соединения. К сожалению, MySQL пока не поддерживает FULL OUTER JOIN. Ниже приведен пример эмуляции этого вида JOIN.
читать далее >>
В этой статье собраны некоторые на мой взгляд интересные и полезные запросы в MySQL. Список будет пополняться в будущем.
читать далее >>
На подходе уже 2-я версия Zend Framework. Некоторые уже спешат переписывать и рефакторить свои сайты, используя пространства имен, менеджеры событий. Под катом хорошая презентация доклада Валерия Рабиевского с "Zend framework day".
читать далее >>
Начиная с версии 5.1 в MySQL появился планировщик событий, позволяющий выполнять различные действия в определенное время. Из этого следует то, что часть функционала можно перенести из Cron на сам MySQL.
читать далее >>
Как известно, Nginx славится тем, что хорошо справляется с отдачей статических файлов (css, js, изображения).
Делается это за счет какого-то хитрого кэширования. Но с обработкой динамического содержания лучше работает Apache.
Имеем: сайт на PHP, Apache. Нужно настроить сервер так, чтобы Nginx отдавал статику, а остальным занимался Apache.
читать далее >>
Все началось с того, что я разрабатывал один проект с использованием Zend Framework и jQuery.
В панели администратора нужно было выводить данные из различных таблиц MySQL.
Хотелось сделать это красиво, удобно, гибко, с AJAX и т.д.
Поиск в Google выдал огромное количество библиотек для отображения табличных данных.
Но, к сожалению, везде была кривая серверная сторона и не было подходящих решений для Zend Framework.
Под катом Cubique — инструмент для отображения данных для Zend Framework с функциями сортировки, поиска, сделанный на jQuery, основанный на AJAX.
читать далее >>
Apache Bench (ab) - простой инстурмент для тестирования нагрузки веб-сервера.
Данная утилита входит в стандартную сборку Apache и даже имеется почти во всех готовых сборках, таких как Denwer, WAMP, XAMPP.
Очень проста в использовании и гибко настраиваемая.
читать далее >>
Возможность Drag & Drop в браузерах была уже давно реализована средствами Javascript.
Сейчас же можно сделать Drag & Drop без сторонних библиотек (jQuery UI), а при помощи нативных возможностей браузера.
Под катом я расскажу как это делается.
читать далее >>
PhpStorm — IDE от хорошо зарекомендовавшей себя компании по производству ПО для разработчиков.
Цель любой IDE — создать комфортные условия для быстрой и качественной разработки.
И в создании этих условий вам может помочь Command Line Tool, позволяющий делать быстро шаблонные действия.
К сожалению, сейчас доступны команды только для Zend Framework и Symfony. В этой статье я помогу вам настроить командную строку на свой лад (Custom Framework).
читать далее >>
CSRF (Сross Site Request Forgery) — вид web-атак, использующий недостатки протокола HTTP.
Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника).
Для осуществления данной атаки, жертва должна быть авторизована на том сервере, на который отправляется запрос, и этот запрос не должен требовать какого-либо подтверждения со стороны пользователя, который не может быть проигнорирован или подделан атакующим скриптом.
читать далее >>
Web-сервис — компонент, предоставляющий Internet-клиентам набор функций API или web-методов. Основная задача web-сервисов — обеспечение межпрограммного взаимодействия.
В отличие от традиционного web-приложения, у web-сервиса нет пользовательского интерфейса (GUI). Вместо этого у него есть программный интерфейс, то есть web-сервис предоставляет функции (web-методы), которые могут быть вызваны удаленно.
Web-сервис не предназначен для обслуживания конечных пользователей. Его задача — предоставление услуг другим приложениям, будь то web-приложения, приложения с графическим пользовательским интерфейсом или консольные приложения.
читать далее >>
Local storage (локальное хранилище) — база данных на стороне клиента, содержащая пары ключ-значение. Надеюсь, что в ближайшем будущем эта технология станет стандартом в веб-разработке.
Особенности Local storage:
Особенности Local storage:
- Большой объем хранилища (ограничивается только настройками браузера и свободным местом на жестком диске)
- Данные хранятся на стороне клиента (высокая производительность)
- Неограниченное время жизни
читать далее >>