Генеральный спонсор: Хостинг «Джино»

Система Orphus
Russian version
Добавить на Del.icio.us
English version
Добавить на Digg.com

 dkLab | Лаборатория Web-программистов 

Карта сайта :: Форум «Лаборатории» :: Проект «Денвер»
Проект «Orphus» :: Куроводство: наблы :: Конструктор :: Копилка


Новости сайта (см. также RSS)

27.02.2010. Сервер Realplexor теперь работает с EV, а не libevent. Подробнее...
28.12.2009. Инструмент Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript. Подробнее...
20.12.2009. Статья Автоматический resize высоты IFRAME, загруженного с другого домена. Подробнее...
18.12.2009. Библиотека HTTP_UrlSigner: безопасная передача параметров в URL и его цифровое подписывание. Подробнее...
08.12.2009. Статья OAuth: не так страшен черт... Подробнее...
16.10.2009. Статья Подводные камни при использовании кэширования в nginx. Подробнее...
12.09.2009. Сервер dklab_multiplexor: постоянное JavaScript-соединение с сервером в условиях сотен тысяч онлайн-клиентов. Подробнее...
10.09.2009. Утилита dklab_vzenter: vzctl enter по части имени хоста (для OpenVZ). Подробнее...
12.07.2009. Статья Причины стремительного успеха PHP. Подробнее...
07.07.2009. Новая версия HTTP_StaticMerger 2.0: безопасность и nginx. Подробнее...
28.06.2009. Утилита plainmerge для скоростного слияния веток в Subversion. Подробнее...
03.04.2009. Библиотека DB_Pgsql_Type для преобразования сложных типов данных PostgreSQL в PHP-массивы и обратно. Подробнее...
28.02.2009. Библиотека Dklab_ShortXSLT: упрощенный синтаксис для XSLT с операторами вставки, if, else и т.д. Подробнее...
13.02.2009. Важное дополнение к статье PostgreSQL и задача параллельной многопроцессной обработки очереди. Подробнее...
04.02.2009. Библиотека Dklab_SoapClient: параллельные запросы, реконнект, обработка тайм-аутов. Подробнее...
Остальные новости

Конструктор: полезные библиотеки

Полезные модули на PHP, Perl и JavaScript.
Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript.   2009-12-04
HTTP_UrlSigner: безопасная передача параметров в URL и его цифровое подписывание.   2009-12-18
dklab_multiplexor: постоянное JavaScript-соединение с сервером в условиях сотен тысяч онлайн-клиентов.   2009-09-12
dklab_vzenter: vzctl enter по части имени хоста (для OpenVZ).   2009-09-10
Plainmerge: скоростное и упрощенное слияние веток в Subversion.   2009-06-28
DB_Pgsql_Type: прозрачное преобразование сложных типов PostgreSQL в PHP и обратно.   2009-03-03
Dklab_ShortXSLT: упрощенный синтаксис для XSLT с операторами вставки, if, else и т.д..   2009-02-28
Dklab_DOMDocument: создайте свой собственный диалект XSLT.   2009-02-28
Dklab_SoapClient: параллельные запросы, реконнект, обработка тайм-аутов.   2008-02-04
PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception).   2009-01-21
HTTP_StaticMerger: автоматическая "склейка" CSS- и JS-файлов для быстрой загрузки.   2008-11-23
PGUnit: unit-test фреймворк для хранимых процедур PostgreSQL 8.3.   2008-11-03
PostgreSQL 8.3, эмуляция ALTER ENUM: добавление/удаление элемента возможно.   2008-08-13
dkLab PostgreSQL patch: работа с очень большими int-массивами.   2008-05-20
Dklab_Cache: правильное кэширование — тэги в memcached, namespaces, статистика.   2008-04-19
dkLab Apache: виртуальные хосты с привилегиями различных пользователей.   2007-02-31
HTML_MetaForm: извлечение информации о структуре HTML-формы и ее обработка.   2006-09-24
Sshbak: Simple unix-based remote backup system over SSH.   2006-06-01
DbSimple: лаконичная работа с различными СУБД.   2006-03-03
Debug_HackerConsole: «хакерская» консоль, упрощающая отладку сайтов.   4 сентября 2005 г.
HTML_FormPersister: новый взгляд на построение форм.   26 апреля 2005 г.
PHP_CodeFilter: перехват фатальных ошибок PHP? Это возможно.   23 апреля 2005 г.
JsHttpRequest 5: кроссбраузерный AJAX + закачка файлов.   2006-07-29

Куроводство: Наблы

Авторские статьи на тему web-программирования.
58.  Автоматический resize высоты IFRAME, загруженного с другого домена. 20 декабря 2009 г.
57.  OAuth: описание протокола простым и понятным языком. 8 декабря 2009 г.
56.  Подводные камни при использовании кэширования в nginx. 15 октября 2009 г.
55.  Причины стремительного успеха PHP. 8 июня 2009 г.
54.  Про удачу и везение. 1 февраля 2009 г.
53.  PostgreSQL и задача параллельной многопроцессной обработки очереди. 14 декабря 2008 г.
52.  Адресную строку браузера - на помойку? (Спустя 6 лет.). 3 ноября 2008 г.
51.  Набла о срочных задачах. 6 июля 2008 г.
50.  Заметки про фронтенды, бэкенды, балансировщики и тому подобное. 26 мая 2008 г.
49.  Оптимизируем загрузку PHP-кода в 22 раза, или почему FastCGI не ускоряет PHP. 9 мая 2008 г.
48.  Правильный способ кэширования данных. 20 апреля 2008 г.
47.  Кэширование: тэги в memcached и не только. 19 апреля 2008 г.
46.  Теория: модерируемые справочники в БД. 25 января 2008 г.
45.  Про перехват и обработку фатальных ошибок (Fatal Error) в PHP. 5 августа 2007 г.
44.  А почему здесь ничего не происходит?. 11 января 2007 г.
43.  HTML_FormPersister: новый взгляд на построение форм. 26 апреля 2005 г.
42.  PHP_CodeFilter: перехват фатальных ошибок PHP? Это возможно. 23 апреля 2005 г.
41.  Subsys_JsHttpRequest: динамическая подкачка данных без перезагрузки страницы. 3 февраля 2005 г.
40.  Наследование в JavaScript. 2 декабря 2004 г.
39.  Большие хитрости JavaScript. 5 марта 2004 г.
38.  Маленькие хитрости JavaScript. 5 марта 2004 г.
37.  Публикация модулей на CPAN. 1 января 2004 г.
36.  Установка модулей с CPAN. 1 января 2004 г.
35.  Чиним Windows своими руками. 23 октября 2003 г.
34.  Что делать, когда падает Apache (или другой сервер) в Unix. 17 сентября 2003 г.
33.  CGI::WebOut: новая жизнь старых модулей. 24 августа 2003 г.
32.  Новый Orphus: достоинства и недостатки. 1 июня 2003 г.
31.  Обработка ошибок в placeholder-функциях. 2 мая 2003 г.
30.  PHP, MySQL и безопасность. 8 апреля 2003 г.
29.  Клавиатура. 2 февраля 2003 г.
28.  Дзэн — Си — Win32. 27 января 2003 г.
27.  Win32 — Ассемблер — Дзэн. 26 января 2003 г.
26.  Критики критикуют — 2. не готова
25.  "Юзабилити" и интерактивность. 11 августа 2002 г.
24.  Грамотность on-line. 10 августа 2002 г.
23.  Дворник с метлой. 8 июля 2002 г.
22.  Разыменование ссылок в Perl. 5 апреля 2002 г.
21.  Ссылки и многомерные структуры в Perl. 5 апреля 2002 г.
20.  Хэши, массивы и списки в Perl. 1 апреля 2002 г.
19.  Хэши и массивы в PHP. 1 апреля 2002 г.
18.  Критики критикуют. 28 марта 2002 г.
17.  Использование перенаправлений. 28 февраля 2002 г.
16.  Код и шаблон страницы. 27 февраля 2002 г.
15.  Имена переменных и комментарии. 15 февраля 2002 г.
14.  Настройка сервера named. 30 декабря 2001 г.
13.  Ларри Уолл: Откровение Первое. Добро, Зло и Смута. 29 декабря 2001 г.
12.  Зоопарк. 26 декабря 2001 г.
11.  Как писать крупные программы. 11 ноября 2001 г.
10.  Рекурсивный main(). 6 ноября 2001 г.
9.  Внедрения HTML в код на Perl (второй шаг). 6 ноября 2001 г.
8.  Внедрения HTML в код на Perl (первый шаг). 6 ноября 2001 г.
7.  Держите себя в руках. 28 октября 2001 г.
6.  Модуль CGI::WebIn. 5 сентября 2001 г.
5.  Установка модулей Perl. 25 августа 2001 г.
4.  Модуль CGI::WebOut.
3.  Борьба с 500-й Ошибкой закончилась. 21 августа 2001 г.
2.  Если слон на кита влезет, кто кого сборет. 3 августа 2001 г.
1.  Список часто задаваемых вопросов. 1 августа 2001 г.

Копилка: краткие заметки (RSS)

Мысли и полезные ссылки с возможностью обсуждения.
Будильник SleepTracker: http://bit.ly/2DqYXT - в статье все правда, я проверил. Кажется, что просыпаешься сам, а через 20 секунд звенит будильник. Но это обман мозга: на самом деле будит именно будильник, а якобы 20-секундный период бодрствования - иллюзия.
 — 4 комментария, 2009-09-05
Продолжение эпопеи про ноутбук Lenovo и 4Г памяти. T500 просыпается с черным экраном, но бегающей мышкой, и вам приходится логиниться вслепую наугад отпечатком пальца? У меня был этот кошмар 3 месяца. Я отключил PAE (и пришлось еще DEP тоже - с ним PAE не выключается), ноутбук выздоровел. Драйверы видеокарты Lenovo несовместимы с режимом PAE. http://msdn.microsoft.com/en-us/library/aa906211.aspx.
 — 3 комментария, 2010-01-13
В Perl 5.8 на списке в 1 млн элементов конструкция foreach (@list) { push @new, {a => $_} } примерно в 10 раз (!) быстрее, чем очевидная @new = map { {a => $_} } @list. В Perl же 5.10 - наоборот, вторая конструкция чуть быстрее. Пооптимизировали, видать...
 — 4 комментария, 2010-01-13
phpUnit, PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8560 bytes)? Вас спасут флаги --no-globals-backup и --no-static-backup. Они отключают бэкап+рестор "глобальных" переменных при запуске теста. Опасно, но помогает при наличии в программе случайных циклических ссылок - как в PEAR, например.
 — 2 комментария, 2010-01-12
А если в phpUnit тест валится где-то посередине (например, Fatal error), и непонятно, что это за тест, поможет флажок --testdox. Он позволяет увидеть, какой именно тест валится.
 — 1 комментарий, 2010-01-12
Удивительное - рядом. Если сделать var_dump($GLOBALS), то ключ _REQUEST в нем отсутствует (!). А если где-то в коде, пусть даже ниже, упомянуть $_REQUEST, - ключ магическим образом появляется. Наслаждайтесь, запустив такой скрипт: "<?var_dump($GLOBALS); $_REQUEST?>" - запустите сначала так, а потом - с закомментированным вторым оператором. Убедиться, что это именно компилятор создает ключ, можно, заключив второй оператор в eval: eval('$_REQUEST;') - ключ опять пропадет.
 — 0 комментариев, 2009-12-18
Бывает, PostgreSQL сильно ошибается с выбором плана выполнения запроса. Возникает мысль: "вот я бы здесь сделал лучше". Но после прочтения http://www.postgresql.org/docs/8.4/static/row-estimation-examples.html - эта мысль отпадает. Там подробно описано, какие методы применяются для оценки и как именно. Очень рекомендую.
 — 0 комментариев, 2009-12-11
Nginx, regex-домены, "root /your/app/$1/htdocs". Не работает fastcgi_php? Замените одну "root ..." на две директивы: "set $docroot /your/app/$1/htdocs; root $docroot;". Видимо, nginx неправильно воспринимает директиву "fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;", если определение в директиве "root" содержит regexp-маркеры.
 — 2 комментария, 2009-11-05
Почему я использую nginx+fastcgi_php, а не nginx+apache+mod_php? Соображение производительности здесь вовсе не главное. Смотрите. Nginx по любому нужен для "медленных" клиентов, его нельзя исключить. А в связке "apache+nginx" конфигов поддерживать в 2 раза больше, чем в связке "просто nginx". Так что apache сбривается бритвой Оккама, не более того.
 — 2 комментария, 2009-10-22
HAProxy 1.3.20 - http://haproxy.1wt.eu - замечательно работает как TCP-балансер. Но в HTTP-режиме - это один сплошной глюк. Например, режет HTTP-ответ до 8032 байт (или до другой цифры, зависящей от погоды на улице, а иногда и настроек fastcgi_buffer_size из nginx, который стоит за балансером). Предупрежден - вооружен.
 — 1 комментарий, 2009-09-16

JsHttpRequest: AJAX-библиотека с поддержкой русских кодировок и закачки файлов, совместимая с Prototype JS

Библиотека JsHttpRequest — это мощная утилита для создания AJAX-приложений на PHP. Она "прозрачно" поддерживает русскоязычные кодировки (в том числе windows-1251), имеет простой интерфейс, а также умеет закачивать файлы на сервер без перезагрузки страницы и работать с формами целиком.

JsHttpRequest также позволяет "включить русский язык" в популярной библиотеке Prototype. Это особенно удобно, если ваша система основывается на windows-1251, а не на UTF-8. JsHttpRequest может быть использована как серверная PHP-часть для Prototype. Все дополнительные возможности, присущие JsHttpRequest (кроссбраузерность, закачка файлов, работа с русскими кодировками и т.д.), остаются в силе.
// JavaScript-код:
JsHttpRequest.query(
  'your_ajax_script.php', {
    name: 'Дмитрий',  
    file: $("my_upload_file")
  },
  function(result, debugMessages) {
    $("result").innerHTML = result.hello; 
    if (debugMessages) alert(debugMessages);
  }
);

// PHP-код:
require_once "lib/JsHttpRequest.php";
new JsHttpRequest("windows-1251");
$GLOBALS['_RESULT']['hello'] 
  = "Привет, {$_REQUEST['name']}!";
echo "Отладочное сообщение";
Скачать библиотеку и прочитать подробную документацию.

Другие популярные инструменты

dkLab Apache - это дистрибутив для тех, кто собирается использовать Apache в Unix (Linux, FreeBSD и т.д.) для обслуживания нескольких независимых сайтов, работающих под разными, полностью разграниченными друг от друга пользователями Unix. Он лишен некоторых недостатков, присущих аналогам, например: не требует установки дополнительных модулей ядра и запретов setuid, корректно и, главное, осмысленно работает при включенном KeepAlive и превышающем единицу MaxRequestsPerChild.

DbSimple: библиотека абстракции от СУБД (MySQL, PostgreSQL, FireBird), имеющая очень лаконичный интерфейс и множество удобных на практике возможностей: различные виды placeholder-ов (в том числе списковые), построение динамически генерируемых запросов без запутывания и снижения читабельности кода, кэширование результатов запроса, выборка данных в виде массива или дерева и т.д.

Что здесь происходит

Данный сайт создан web-программистами для web-программистов. Здесь, будем надеяться, вы найдете достаточно много полезной информации, касающейся процесса создания сайтов, скриптов и т.д.

Что такое «жизнь сайта»? Это — форум, единственное место, где постоянно что-то происходит, что-то бурлит, перекатывается туда-сюда. Остальная часть сайта изменяется сравнительно редко. Если вы — постоянный посетитель, рекомендую сразу же зарегистрироваться в форуме, желательно — под настоящим именем и фамилией (ибо, когда знаешь, с кем говоришь, отношение совершенно другое).

Джентльменский Набор Web-Разработчика

Денвер — это автоматически настраивающийся комплекс программ и серверов, предназначенный для разработки сайтов в Windows с расчетом использования их в Unix. Вместо того, чтобы ставить себе Apache, PHP и т.д. по различным руководствам, рекомендуется воспользоваться этим проектом. Базовый пакет Денвера (размер 5.5 МБ, хотите — верьте, хотите — проверьте) включает:

  • Apache, SSI, mod_rewrite, mod_php.
  • PHP4 с поддержкой GD и MySQL.
  • MySQL с поддержкой транзакций (mysqld-max).
  • phpMyAdmin — система управления MySQL через Web-интерфейс. Полностью заменяет командную строку MySQL.
  • Ядро Perl без стандартных библиотек (они поставляются отдельно).
  • Эмулятор sendmail (отладочная «заглушка», складывающая приходящие письма в /tmp); поддерживается работа совместно с PHP и Perl.
  • Система управления виртуальными хостами, основанная на шаблонах. Чтобы создать новый хост, вам нужно лишь добавить директорию в каталог /home, править конфигурационные файлы не требуется.
  • Система управления запуском и завершением.
  • Инсталлятор (нечто вроде InstallShield).

Дополнительные модули, компоненты и программы доступны в виде пакетов расширений. Читать дальше...

{{PromotionBlock2: empty}}

Orphus: проверка орфографии на сайтах

Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Выделенный текст будет немедленно отослан вебмастеру, а вы даже ничего и не заметите — настолько быстро все произойдет.

Собственно, вот так и работает Orphus. Мило, не правда ли?.. Вы можете запросто поставить ее к себе на сайт, для этого не нужно даже иметь прав на запуск CGI-скриптов. Подробнее....

{{PromotionBlock3: empty}}

Книга «PHP5» (серия «В подлиннике»!)

Внимание: ни сайт, ни автор не занимаются продажами книги. Если вы хотите ее приобрести, пожалуйста, зайдите в книжный магазин либо на Yandex.

PHP5  

PHP5 (серия «В подлиннике»), 1120 стр. Авторы: Д. Котеров, А. Костарев.

Рассмотрен один из самых популярных в Интернете языков — PHP. Книга адресована как профессиональным Web-разработчикам, так и новичкам, владеющим лишь базовыми навыками программирования и не знакомым с PHP. Изложены основы функционирования Web - серверов, синтаксис и стандартные функции языка, техника разделения кода и дизайна сценариев. Приведено описание функций PHP для работы с файлами, СУБД MySQL, регулярными выражениями формата PCRE, графическими примитивами, почтой. Особое внимание уделено новым возможностям PHP 5 работе с XML-документами и полноценному объектно-ориентированному программированию.

Перейти на сайт книги.

Внимание: не путайте эту книгу с книгой Кузнецова М., Симдянова И. «Самоучитель PHP5», также выпущенной в издательстве BHV.

{{PromotionBlock4: empty}}

Книга «Самоучитель PHP4»

Внимание: ни сайт, ни автор не занимаются продажами книги. Если вы хотите ее приобрести, пожалуйста, зайдите в книжный магазин либо на Yandex.

Самоучитель PHP4  

Самоучитель PHP4, 562 стр. Автор: Д. Котеров.

В книге рассматривается технология Web-программирования с использованием последней версии языка PHP. Приведена обширная информация о приемах, призванных в кратчайшие сроки сделать новичка Web-программистом. Рассмотрены основы протоколов HTTP и CGI, синтаксис языка и объектно-ориентированное программирование на PHP, схемы разработки крупных сценариев и основы построения шаблонизаторов, а также многое другое.

  Английская версия

{{PromotionBlock5: empty}}

Контактная информация

Старые и даже устаревшие статьи

Ссылки

  • PHP5.RU: сайт, целиком и полностью посвященный программированию на популярнейшем языке PHP.
  • xpoint.ru: очень хороший форум российских web-разработчиков.
  • phpclub.ru: сайт российских PHP-разработчиков.
  • webclub.ru: Всероссийский Клуб Вебмастеров.
  • forum.dklab.ru: Форум на dklab.ru.

Коллектив Лаборатории [по версии Google]

Команда разработчиков нового XML-шаблонизатора.
http://ccr.im.wustl.edu/faculty/DPKelly/DKphotos/DKlab.jpg

Смотреть другие фотографии.






Дмитрий Котеров, Лаборатория dk. ©1999-2010
GZip
Добавить на Del.icio.us   Добавить на Digg.com   Добавить на reddit.com