Archive for March, 2006

ROLL YOUR OWN SEARCH ENGINE WITH ZEND_SEARCH_LUCENE

Thursday, March 30th, 2006

php|architect writes:

Zend has now published their own tutorial on the new Zend_Search_Lucene package.

On several occasions developing database-driven web applications, I’ve been approached by clients who want Google-style search implemented at the last minute of the development cycle. Usually this leads to using some canned script that crawls the website, or a hacked up search function that uses the database but either returns too many results or none at all. On top of that, the queries performed are too many or too slow.

Until now, most developers have been forced to use relational databases to power search, install extra component packages, or seek out other non-php solutions. The problem with using a relational database, such as MySql’s fulltext indexing, is that scalability problems crop up as your search criteria becomes more complicated.

One of the features that sets the Zend Framework apart from the others is the inclusion of a decent search module. Zend_Search_Lucene is a php port of the Apache Lucene project, a full-text search engine framework. Zend_Search_Lucene promises a simple way to add search functionality to an application without requiring additional php extensions or even a database. 

For more information visit: http://devzone.zend.com/node/view/id/91

ROLL YOUR OWN SEARCH ENGINE WITH ZEND_SEARCH_LUCENE

Thursday, March 30th, 2006

php|architect writes:

Zend has now published their own tutorial on the new Zend_Search_Lucene package.

On several occasions developing database-driven web applications, I’ve been approached by clients who want Google-style search implemented at the last minute of the development cycle. Usually this leads to using some canned script that crawls the website, or a hacked up search function that uses the database but either returns too many results or none at all. On top of that, the queries performed are too many or too slow.

Until now, most developers have been forced to use relational databases to power search, install extra component packages, or seek out other non-php solutions. The problem with using a relational database, such as MySql’s fulltext indexing, is that scalability problems crop up as your search criteria becomes more complicated.

One of the features that sets the Zend Framework apart from the others is the inclusion of a decent search module. Zend_Search_Lucene is a php port of the Apache Lucene project, a full-text search engine framework. Zend_Search_Lucene promises a simple way to add search functionality to an application without requiring additional php extensions or even a database. 

For more information visit: http://devzone.zend.com/node/view/id/91

ROLL YOUR OWN SEARCH ENGINE WITH ZEND_SEARCH_LUCENE

Thursday, March 30th, 2006

php|architect writes:

Zend has now published their own tutorial on the new Zend_Search_Lucene package.

On several occasions developing database-driven web applications, I’ve been approached by clients who want Google-style search implemented at the last minute of the development cycle. Usually this leads to using some canned script that crawls the website, or a hacked up search function that uses the database but either returns too many results or none at all. On top of that, the queries performed are too many or too slow.

Until now, most developers have been forced to use relational databases to power search, install extra component packages, or seek out other non-php solutions. The problem with using a relational database, such as MySql’s fulltext indexing, is that scalability problems crop up as your search criteria becomes more complicated.

One of the features that sets the Zend Framework apart from the others is the inclusion of a decent search module. Zend_Search_Lucene is a php port of the Apache Lucene project, a full-text search engine framework. Zend_Search_Lucene promises a simple way to add search functionality to an application without requiring additional php extensions or even a database. 

For more information visit: http://devzone.zend.com/node/view/id/91

ROLL YOUR OWN SEARCH ENGINE WITH ZEND_SEARCH_LUCENE

Thursday, March 30th, 2006

php|architect writes:

Zend has now published their own tutorial on the new Zend_Search_Lucene package.

On several occasions developing database-driven web applications, I’ve been approached by clients who want Google-style search implemented at the last minute of the development cycle. Usually this leads to using some canned script that crawls the website, or a hacked up search function that uses the database but either returns too many results or none at all. On top of that, the queries performed are too many or too slow.

Until now, most developers have been forced to use relational databases to power search, install extra component packages, or seek out other non-php solutions. The problem with using a relational database, such as MySql’s fulltext indexing, is that scalability problems crop up as your search criteria becomes more complicated.

One of the features that sets the Zend Framework apart from the others is the inclusion of a decent search module. Zend_Search_Lucene is a php port of the Apache Lucene project, a full-text search engine framework. Zend_Search_Lucene promises a simple way to add search functionality to an application without requiring additional php extensions or even a database. 

For more information visit: http://devzone.zend.com/node/view/id/91

ROLL YOUR OWN SEARCH ENGINE WITH ZEND_SEARCH_LUCENE

Thursday, March 30th, 2006

php|architect writes:

Zend has now published their own tutorial on the new Zend_Search_Lucene package.

On several occasions developing database-driven web applications, I’ve been approached by clients who want Google-style search implemented at the last minute of the development cycle. Usually this leads to using some canned script that crawls the website, or a hacked up search function that uses the database but either returns too many results or none at all. On top of that, the queries performed are too many or too slow.

Until now, most developers have been forced to use relational databases to power search, install extra component packages, or seek out other non-php solutions. The problem with using a relational database, such as MySql’s fulltext indexing, is that scalability problems crop up as your search criteria becomes more complicated.

One of the features that sets the Zend Framework apart from the others is the inclusion of a decent search module. Zend_Search_Lucene is a php port of the Apache Lucene project, a full-text search engine framework. Zend_Search_Lucene promises a simple way to add search functionality to an application without requiring additional php extensions or even a database. 

For more information visit: http://devzone.zend.com/node/view/id/91

ROLL YOUR OWN SEARCH ENGINE WITH ZEND_SEARCH_LUCENE

Thursday, March 30th, 2006

php|architect writes:

Zend has now published their own tutorial on the new Zend_Search_Lucene package.

On several occasions developing database-driven web applications, I’ve been approached by clients who want Google-style search implemented at the last minute of the development cycle. Usually this leads to using some canned script that crawls the website, or a hacked up search function that uses the database but either returns too many results or none at all. On top of that, the queries performed are too many or too slow.

Until now, most developers have been forced to use relational databases to power search, install extra component packages, or seek out other non-php solutions. The problem with using a relational database, such as MySql’s fulltext indexing, is that scalability problems crop up as your search criteria becomes more complicated.

One of the features that sets the Zend Framework apart from the others is the inclusion of a decent search module. Zend_Search_Lucene is a php port of the Apache Lucene project, a full-text search engine framework. Zend_Search_Lucene promises a simple way to add search functionality to an application without requiring additional php extensions or even a database. 

For more information visit: http://devzone.zend.com/node/view/id/91

ROLL YOUR OWN SEARCH ENGINE WITH ZEND_SEARCH_LUCENE

Thursday, March 30th, 2006

php|architect writes:

Zend has now published their own tutorial on the new Zend_Search_Lucene package.

On several occasions developing database-driven web applications, I’ve been approached by clients who want Google-style search implemented at the last minute of the development cycle. Usually this leads to using some canned script that crawls the website, or a hacked up search function that uses the database but either returns too many results or none at all. On top of that, the queries performed are too many or too slow.

Until now, most developers have been forced to use relational databases to power search, install extra component packages, or seek out other non-php solutions. The problem with using a relational database, such as MySql’s fulltext indexing, is that scalability problems crop up as your search criteria becomes more complicated.

One of the features that sets the Zend Framework apart from the others is the inclusion of a decent search module. Zend_Search_Lucene is a php port of the Apache Lucene project, a full-text search engine framework. Zend_Search_Lucene promises a simple way to add search functionality to an application without requiring additional php extensions or even a database. 

For more information visit: http://devzone.zend.com/node/view/id/91

The PHP.net Google Summer of Code

Thursday, March 30th, 2006

The PHP team is once again proud to participate in the Google Summer of Code. Seven students will “flip bits instead of burgers” this summer: Mentored by Michael Wallner, Hannes Magnusson will work on LiveDocs, which is a “tool to display DocBook XML files in a web browser on the fly, without the need of building all HTML target files first”. This project will be of great value to the PHP Documentation Team. The PHP Interpreter uses reference counting to keep track of which objects are no longer referenced and thus can be destroyed. A major weakness in the current implementation is that it cannot detect reference cycles, that is objects that reference each other in a circular graph structure which is not referenced itself from outside the circle. Mentored by Derick Rethans, David Wang will implement a new reference counting algorithm that will alleviate this problem. Xdebug provides a range of useful functionality for PHP developers, including detailed error information, code coverage and profiling support, and support for remote debugging using the GDB and DBGp protocols. Mentored by Xdebug’s creator, Derick Rethans, Adam Harvey will develop a cross-platform GUI application that implements the DBGp protocol and allows PHP applications to be debugged using Xdebug in a development environment agnostic fashion. Mentored by Lukas Smith, Konsta Vesterinen will work on the object-relational mapper Doctrine. Mutation Testing, or Automated Error Seeding, is an approach where the testing tool makes some change to the tested code, runs the tests, and if the tests pass displays a message saying what it changed. This approach is different than code coverage analysis, because it can find code that is executed by the running of tests but not actually tested. Mentored by Sebastian Bergmann, Mike Lewis will implement Mutation Testing for PHPUnit. Mentored by Helgi Þormar Þorbjörnsson, Igor Feghali will add support for foreign keys to MDB2_Schema, a package that “enables users to maintain RDBMS independant schema files in XML that can be used to create, alter and drop database entities and insert data into a database”. Mentored by David Coallier, Nicolas Bérard-Nault will refactor the internals of Jaws, a Framework and Content Management System for building dynamic web sites, for PHP 6.

Using Oracle’s Built-in Security Features with PHP

Wednesday, March 15th, 2006

How to take advantage of Oracle’s native security features to improve the security of your PHP Web applications

Steve Yegge on Strong and Weakly Typed Languages

Friday, March 10th, 2006

Steve Yegge compares Perl and Java usage in Amazon in Is Weak Typing Strong Enough? An interesting read from someone who is a Java proponent.

I still have some doubts. Do weakly-typed systems have inherently lower scalability? Do they tend to dissolve into vast typeless traps at a certain size, as the static camp would have you believe? Do the runtime type-error rates get out of hand, even with rigorous unit testing and software-engineering discipline?

At this juncture, I think enforced static typing (e.g. what you find in Java, C++, OCaml, Ada, etc.) is detrimental to progress and flexibility. I also think that a complete lack of support for it (e.g. what you find in Ruby and today’s Python) is problematic for being able to selectively tighten up systems as their usage patterns become established. I think Lisp’s solution, where you can add in static types as needed, is close to ideal.

But I’m still a bit timid about trying to write something really significant in Ruby (my weakly-typed language of choice), on account of its performance and its lack of native threading. I’m equally timid about trying Common Lisp, mostly because the package contributions on Cliki seem fairly paltry; the language doesn’t appear to have enough momentum for me to commit to it. I have similar reservations about all the other viable options (e.g. Python, Erlang, Scheme, Lua).

The key is not to argue about abandoning one for the other, but use the strengths of both. For core code where speed and threading is critical, use strongly typed compiled code. At the periphery, for user interface and rapidly changing business rules, use a dynamically typed language.