http://pro100pro.com Consulting of PHP, MySQL, E-Commerce and related technologies Wed, 11 Oct 2006 17:55:26 +0000 http://wordpress.org/?v=2.0.4 en http://pro100pro.com/interviews/great-programmers-interviews/ http://pro100pro.com/interviews/great-programmers-interviews/#comments Wed, 11 Oct 2006 12:52:06 +0000 Yarik Interviews http://pro100pro.com/interviews/great-programmers-interviews/ Один неизвестный польский программист решил опросить по e-mail самых известных компьютерщиков, таких как Линус Торвальдс, Бьярн Страуструп (создатель C++), Джеймс Гослинг (создатель Java). И самое удивительное, что большинство из них ответили. Вопросы были такие: как вы изучали программирование, самое необходимое умение для программирования, нужны ли знания в математике и физике для программирования и т.д. Интервью на английском: Stiff asks, great programmers answer [http://pro100pro.com/stiff-asks-great-programmers-answer/] Интервью на английском оригинал: Stiff asks, great programmers answer ]]> http://pro100pro.com/interviews/great-programmers-interviews/feed/ http://pro100pro.com/news/mysql-certification-specialist/ http://pro100pro.com/news/mysql-certification-specialist/#comments Fri, 06 Oct 2006 03:31:59 +0000 Yarik News http://pro100pro.com/news/mysql-certification-specialist/ В статье рассказыватеся как за 5 шагов быть готовым к экзамену на MySQL Certification специалиста. Краткое содержание статьи: Прочтите книгу Попробуйте порешать реальные проблемы Ответте на вопросы из книги Попрактикуйтесь с ответами на форуме Сыграйте в шахматы Оригинальная статья Take the MySQL Certification in five steps ]]> http://pro100pro.com/news/mysql-certification-specialist/feed/ http://pro100pro.com/books/zend-php5-certification-study-guide/ http://pro100pro.com/books/zend-php5-certification-study-guide/#comments Fri, 06 Oct 2006 02:15:08 +0000 Yarik Books http://pro100pro.com/books/zend-php5-certification-study-guide/ Руководство по сдаче экзамена PHP 5! php|architect’s Zend PHP 5 Certification Study Guide , создавалась усилиями издателей php|architect, предоставляя наиболее понятную и соверешенную подготовку инструментария для веб разработчика, которые желают сдать экзамен. Эта книга описывает каждую область представленную на экзамене, включая: PHP Basics Functions Arrays Strings and Patterns (including regular expressions) Web Programming Object-oriented Programming Object-oriented Design Database Programming XML and Web Services Security Streams and Network Programming Differences Between PHP 4 and 5 Книга написана PHP профессионалами и Zend Certified PHP 5 инженерами Davey Shafik и Ben Ramsey, и рецензирована core PHP разработчиком Derick Rethans, это идеальная книга для будущего кандидата в Zend Certified PHP Engineer. ]]> http://pro100pro.com/books/zend-php5-certification-study-guide/feed/ http://pro100pro.com/news/google-code-search-vulnerabilities/ http://pro100pro.com/news/google-code-search-vulnerabilities/#comments Fri, 06 Oct 2006 01:01:50 +0000 Yarik News http://pro100pro.com/news/google-code-search-vulnerabilities/ На днях Google представил новый сервис Google Code Search - позволяющий делать поиск по исходникам. Поддерживаются файловые форматы .tar.gz, tar.bz2, zip, а также поиск внутри репозиториев CVS и SVN. Среди прочего, вы можете явно указать интересующий вас язык программирования и многое другое. Google Code Search предоставляет возможности поиска по регулярным выражениям, что позволяет легко искать потенциальные дыры в ПО. Вот несколько примеров PHP и MySQL потенциальных уязвимостей: XSS основан на нефильтрованном выводе глобальных переменных: lang:php echo.*\$_(GET|POST) XSS основан на выводе $_SERVER['PHP_SELF'] : lang:php echo.*\$_SERVER\[’PHP_SELF’] SQL иньекция основана на использовании глобальных переменных прямо в mysql_query() : lang:php mysql_query\(.*\$_(GET|POST).*\) SQL иньекция основана на использовании глобальных переменных прямо в WHERE выражении: lang:php “WHERE username=’$_” Уязвимость в доверии к $_SERVER['HTTP_REFERER'] : lang:php \$_SERVER\[’HTTP_REFERER’] Конфиг Wordpress http://google.com/codesearch?q=+file:wp-config.php+username XSS (Cross Site Scripting): lang:php (echo|print).*\$_(GET|POST|COOKIE|REQUEST) SQL иньекция: lang:php query\(.*\$_(GET|POST|COOKIE|REQUEST).*\) Одна из наиболее опасных уязвимостей: lang:php (include|require)\s*(\(|\s).*\$_(GET|POST|COOKIE|REQUEST) Найдено всего 4 случая использования eval: lang:php \s+eval\s*\(\s*\$_(GET|POST|COOKIE|REQUEST) И еще несколько интересных: lang:php header\s*\(”Location:.*\$_(GET|POST|COOKIE|REQUEST).*\) lang:php header\s*\(.*\$_(GET|POST|COOKIE|REQUEST).*\) lang:php (system|popen|shell_exec|exec)\s*\(\$_(GET|POST|COOKIE|REQUEST).*\) В общем можно составить набор регулярных выражения для поиска потенциальных уязвимостей в основных приложениях. Если вы знаете еще хорошие примеры запросов, пишите их сюда. ]]> http://pro100pro.com/news/google-code-search-vulnerabilities/feed/ http://pro100pro.com/news/yahoo-browser-based-authetication/ http://pro100pro.com/news/yahoo-browser-based-authetication/#comments Sun, 01 Oct 2006 15:01:35 +0000 Yarik News http://pro100pro.com/news/yahoo-browser-based-authetication/ Yahoo анонсировал открытие системы регисрации , которая позволяет внешним сайтам уетентифицировать пользователей Yahoo. Цитата с сайта: “Вы создаете большие веб приложения. У нас есть миллионы пользователей, которые хранят свои данные в Yahoo!. Browser-Based Аутентификация (BBAuth), дает возможность вашему приложению использовать эти данные (с их правами). BBAuth также предлагает Single Sign-On (SSO) , теперь пользователь Yahoo! пройдя единожды регистрацию - сможет использовать ваш сервис без дополнительной регистрации.” ]]> http://pro100pro.com/news/yahoo-browser-based-authetication/feed/ http://pro100pro.com/news/razrabotka-bez-deadline/ http://pro100pro.com/news/razrabotka-bez-deadline/#comments Fri, 29 Sep 2006 12:07:10 +0000 Yarik News http://pro100pro.com/news/razrabotka-bez-deadline/ Steve Yegge, разработчик из Google, написал статью “Хорошая методология - разработка без Deadline”. Организация работы в Google является самой лучшей в мире! Из статьи: Разработчики могуть менять команды и/или проекты в любое время когда они захотят, никаких впоросов не задается; только скажи слово и в следующий день ты будешь перемещен в новый оффис в новую команду. Встречи разработчиков проводяться очень часто, в среднем 3 раза в неделю. Google не говорит своим разработчикам, чем они должны заниматься, они сами решают - и это серьезно; Статья Good Agile — Development Without Deadlines ]]> http://pro100pro.com/news/razrabotka-bez-deadline/feed/ http://pro100pro.com/books/building-your-own-ajax-web-applications/ http://pro100pro.com/books/building-your-own-ajax-web-applications/#comments Fri, 29 Sep 2006 11:29:50 +0000 Yarik Books http://pro100pro.com/books/building-your-own-ajax-web-applications/ BUILDING YOUR OWN AJAX WEB APPLICATIONS Автор Matthew Eernisse. В главе 1 Matthew сделал вводный экскурс в Ajax. Глава 2 дает хорошее описание объекту XMLHttpRequest. И дается несколько простых примеров по использованию объекта. В главе 3 описывается назначение буквы “A” в слове Ajax. Большинство людей игнорируют букву “A” и используют SJAX. Примеры в главе 3 построены на основе примеров из главы 2. Вместо, того чтоб отправлять простые запросы на сервер и получать ответ обратно, глава 3 описывает как развернуть это в один простой цикл. Глава 4 описывает использование HTTP POST запросов. Для иллюстрации возможностей, Matthew создает страницу для ввода логина, и используя AJAX совершает связь с сервером. В этой главе он описывает все, начиная с методов создания AJAX приложений и заканчивая CSS, необходимого для красивой подачи результатов работы. Далее книга все боле и более углубляется в тонкости AJAX. В главе 5 Matthew создает блог на AJAX, показывая возможность использования AJAX без XMLHttpRequest. В главе 6 демонстрируется пример toolbar с возможностью hide и show. В главе 7 описываютется работа с web-сервисами, и описывается смертельная “Back Button” для AJAX. И в финальной главе 8, Matthew рассказывает про создание drag & drop методов. Примером этой главы является простой шахматный клиент. Подсумируя итоги, я считаю это хорошая книга для изучения возможностей AJAX. Которая подойдет как web-программистам, так и программистам пишущих desctop приложения, так как в этой книге рассказывается как создать удобный пользовательский интерфейс и дается много полезных идей. ]]> http://pro100pro.com/books/building-your-own-ajax-web-applications/feed/ http://pro100pro.com/articles/decorating-with-external-data/ http://pro100pro.com/articles/decorating-with-external-data/#comments Thu, 28 Sep 2006 11:47:01 +0000 Yarik Articles http://pro100pro.com/articles/decorating-with-external-data/ Эта статья расчитана на тех, кто переходит или хочет перейти с объектно-ориентированного программирования, включая некоторые полезные паттерны в PHP4 на более усовершенствованную объектную модель PHP5. Частичной целью написания этой статьи было получить опытперехода, а также автор продемонстрировал использование паттерна дикоратор применимо к внешнему источнику данных. Читать статью DECORATING WITH EXTERNAL DATA на Zend Developer Zone. ]]> http://pro100pro.com/articles/decorating-with-external-data/feed/ http://pro100pro.com/articles/the-joy-of-regular-expressions-part3/ http://pro100pro.com/articles/the-joy-of-regular-expressions-part3/#comments Thu, 28 Sep 2006 11:29:08 +0000 Yarik Articles http://pro100pro.com/articles/the-joy-of-regular-expressions-part3/ Предыдущая часть . В этой части рассматривается в основном синтаксис регулярных выражений. В статье присутствуют ссылки на более полное описание моментов синтаксиса регулярных выражений. Читать статью The Joy of Regular Expressions . ]]> http://pro100pro.com/articles/the-joy-of-regular-expressions-part3/feed/ http://pro100pro.com/books/patterns-of-enterprise-application-architecture/ http://pro100pro.com/books/patterns-of-enterprise-application-architecture/#comments Thu, 28 Sep 2006 11:15:20 +0000 Yarik Books http://pro100pro.com/books/patterns-of-enterprise-application-architecture/ Patterns of Enterprise Application Architecture Автор: Мартин Фаулер Заказать в Ozon.ru От издательства Создание компьютерных систем - дело далеко не простое. По мере того как возрастает их сложность, процессы конструирования соответствующего программного обеспечения становятся все более трудоемкими, причем затраты труда растут экспоненциально. Как и в любой профессии, прогресс в программировании достигается исключительно путем обучения, причем не только на ошибках, но и на удачах - как своих, так и чужих. Книга дает ответы на трудные вопросы, с которыми приходится сталкиваться всем разработчикам корпоративных систем. Автор, известный специалист в области объектно-ориентированного программирования, заметил, что с развитием технологий базовые принципы проектирования и решения общих проблем остаются неизменными, и выделил более 40 наиболее употребительныхподходов, оформив их в виде типовых решений. Результат перед вами - незаменимое руководство по архитектуре программных систем для любой корпоративной платформы. Это своеобразное учебное пособие поможет вам не только усвоить информацию, но и передать полученные знания окружающим значительно быстрее и эффективнее, чем это удавалось автору. Книга предназначена для программистов, проектировщиков и архитекторов, которые занимаются созданием корпоративных приложений и стремятся повысить качество принимаемых стратегических решений. От себя добавлю: Интересная книга про архитектурные решения в создании корпоративных приложений. ]]> http://pro100pro.com/books/patterns-of-enterprise-application-architecture/feed/ http://pro100pro.com/solutions/fast-title-parsing/ http://pro100pro.com/solutions/fast-title-parsing/#comments Wed, 27 Sep 2006 14:52:03 +0000 Yarik Solutions http://pro100pro.com/solutions/fast-title-parsing/ Вот так можно, не читая целиком HTML документ вытащить title из страницы. PLAIN TEXT PHP: (.*?)< \/ title>/s" , $line , $match ) ; $title = $match [ 1 ] ; $intitle = false ; if ( strpos ( strtolower ( $line ) , "
" ) ) break ; } return trim ( $title ) ; } //usage echo get_web_title ( "http://php.com.ua" ) ; ?> ]]> http://pro100pro.com/solutions/fast-title-parsing/feed/ http://pro100pro.com/articles/mysql-user-defined-function-part1/ http://pro100pro.com/articles/mysql-user-defined-function-part1/#comments Wed, 27 Sep 2006 10:48:32 +0000 Yarik Articles http://pro100pro.com/articles/mysql-create-function/ Существует два способа добавить свою функцию в MySQL: Вы можете добавить функцию, через интрефейс функций определенных пользоватлем (далее ФОП). ФОП компилируються как объектные файлы и потом добавляються и удаляються на сервера динамически, используя CREATE FUNCTION и DROP FUNCTION выражения. Вы можете добавить свою функцию встроив ее в ядро MySQL mysqld. Мы рассмотрим первый метод, как более простой в освоении. Функции определенные пользователем (ФОП) это возможность расширять функционал MySQL, которые работают также как и встроенные в ядро MySQL, например ABS() или CONCAT(). Синтаксис определения функции: CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} SONAME shared_library_name function_name (имя функции) - это имя, которе будет использовано для вызова функции. Оператор RETURNS указывает тип возврщаемого значения функцией. Для MySQL 5.0.3, DECIMAL - это рарешенное значения после RETURNS , но на данный момент функции с DECIMAL возвращают строковое значение и должны быть записаны как STRING . shared_library_name - это имя файла общей библиотеки (например lib.so), которая содержит код включенный в функцию. Этот фаил должен быть включен в каталог библиотек видимый для вашего сборщика. Пример функции : нам необходимо перевести гривну в доллар или любую другую валюту по курсу. create function get_in_bucks(grn INT) RETURNS INT RETURN grn*5.03; Использование: select prod_name, get_in_bucks(price) from products; Для создания функци у вас должны быть привелегии INSERT к базе данных MySQL. Это обязательное условие, так как CREATE FUNCTION добавляет строку к системной таблице mysql.func , записывая имя функции, тип и имя библиотеки. Если у вас нет этой таблицы, то вы должны запустить mysql_upgrade для ее создания. Все добавленные функции будут загружатся при каждом запуске MySQL, до того пока вы не удалите функцию вручную с помощью DROP FUNCTION . Примечание : имя библиотки вы должны писать в кавычках. Например: CREATE FUNCTION myfirst_udf RETURNS INTEGER soname "udf_test.so". Также необходимо установить параметр log_bin_trust_function_creators, это можно сделать так: SET GLOBAL log_bin_trust_function_creators = 1 ; Как создать библиотеку ФОП, вы прочтете в следующей части. При написании статьи использовалось описание Create Function на Mysq.com ]]> http://pro100pro.com/articles/mysql-user-defined-function-part1/feed/ http://pro100pro.com/articles/the-joy-of-regular-expression/ http://pro100pro.com/articles/the-joy-of-regular-expression/#comments Wed, 27 Sep 2006 10:18:56 +0000 Yarik Articles http://pro100pro.com/articles/the-joy-of-regular-expression/ Итак, первая часть The Joy Of Regular Expression тут. Во второй части рассмотрены следующие темы: Где мы были... Охота за jp(e)gs Экранирование мета символов Поиск и замена preg_quote() preg_replace() Границы слов, Символы в словах… и все остальное Под-выражения Избавляемся от XSS Дыр eval() это дъявол! preg_replace_callback() Оригинал: The Joy Of Regular Expression Part 2 ]]> http://pro100pro.com/articles/the-joy-of-regular-expression/feed/ http://pro100pro.com/news/google-happy-birthday/ http://pro100pro.com/news/google-happy-birthday/#comments Wed, 27 Sep 2006 10:04:08 +0000 Yarik News http://pro100pro.com/news/google-happy-birthday/ Google исполнилось 8 лет! Поздравляем! ]]> http://pro100pro.com/news/google-happy-birthday/feed/ http://pro100pro.com/news/perevod-drupal/ http://pro100pro.com/news/perevod-drupal/#comments Tue, 26 Sep 2006 15:56:32 +0000 Yarik News http://pro100pro.com/news/perevod-drupal/ Начат перевод модулей из contrib Друпала( http://drupal.org/project/Modules )... Перевод может начать любой желающий. CMS Drupal становится всё популярнее (ввиду наибольшей настраиваемости и логичности структуры), но не хватает полноценной поддержки русского языка. Переводы делаются энтузиастами, в разных местах и разными способами. На этот раз сделана попытка собрать все переводы в одном месте. Перевод ядра и модулей закончен на 81%, теперь пришло время сосредоточиться на дополнительных модулях, которых уже очень много. Если кто-то уже переводил модули для себя, есть возможность выложить их для правки и улучшения. Обновлённые и полностью законченные переводы будут добавляться в CVS на drupal.org, с тем, чтобы при скачивании любого модуля, перевод для русского языка уже был в нём самом. Оригинал: Перевод Drupal ]]> http://pro100pro.com/news/perevod-drupal/feed/ http://pro100pro.com/articles/mysql-user-defined-functions/ http://pro100pro.com/articles/mysql-user-defined-functions/#comments Tue, 26 Sep 2006 11:05:50 +0000 Yarik Articles http://pro100pro.com/articles/mysql-user-defined-functions/ Вы знали, что можете создавать свои функции в SQL запросах? Вы можете создать набор или библиотеку своих функция для манипулирования данными в вашей базе данных, делая их независимыми от языка и приложения. Вот несколько возможных функций, которые вы можете создавать: Подсчет количества часов отпуска для ваших служащих - к примеру, передавая ID служащего и получая количество доступных часов для отпуска; Адрес клиента - передавая ID или Имя клиента и получая email адрес в стандартном формате; Счет на балансе - передавая номер счета и получая текцщий баланс (конечно у вас должны быть таблицы дебита и кредита). Теперь вам нет необходимости волноваться о вычислениях в приложении - вы можете оставить это базе данных. Приятно . Синтаксис функций определенных пользователем в MySQL очень простой. Вот простой пример: mysql> CREATE FUNCTION isOdd(value INT) RETURNS TINYINT -> RETURN value%2; Query OK, 0 rows affected (0.19 sec) Этот простой пример функции говорит нам TRUE(1) или FALSE(0), если мы передали четное число. Создание mysql> CREATE FUNCTION isOdd(value INT) RETURNS TINYINT Эта строка описывает, что мы хотим создать пользовательскую функцию isOdd. Эта функция получает целое число и возвращает назад tinyint. Вы можете сказать, что это похоже на хранимые процедуры о которых вы слышали раньше, но разницы в синтаксисе достаточно, чтоб сохранить несколько часов своего времени. Возврат -> RETURN value%2; Query OK, 0 rows affected (0.19 sec) Это, то что мы вычисляем для возврата и возвращаем. Использование mysql> select isOdd(13); +-----------+ | isOdd(13) | +-----------+ | 1 | +-----------+ 1 row in set (0.00 sec) mysql> select isOdd(14); +-----------+ | isOdd(14) | +-----------+ | 0 | +-----------+ 1 row in set (0.00 sec) Мы продемонстрировали, как мы можем использовать новую созданную процедуру в стандартном SQL выражении. Это SQL выражение может быть отправлено разработчикам MySQL, как любая другая MySQL функция. Кроме того мы произвели небольшое тестирование нашей функции. Конечно это очень прстой пример, но все логические операторы и циклы работающте в хранимых процедурах, также доступны и в пользовательских функциях. Вы можете создать как простые так и сложные функции, по вашим нуждам. Ну что ж - теперь вы знаете про пользовательские функции. Вперед к созданию своей пользовательской функции. Оригинал: MySQL User Defined Functions . Перевод: Yaroslav Vorozhko. ]]> http://pro100pro.com/articles/mysql-user-defined-functions/feed/ http://pro100pro.com/news/summit-ms-web-dev/ http://pro100pro.com/news/summit-ms-web-dev/#comments Tue, 26 Sep 2006 10:36:06 +0000 Yarik News http://pro100pro.com/news/summit-ms-web-dev/ Саммит пройдет в кампусе Microsoft в Редмонде. Microsoft пригласила много влиятельных веб разработчиков из web девелоперс комьюнити, не входящих в лагерь MS. Саммит будет проходить в основном в обсуждении PHP, также приглашен 1 разработчик Rails, ну и конечно на саммите будет много .NET разработчиков. Новость полность: MS Web Dev Summit ]]> http://pro100pro.com/news/summit-ms-web-dev/feed/ http://pro100pro.com/news/tenhologiya-opensearch/ http://pro100pro.com/news/tenhologiya-opensearch/#comments Tue, 26 Sep 2006 10:24:05 +0000 Yarik News http://pro100pro.com/news/tenhologiya-opensearch/ OpenSearch - это простой формат для общего доступа к поисковым резудьтатам. Любой web-сайт который имеет поисковые возможности, может выдавать свои результаты в OpenSearch™ формате. Другие инструменты могут читать эти результаты. Для примера - это агрегатор, который получает результаты с многих web-сайтов: Сайт OpenSearch . ]]> http://pro100pro.com/news/tenhologiya-opensearch/feed/ http://pro100pro.com/articles/the-joy-of-regular-expressions/ http://pro100pro.com/articles/the-joy-of-regular-expressions/#comments Tue, 26 Sep 2006 10:13:08 +0000 Yarik Articles http://pro100pro.com/articles/%d1%80%d0%b5%d0%b3%d1%83%d0%bb%d1%8f%d1%82%d0%bd%d1%8b%d0%b5-%d0%b2%d1%8b%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%be/ Сегодня появилась новая статья "The Joy of Regular Expressions". Большинство руководст по регулярным выражениям содержат описание синтаксиса, усложняющийся по мере чтения статьи. Примеры которых построены на разборе строки типа ‘aaabbababa’... - это хорошо, когда вам нужно простое регулярное выражения, но не более чем. Итак, еще один туториал по регулярным выражениям, с примерами в основном на PHP: Resources Background Why do I need regular expressions? Grasping the Concept Learning by Doing Positive Matching Expression Delimiters and Pattern Modifiers preg_match() return values preg_match_all() Exact Match A Fairy Tale Tactics Validating a username Quantifying Length Оригинальная статья: Регулятные выражения просто. ]]> http://pro100pro.com/articles/the-joy-of-regular-expressions/feed/ http://pro100pro.com/interviews/theo-schlossnagle/ http://pro100pro.com/interviews/theo-schlossnagle/#comments Tue, 26 Sep 2006 09:56:59 +0000 Yarik Interviews http://pro100pro.com/interviews/theo-schlossnagle/ Последнее интервью на Zend Developer Zone было с Тео (Theo Schlossnagle ). Тео хорошо знают в PHP комьюнити как основатель OmniTI , компания про которую говорят как "один из лучших примеров PHP консалтинга в мире". Если вас интересует история OmniTi's или мысли Тео по масштабируемости приложений - Вы можете прочитать их в его книге Scalable Internet Architectures . ]]> http://pro100pro.com/interviews/theo-schlossnagle/feed/