Наверняка, многие, работающие с друпалом, знакомы с модулем Views. Как гласит Drupaler.ru, модуль Views — это Настройка и контроль за отображением любого типа контента в любом месте сайта, т.е. он позволяет создавать страницы, блоки, подменять содержимое нод, страниц пользователей и многое другое, формируя контент из любых доступных полей на сайте. Но что делать, когда необходимо вывести информацию, предоставляемую сторонним модулем, и к которой доступа из Views у нас нет?
Дмитрий Беляев @CuamckuyKot
веб-разработчик
Печать книг по программированию в домашних условиях
1 min
28KЧестно говоря, никогда не любил читать техническую литературу с экрана. Художественную — сколько угодно — читал и с компа и с телефона и, как вот уже лет 5-6, с КПК (хотя, бесспорно, всегда отдавал предпочтение книгам бумажным). А вот техническую — хоть ты тресни — только с бумаги воспринимаю.
Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.
Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.
+144
Yii 1.1.0
1 min
1.2KВышла стабильная версия PHP фреймворка Yii 1.1.
Данный релиз является результатом более, чем года упорной работы команды разработчиков и сообщества. В него вошли следующие новые возможности и улучшения:
— Тестирование на основе PHPUnit.
— Построитель форм.
— Возможность создания шкурок для виджетов.
— Улучшен API реляционных запросов ActiveRecord.
— В комплекте теперь поставляется набор расширений Zii, включающий виджеты для jQuery UI и другие полезные компоненты.
Полное руководство по версии 1.1 на русском языке на yiiframework.ru уже находится в актуальном состоянии.
Перевод обновлённого руководства по созданию блога будет завершён немного позже.
Пробуем и обновляемся
Данный релиз является результатом более, чем года упорной работы команды разработчиков и сообщества. В него вошли следующие новые возможности и улучшения:
— Тестирование на основе PHPUnit.
— Построитель форм.
— Возможность создания шкурок для виджетов.
— Улучшен API реляционных запросов ActiveRecord.
— В комплекте теперь поставляется набор расширений Zii, включающий виджеты для jQuery UI и другие полезные компоненты.
Полное руководство по версии 1.1 на русском языке на yiiframework.ru уже находится в актуальном состоянии.
Перевод обновлённого руководства по созданию блога будет завершён немного позже.
Пробуем и обновляемся
+42
Nginx + PHP-FPM против Apache2 Prefork + mod_php
3 min
28KВсе началось с этой темы на форуме, когда многие на полном серьезе стали рассуждать, мол, nginx совсем не быстрее Apache, и даже перевод документации с официального сайта был неубедителен. Как известно, нет ничего более приятного, чем провести тестирование и показать график для привлечения внимания. Вот например график по обще нагрузке на сервер, попробуйте угадать где тут этап тестирования Nginx, а где — Apache.

Ну а перед тем как узнать правильный ответ — немного про сервер и механизм тестирования.
Дабы исключить всякие подозрения на «подкручивание» своих VDS, тест проводился на стороннем сервере, любезно предоставленным мне для теста одним из участников форума вот в такой кнофигурации:
AMD Athlon X2 5600+ 4 GB DDR2 2×400 GB HDD с Linux Debian в минимальной установке. Весь софт устанавливался стандартным образом — через apt-get. И PHP и Apache ставились в минимальном режиме.
Для объекта тестирования я поставил очень легкий блог Moscquito, который работает без MySQL, написав туда пару постов и камменты.

Ну а перед тем как узнать правильный ответ — немного про сервер и механизм тестирования.
Дабы исключить всякие подозрения на «подкручивание» своих VDS, тест проводился на стороннем сервере, любезно предоставленным мне для теста одним из участников форума вот в такой кнофигурации:
AMD Athlon X2 5600+ 4 GB DDR2 2×400 GB HDD с Linux Debian в минимальной установке. Весь софт устанавливался стандартным образом — через apt-get. И PHP и Apache ставились в минимальном режиме.
Для объекта тестирования я поставил очень легкий блог Moscquito, который работает без MySQL, написав туда пару постов и камменты.
+63
7+ превосходных инструментов для оптимизации изображений
5 min
105KTranslation
Перевод статьи 8 Excellent Tools for Optimizing Your Images
К сожалению на момент перевода один из сервисов перестал работать. Но хабровчане предложили еще много хороших решений!
Одним из самых простых способов уменьшить время отклика страниц на вашем сайте является оптимизация изображений.
Есть несколько бесплатных инструментов помогающих уменьшить и оптимизировать изображения. В этой статье вы найдете удобные инструменты для создания картинок для веба настолько маленьких по весу, насколько это возможно.
Обзор инструментов — под катом.
К сожалению на момент перевода один из сервисов перестал работать. Но хабровчане предложили еще много хороших решений!
Одним из самых простых способов уменьшить время отклика страниц на вашем сайте является оптимизация изображений.
Есть несколько бесплатных инструментов помогающих уменьшить и оптимизировать изображения. В этой статье вы найдете удобные инструменты для создания картинок для веба настолько маленьких по весу, насколько это возможно.
Обзор инструментов — под катом.
+70
Делаем фото на документы
2 min
12K
Уверен, что посыпятся комментарии на тему «зачем, если есть фотошоп». Да, в графическом редакторе можно сделать тоже самое, но менее продуктивно. Ведь у фото на документы, кроме ширины и высоты, нужно соблюдать еще ряд параметров, например такие как размер лицевой части головы. И на каждый тип документов, свои параметры.
+139
Introducing xdebug
9 min
47KTranslation
Эта статья первая из серии статей, описывающих xdebug, свободной библиотеки для разработчиков PHP. xdebug – это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP. В данной статье описывается как установить xdebug и рассказывается о его базовых возможностях. В последующих частях мы детальнее взглянем на главные возможности xdebug, а именно трассировку, профайлинг, отладку кода.
+40
XDebug — если при отладке вам надоели echo(), var_dump() и print_r(). Часть 2.
2 min
16KПервая часть
Официальный сайт по проекту — www.xdebug.org
Параметры настройки, в скобках указана версия (например, Xdebug 2) — www.xdebug.org/docs-settings.php
Документация — www.xdebug.org/docs.php
Установка XDebug2 под Windows
1. Скачиваем расширение под нужную вам версию PHP:
— PHP 4.4.1+
— PHP 5.1.2+
— PHP 5.2.1+
Официальный сайт по проекту — www.xdebug.org
Параметры настройки, в скобках указана версия (например, Xdebug 2) — www.xdebug.org/docs-settings.php
Документация — www.xdebug.org/docs.php
Установка XDebug2 под Windows
1. Скачиваем расширение под нужную вам версию PHP:
— PHP 4.4.1+
— PHP 5.1.2+
— PHP 5.2.1+
+4
Установка PHP-FPM на Debian из пакетов
3 min
13KPHP-FPM — патч к PHP, предоставляющие альтернативный интерфейс FastCGI. Обычно используется с nginx в проектах с высокими нагрузками или дефицитом ресурсов. Для удобной и упрощенной инсталляции мы собрали PHP-FPM в пакет для Debian 5 Lenny. Последнюю пару недель тестировали и тюнили, сейчас выложили в публичный доступ. Над пакетами в поте лица трудился viliar, которому дружно направляем за это благодарности и карму. Багрепорты и замечания приветствуются, лучше комментами к посту.
Инструкция по установке
+22
phpUnderControl 0.5.0
3 min
2.3KTranslation
phpUnderControl нацелен упростить интеграцию CruiseControl и PHP сделав ее как можно проще. Он объединяет лучшие инструменты в сочетании с простой установкой. Так же позволяет просматривать отчеты от РНРunit, PHP_CodeSniffer и PHPDocumentor. ©
Если ваш опыт работы с PHP менее года или же если вы при отладке программ используете var_dump() / printr() и считаете что это единственно верный вариант — проходите мимо, все оскорбленные могут смело идти прямо в профиль и вымещать злобу на карме. Если вы действительно хотите узнать что это такое и для чего это нужно, то советую начать с установки phpUnderControl по этой статье желательно не на Windows платформе и параллельного изучения соответствующей статьи. Надеюсь что в ближайшем будущем на PHP будут создаваться более качественные и технологичные разработки благодаря популяризации современных методов разработки ПО.
После довольно продолжительного времени автор phpUnderControl выпустил очередную версию 0.5.0. Кроме незначительных изменений, исправлений и улучшений в этой версии содержится одна новая важная особенность: PHP_CodeBrowser (обзор на англ.).

+2
GUI SVN клиент для Linux
2 min
57KДоброго времени пребывания, уважаемые Хабровцы 8)
Наткнулся я недавно, на бескрайних просторах, на очень полезную и долгожданную штуковину. Что за штуковина — читай сабж.
Выглядит всё это, как всем известный TortoiseSVN для Windows. Только называется RabbitVCS и уже для Linux.
Если не верите, смотрите скриншоты :)

Наткнулся я недавно, на бескрайних просторах, на очень полезную и долгожданную штуковину. Что за штуковина — читай сабж.
Выглядит всё это, как всем известный TortoiseSVN для Windows. Только называется RabbitVCS и уже для Linux.
Если не верите, смотрите скриншоты :)

+57
Ext.Календарь
1 min
2.8K
Протестировано в IE, FF, Chrome.
Товарисчь anotherpit подсказывает, что в Opera все тоже работает
+26
Отвёртка для выражений
5 min
3.3KОбласть применения разбора математических выражений представить не сложно — это и всевозможные парсеры SQL-запросов, и обработчики формул, вводимых пользователем (то же построение графиков или фильтры к БД) — вплоть до создания собственных языков (намеренно не пишу слово «программирования», т.к. зачастую это языки описания данных и иже с ними).
Возможно, я не прав, но я не сумел найти на просторах сети более или менее юзабельный парсер выражений для PHP — и, как наверное уже привыкли те, кто периодически читает мои статьи, я отправился реализовывать это дело своими силами, т.е. изобретать велосипед. :^)
Результат моих потуг вы можете обнаружить здесь. В архиве вы найдёте скрипты, необходимые для функционирования библиотеки, и пример её работы (sample.php). Библиотека собрана как standalone.
Но, я полагаю, интересно было бы разобраться, что там к чему.
Возможно, я не прав, но я не сумел найти на просторах сети более или менее юзабельный парсер выражений для PHP — и, как наверное уже привыкли те, кто периодически читает мои статьи, я отправился реализовывать это дело своими силами, т.е. изобретать велосипед. :^)
Результат моих потуг вы можете обнаружить здесь. В архиве вы найдёте скрипты, необходимые для функционирования библиотеки, и пример её работы (sample.php). Библиотека собрана как standalone.
Но, я полагаю, интересно было бы разобраться, что там к чему.
+4
Виджет выбора OpenID провайдера на Prototype
1 min
1.4KКогда-то я уже писал, как интегрировать OpenID авторизацию в ваш сайт. Речь шла о серверной части.
Сейчас же я говорю о UI части — виджет для выбора провайдера.
В качестве клиентской библиотеки для своего проекта я выбрал prototype и первым делом я полез в гугл поискать готовое решение. Удалось найти такое, но только для JQuery — code.google.com/p/openid-selector
И так мне ничего не оставалось как написать OpenID selector самому. Вот что получилось

Сейчас же я говорю о UI части — виджет для выбора провайдера.
В качестве клиентской библиотеки для своего проекта я выбрал prototype и первым делом я полез в гугл поискать готовое решение. Удалось найти такое, но только для JQuery — code.google.com/p/openid-selector
И так мне ничего не оставалось как написать OpenID selector самому. Вот что получилось

+24
Rediska — удобный PHP клиент для key-value базы Redis
1 min
13K
Так как на хабре уже есть обзор Redis, не вижу смысла продолжать. Перейду к самой «Редиске».
+39
nginx — строим свой letitbit
2 min
5.2KПоявилось желание сделать сервис подобный letitbit.net в отдельно взятой стране на окраине Европы.
Требовалось:
Для реализации выбрали NGINX в связке с PHP через fastcgi.
В NGINX добавили:
PHP взяли самый обычный и запустили через spawn-fcgi.
Поставили сервачок, напихали туда штук 12 терабайтных дисков.
Программист написал PHP код, а Марис Рускулис придумал следующий трюк с rewrite для NGINX, позволяющий избежать обращение к PHP при скачивании файла.
В результате, конфигурация NGINX выглядела примерно так:
Замечательной вещью в данном конфиге является тот факт, что при скачивании файла по сгенерированной защищённой от подмены временной ссылке (проверку осуществляет secure_link) не вызывается PHP с последующим X-Accel-Redirect.
Возможно, данное решение накладывает ограничение на присутствие логики перед непосредственной отдачей файла, но тем не менее, на мой взгляд, является довольно оригинальным трюком, позволяющим немного сэкономить на fastcgi.
Требовалось:
- позволять загружать/отдавать большие файлы;
- не позволять перепубликовывать прямые ссылки на файлы;
- ограничивать количество одновременно скачиваемых файлов.
Для реализации выбрали NGINX в связке с PHP через fastcgi.
В NGINX добавили:
- великолепный Nginx upload module, который позволяет избежать многократное копирование загруженного файла на пути NGINX-PHP. К тому же, при небольшой доработке, возможна загрузка сразу в нужную папку, что позволяет использовать простое переименование вместо копирования в PHP
- нужную заплатку к модулю secure_link, позволяющую делать безопасные ссылки действительными ограниченное время
PHP взяли самый обычный и запустили через spawn-fcgi.
Поставили сервачок, напихали туда штук 12 терабайтных дисков.
Программист написал PHP код, а Марис Рускулис придумал следующий трюк с rewrite для NGINX, позволяющий избежать обращение к PHP при скачивании файла.
В результате, конфигурация NGINX выглядела примерно так:
http {
limit_zone regular $zonekey 10m;
limit_zone premium $zonekey 10m;
server {
root /www/oursiteishere;
location / { try_files $uri @files; }
location ~ \.php$ { try_files $uri @files; fastcgi_stuff_here; }
location @files { rewrite ^(.*)$ /index.php?$1 last; }
location /storage/ { root /storages/; internal; }
# Location for regular users
location ~ /download/.+/(.+)/0/.+/.*/(.+)$ {
set $fname $2;
set $username $1;
set $zonekey "$binary_remote_addr $username";
limit_conn regular 1;
limit_rate '100k';
secure_link_secret megasecret;
secure_link_ttl on;
if ($secure_link = "") { return 403; }
add_header Content-Disposition "attachment; filename*=UTF-8''$fname";
rewrite ^/download/([a-f0-9]+)/([\.~0-9a-zA-Z_]+)/([01])/([0-9]+)/(.+)/.+$ /storage/$4/$5 break;
}
# Location for premium users
# Location for upload using upload module
}
}
Замечательной вещью в данном конфиге является тот факт, что при скачивании файла по сгенерированной защищённой от подмены временной ссылке (проверку осуществляет secure_link) не вызывается PHP с последующим X-Accel-Redirect.
Возможно, данное решение накладывает ограничение на присутствие логики перед непосредственной отдачей файла, но тем не менее, на мой взгляд, является довольно оригинальным трюком, позволяющим немного сэкономить на fastcgi.
+38
«Делаем стартап гостеприимным» или «Как использовать OpenID на своем сайте»
3 min
3.5K
Уверен, вам не раз подалась на глаза аббревиатура OpenID. Вполне возможно у вас сложилось мнение, что это эдакая модная штуковина, о поддержке которой все чаще заявляют различные популярные проекты. По большому счету так и есть, но зачем эта технология на самом деле нужна? Предположим, вы заядлый блоггер, у вас имеется учетная запись на wordpress.com, но случилось вам прочесть сообщение в чужом дневнике и возникло непреодолимое желание оставить автору комментарий. Но вот незадача – чужой дневник оказался на livejournal.com. Неужели только для того, чтобы оставить комментарий вам придется регистрироваться на «вражеском» блог-хостинге?!
+49
jQuery плагин для получения данных формы + ajax аплоадер файлов
30 min
19K
Итак, помимо, собственно моего небольшого плагина, нам понадобится сам jQuery последней версии, а так же небольшой плагин к нему, реализующий преобразование объектов\массивов в json-строку, для того, чтобы полученные данные можно было быстренько передавать на сервер.
updated
updated 2 — добавлена мультизагрузка!
+61
Как мы рисовали логотип Игровой Вселенной Канобу
2 min
20K
Название «Канобу» происходит от популярной детской игры «Камень, ножницы, бумага», известной во многих странах мира. Это как бы говорит нам, что проект посвящен разного рода играм, а также всему что с ними связано.

Работу над логотипом мы решили начать с набросков. Первая группа иллюстрирует цикличность игры, которая придает символу динамику.

+68
51 Веб Приложение для Дизайнеров и Разработчиков
11 min
13KTranslation
Веб дизайн и разработка претерпели значительные изменения в течении последних лет, точно так же изменились используемые технологии и инструменты. Эти изменения придали жизнь таким инструментам, которые сделали нашу жизнь проще, и дали возможность предоставлять нашим клиентам более качественные услуги. Коммуникации и совместная работа на огромных расстояниях уже не проблема и управление проектом стало весьма простой задачей.
Веб дизайнеры и разработчики могут также сделать свою работу с любого компьютера имеющего доступа к Интернету, без использования своих обычных приложений. Дизайн, тестирование, разработка, применение, все можно сделать непосредственно в Интернете.
Данная статья представляет 51 веб приложений для дизайнеров и разработчиков.
Веб дизайнеры и разработчики могут также сделать свою работу с любого компьютера имеющего доступа к Интернету, без использования своих обычных приложений. Дизайн, тестирование, разработка, применение, все можно сделать непосредственно в Интернете.
Данная статья представляет 51 веб приложений для дизайнеров и разработчиков.
+71
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity