Downloads

From Tera-WURFL

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
__FORCETOC__
+
__FORCETOC__ __TOC__
 +
==About==
Tera-WURFL 2.x does not include WALL4PHP. If you would like to use WALL4PHP with version 2.x, you must download the updated package below. This version is compatible with all versions of Tera-WURFL. '''To get WALL4PHP working with Tera-WURFL 2.x''', download the latest WALL4PHP file from this site, then extract the ZIP archive wherever you like. If you extract it the same folder that the Tera-WURFL folder is in, you shouldn't have to update the WALL configuration. Otherwise, edit wall_prepend.php and change the path to the TeraWurfl.php file. You can find the full path to Tera-WURFL in the Tera-WURFL admin site under '''Statistics, Settings, Log File''', then look for '''Installation Directory'''.
Tera-WURFL 2.x does not include WALL4PHP. If you would like to use WALL4PHP with version 2.x, you must download the updated package below. This version is compatible with all versions of Tera-WURFL. '''To get WALL4PHP working with Tera-WURFL 2.x''', download the latest WALL4PHP file from this site, then extract the ZIP archive wherever you like. If you extract it the same folder that the Tera-WURFL folder is in, you shouldn't have to update the WALL configuration. Otherwise, edit wall_prepend.php and change the path to the TeraWurfl.php file. You can find the full path to Tera-WURFL in the Tera-WURFL admin site under '''Statistics, Settings, Log File''', then look for '''Installation Directory'''.
Line 45: Line 46:
* [http://www.teratechnologies.net/stats/phpmyvisites.php?url=http%3A//devel.teratechnologies.net/tera-wurfl/tera_wurfl-beta-v1.2.zip&id=4&pagename=FILE:Tera-WURFL%201.2.0 tera_wurfl-beta-v1.2.zip] (18KB, 26 Oct 2006)
* [http://www.teratechnologies.net/stats/phpmyvisites.php?url=http%3A//devel.teratechnologies.net/tera-wurfl/tera_wurfl-beta-v1.2.zip&id=4&pagename=FILE:Tera-WURFL%201.2.0 tera_wurfl-beta-v1.2.zip] (18KB, 26 Oct 2006)
* [http://www.teratechnologies.net/stats/phpmyvisites.php?url=http%3A//devel.teratechnologies.net/tera-wurfl/tera_wurfl-alpha2-v1-1-4-4.zip&id=4&pagename=FILE:Tera-WURFL%201.1.4 tera_wurfl-alpha2-v1-1-4-4.zip] (16KB, 25 Oct 2006)
* [http://www.teratechnologies.net/stats/phpmyvisites.php?url=http%3A//devel.teratechnologies.net/tera-wurfl/tera_wurfl-alpha2-v1-1-4-4.zip&id=4&pagename=FILE:Tera-WURFL%201.1.4 tera_wurfl-alpha2-v1-1-4-4.zip] (16KB, 25 Oct 2006)
 +
 +
==Version History==
 +
 +
Version History
 +
 +
===Stable 2.0.0===
 +
* Cleaned up unecessary code
 +
* Created MySQL4 Database Connector
 +
* Improved MySQL5 Database Connector (40% faster initial detection)
 +
'''NOTE''': you need the CREATE ROUTINE and EXECUTE permissions as of this release
 +
* Tested many different methods to increase speed of initial detection
 +
* Fixed numerous typos
 +
===Pre-Release 2.0.0 RC5===
 +
Spent a week sifting through 30,000 unique user agents over and over again while making adjustments to the UserAgentMatchers. The device detection is now extremely accurate. Not only will it detect mobile devices accurately, it is also '''very''' good at differentiating between wireless and non wireless devices. Here are the major changes:
 +
* '''User Agent Matchers''' have been very finely tuned, re-ordered, removed and added to improve both performance and accuracy.
 +
* '''PCRE Regular Expression Matching''' has been introduced to allow for greater flexibility and accuracy in UserAgentMatchers and the UserAgentFactory.
 +
* '''Online WURFL Updating''' is back thanks to the '''ZipArchive''' package. This package is included with PHP >= 5.2.0. For previous versions of PHP it is [http://pecl.php.net/package/zip available from PECL]. As a last resort, Tera-WURFL will attempt to use gunzip to extract the WURFL file from the downloaded archive.
 +
* '''User Agent Matcher History''' information is now available via TeraWurfl->capabilities['tera_wurfl']['matcher_history'] - this allows you to see the logic flow that went behind deciding which device this is. Here's an example:
 +
User Agent: Alcatel-OT-280/1.0 model-orange ObigoInternetBrowser/Q03C
 +
Matcher History: AlcatelUserAgentMatcher(exact), AlcatelUserAgentMatcher(conclusive), AlcatelUserAgentMatcher(recovery), CatchAllUserAgentMatcher(recovery)
 +
This shows that the User Agent was assigned the Alcatel Matcher, but after looking for an exact match, a conclusive match and a recovery match, no match could be found - therefore the CatchAll Matcher was used to make a last-resort desicion.
 +
* '''Performance VS. WURFL PHP API'''. I ran 23902 user agents through both Tera-WURFL and the new WURFL PHP API and here are the results (caching enabled on both, same wurfl.xml used):
 +
 +
'''Tera-WURFL'''
 +
Total Time: 12.081017971039 sec
 +
Devices Processed: 23902
 +
Total Queries: 23912
 +
 +
'''WURFL PHP API'''
 +
Total Time: 217.57795381546 sec
 +
Devices Processed: 23902
 +
Total Queries: N/A
 +
 +
As you can see, Tera-WURFL is still the best choice for accuracy and performance. Tera-WURFL may be even faster than these number indicate since the WURFL PHP API was benefiting greatly from my Samsung SSD.
 +
 +
'''Hardware used for testing''': Dell Studio XPS Laptop, Core 2 Duo 2.8GHz, 4GB DDR2, 256GB Samsung SSD, Microsoft Windows 7 Ultimate x64, WampServer 2.0 (Apache 2.2.11, PHP 5.3.0, MySQL 5.1.36)
 +
 +
===Pre-Release 2.0.0 RC4===
 +
Rewrote some of the UserAgentMatchers and deleted others to bring Tera-WURFL on par with the Java WURFL API. With the introduction of desktop browser UserAgentMatchers, we no longer need to use the large web patch; instead, you can just use the 8KB one from wurfl.sourceforge.net (included). Also, I fixed some typos and bugs here and there. '''NOTE: if you are upgrading from version 2.0.0 RC1-RC3 you should delete all your database tables before you update. You can leave the terawurflcache table if you want to retain your cache.''' Although it will still technically work even if you don't delete the tables, you will be orphaning some unecessary tables in your database.
 +
 +
===Pre-Release 2.0.0 RC3===
 +
Complete code-rewrite from the ground up. The 2.x version of Tera-WURFL is loosely based on a pre-release of the Java WURFL Evolution Library, but the API is taken from Tera-WURFL 1.5.2. The following is a list of features found in Tera-WURFL 2.0:
 +
 +
* '''User Agent Matchers''' have been created for each of the major manufacturers. These allow for specific matching methods to be applied to the user agent like string searching, RIS (Reduction in String) and LD (Levenshtein Distance).
 +
* '''Multiple patch files''' are now supported. Tera-WURFL ships with the current '''wurfl.xml''', '''web_browsers_patch.xml''' and '''custom_web_patch.xml'''. Patch files can be added to '''TeraWurflConfig.php''' by separating them with semicolons in the '''TeraWurflConfig::PATCH_FILE''' directive. Patch files are loaded in order from left to right on top of the WURFL file, so if you want to override every other patch file, specify it last.
 +
* The '''custom_web_patch.xml''' file can be edited from the '''Web Administration''' page, and allows you to easily add non-mobile user agents to the patch file. The devices with these user agents will be detected as '''generic_web_browser''' (non-mobile).
 +
* '''Persistent Caching''' means that your cached devices stay cached. When you update the WURFL file or your patches, your device cache is also updated via the new database.
 +
* '''Cache Browser''' allows you to see what devices are hitting your site and what their capabilities were detected as.
 +
* '''Installation Script''' is better than 1.5.2. Once you download Tera-WURFL and extract it, edit '''TeraWurflConfig.php''' then go to /admin/install.php and follow the directions to finish installation.
 +
* '''PHP short_open_tags''' are no longer required to run Tera-WURFL. PHP has this feature disabled by default now.
 +
* '''Conclusive vs. Inconclusive Matching'''. If a device is matched with the UserAgentMatcher's primary matching method it is considered a conclusive match, if it is detected via a recovery matcher or by the CatchAllMatcher it is an inconclusive match. This information is available via the tera_wurfl capability group.
 +
* '''tera_wurfl Capability Group'''. The '''TeraWurfl->Capabilities''' array now contains a group called "tera_wurfl". This group contains the following Tera-WURFL related information:
 +
** num_queries - the number of database queries required to lookup the device.
 +
** actual_root_device - the WURFL ID of the actual device (not subrevision or generic), this can be null.
 +
** match_type - either conclusive or inconclusive.
 +
** matcher - the name of the UserAgentMatcher that detected the device.
 +
** match - whether or not there was an actual match. If there was no match, Tera-WURFL guessed which generic device is most similar to the device.
 +
** lookup_time - the time in seconds that it took to detect the device.
 +
** fall_back_tree - the complete fallback tree that built the capabilities of the device. This is a list of all the WURFL IDs from the detected device down to the base generic device.
 +
Stable 1.5.2
 +
Introduced a smart installation script to help you get Tera-WURFL up and running fast!
 +
getDeviceCapabilitiesFromAgent() function now returns boolean true (match) or false (no match).
 +
Introduced "MATCH_TO_UA_PREFIX" if true, matching will stop if the user agent prefix cannot be matched. The user
 +
    agent prefix is everything from the beginning of the UA to the first '/', like "SonyEricssonK700i". If this is not matched in
 +
    the WURFL, there searching will stop.
 +
Introduced "RETURN_GENERIC" if true, the user agent and accept headers will be used to determine if this device is
 +
    wireless or not and the capabilities array will be populated with appropriate generic data. This IS considered a match.
 +
    Set this to false to stop getting generic matches.
 +
Introduced webservice.php which can be used to query the Tera-WURFL database via an HTTP request. The results are
 +
  returned in XML. This is a BETA feature, but it is very safe. There are details and example in the head of the file.
 +
Re-wrote the README file - now it has very clear instructions on usage and installation.
 +
Now Tera-WURFL includes the web browsers patch by default so you can tell Mobile and Non-Mobile devices apart.
 +
Cleaned up some minor logging issues.
 +
Completely re-wrote the UA matching system, scrapping a lot of unnecessary code that was wasting time!
 +
 +
Stable 1.5.1
 +
Fixed a bug that prevented the updating system from working correctly over the web.
 +
If you have version 1.5.0 you can delete line 266 from the file tera_wurfl_parser.php and it will function the same as 1.5.1.
 +
 +
Stable 1.5.0
 +
Introduced a MySQL caching system - many thanks to Andrea Trasatti for his help!
 +
Fixed a PHP5 typecasting error while loading data in tera_wurfl_parser.php (thanks Mait Vilbiks and everyone else!)
 +
Fixed a PHP5 syntax error in the log_error() function (thanks Michal Albrecht!)
 +
Introduced a lite version that does not include the 800+ device images or the wurfl.xml file. This is only a 32k download
 +
  and one it's installed you can update the wurfl.xml from the admin page.
 +
After much testing and some decent market penetration I have deemed this class "Stable".
 +
 +
Beta 1.4.4
 +
Completely rewrote the error logging system and verified it's operation after a bug was discovered (thanks Neil!)
 +
Added many features to the web administration console - seriously - check out the online demo!
 +
Changed default DATADIR to the included 'data' directory
 +
Completely rewrote the README file to include detailed installation instructions and other useful info
 +
Optimized the clean installation process - now Tera-WURFL has a brain!
 +
Included the current stable release of the wurfl.xml file so you don't need to download it
 +
Included database statistics, log file monitoring and global configuration in web interface
 +
Changed default log level to LOG_WARNING instead of LOG_ERR
 +
Described in great detail the purpose of the different database tables
 +
 +
Beta 1.4.3
 +
Updated the web administration interface and added some helpful links.
 +
Fixed a few relative path issues when including the class from a different directory.
 +
Fixed a couple problems with my naming convention and browser_is_wap detection (thanks MOLABIB!)
 +
 +
Beta 1.4.2
 +
Changed the web update URL for the wurfl.xml file.
 +
Made the file locations absolute instead of relative so you can run the class from a different directory
 +
Fixed an issue with the searching algorithm - thanks Christian Aune Thomassen! (WapTheWeb)
 +
 +
Beta 1.4.1
 +
Fixed issues with incorrectly identified device root resulting in the wrong device image being used.
 +
 +
Beta 1.4.0
 +
Added support for the Device Thumbnails by André van den Heever and Luca Passani.
 +
 +
Beta 1.3.0
 +
Added patching support to allow users to make changes to their WURFL database without editing the main WURFL.
 +
Added the ability to enable/disable the patch without rebuilding the database.
 +
Added a simple web administration utility to manage the WURFL and patch file.
 +
Added the ability to update the WURFL database directly from wurfl.sourceforge.net
 +
 +
Beta 1.2
 +
Initial public release. Basic implementation of the library - very limited documentation included in comments.
 +
 +
Alpha2
 +
Internal release. This is left on the site for historical reasons only. Use of this version is not recommended!
 +
 +
News
 +
 +
October 20, 2009 - Tera-WURFL 2.0.0 RC3
 +
 +
Tera-WURFL 2.0.0 Alpha, RC1 and RC2 were available to select people for testing and I now consider verion 2 as stable as version 1.5.2. I've release RC3 as a release candidate because I added a couple new features - the Cache Browser and the Non-mobile web patch GUI in the Web Administration page.
 +
 +
September 1, 2009 - Headed back to the Middle East
 +
 +
I'm in the US Army National Guard and I have been called up to serve my country again. I am going to be in training for a while so my availability will be limited. I'm putting the final touches on Tera-WURFL 2 and hope to have something up soon.
 +
 +
April 27, 2007 - Tera-WURFL goes stable!
 +
 +
Thanks to everyone who helped me test Beta 1.4.5RC1 - this pre-release was the stepping stone to version Stable 1.5.0.
 +
I was lucky to get some help testing 1.4.5RC1 from a client that gets very high traffic. After upgrading from 1.4.4 to 1.4.5RC1, his server's mysqld process went from 20-40% down to 6%!
 +
 +
"The system gets over 2 million WAP hits per day ... The impact on the server is definitely significant. Before this, mysqld was using between 20% and 40% of the CPU, and now it's down to 6% or less. Load average on the box was averaging 3.84 before, and now it's averaging 2.72."
 +
November 16, 2006 - WURFL and Tera-WURFL Updated!
 +
 +
The WURFL has been updated and now contains over 2000 real devices! Unfortunately somewhere along the line the people over at the WURFL project moved the wurfl.xml file! The file used to be located at http://www.nusho.it/wurfl/dl.php?t=d&f=wurfl.xml, but now that page returns an HTTP Error 302 (Moved Temporarily) and would normally redirect you to the actual file, but file_get_contents() and the fopen wrappers in PHP don't follow header redirections like a browser does - this results in an error when you try to update it. To fix the problem, you can change the WURFL_DL_URL constant in the configuration file to "http://wurfl.sourceforge.net/wurfl.xml".
 +
 +
I have been thinking about a caching system per Christian Aune Thomassen's request - this seems like a good idea but I need to look into some other issues first - like putting a system together so you can easily add devices to your patch file from the web interface.

Revision as of 11:47, 3 February 2010

Contents


About

Tera-WURFL 2.x does not include WALL4PHP. If you would like to use WALL4PHP with version 2.x, you must download the updated package below. This version is compatible with all versions of Tera-WURFL. To get WALL4PHP working with Tera-WURFL 2.x, download the latest WALL4PHP file from this site, then extract the ZIP archive wherever you like. If you extract it the same folder that the Tera-WURFL folder is in, you shouldn't have to update the WALL configuration. Otherwise, edit wall_prepend.php and change the path to the TeraWurfl.php file. You can find the full path to Tera-WURFL in the Tera-WURFL admin site under Statistics, Settings, Log File, then look for Installation Directory.

IMPORTANT: If you are using TeraWurfl 2.0.0 Stable and are experiencing problems with Firefox being detected as a mobile device, please goto your Web Administration Page and click on Generate Patch File, then paste the following user agents into the box, then click the Generate Patch File button and go back to the main admin page and click Update WURFL from local file. This will override the data in the WURFL and force the Firefox user agents to be detected properly.

Mozilla/5.0 (Windows; U; Firefox
Mozilla/6.0 (Windows; U; Firefox
Mozilla/5.0 (X11; U; Linux i686; Firefox
Mozilla/6.0 (X11; U; Linux i686; Firefox
Mozilla/5.0 (X11; U; Linux x86_64; Firefox
Mozilla/6.0 (X11; U; Linux x86_64; Firefox
Mozilla/5.0 (Macintosh; U; Firefox
Mozilla/6.0 (Macintosh; U; Firefox
Mozilla/5.0 (X11; U; FreeBSD Firefox
Mozilla/6.0 (X11; U; FreeBSD Firefox

Current Version

Older Versions

Version History

Version History

Stable 2.0.0

NOTE: you need the CREATE ROUTINE and EXECUTE permissions as of this release

Pre-Release 2.0.0 RC5

Spent a week sifting through 30,000 unique user agents over and over again while making adjustments to the UserAgentMatchers. The device detection is now extremely accurate. Not only will it detect mobile devices accurately, it is also very good at differentiating between wireless and non wireless devices. Here are the major changes:

User Agent: Alcatel-OT-280/1.0 model-orange ObigoInternetBrowser/Q03C Matcher History: AlcatelUserAgentMatcher(exact), AlcatelUserAgentMatcher(conclusive), AlcatelUserAgentMatcher(recovery), CatchAllUserAgentMatcher(recovery) This shows that the User Agent was assigned the Alcatel Matcher, but after looking for an exact match, a conclusive match and a recovery match, no match could be found - therefore the CatchAll Matcher was used to make a last-resort desicion.

Tera-WURFL Total Time: 12.081017971039 sec Devices Processed: 23902 Total Queries: 23912

WURFL PHP API Total Time: 217.57795381546 sec Devices Processed: 23902 Total Queries: N/A

As you can see, Tera-WURFL is still the best choice for accuracy and performance. Tera-WURFL may be even faster than these number indicate since the WURFL PHP API was benefiting greatly from my Samsung SSD.

Hardware used for testing: Dell Studio XPS Laptop, Core 2 Duo 2.8GHz, 4GB DDR2, 256GB Samsung SSD, Microsoft Windows 7 Ultimate x64, WampServer 2.0 (Apache 2.2.11, PHP 5.3.0, MySQL 5.1.36)

Pre-Release 2.0.0 RC4

Rewrote some of the UserAgentMatchers and deleted others to bring Tera-WURFL on par with the Java WURFL API. With the introduction of desktop browser UserAgentMatchers, we no longer need to use the large web patch; instead, you can just use the 8KB one from wurfl.sourceforge.net (included). Also, I fixed some typos and bugs here and there. NOTE: if you are upgrading from version 2.0.0 RC1-RC3 you should delete all your database tables before you update. You can leave the terawurflcache table if you want to retain your cache. Although it will still technically work even if you don't delete the tables, you will be orphaning some unecessary tables in your database.

Pre-Release 2.0.0 RC3

Complete code-rewrite from the ground up. The 2.x version of Tera-WURFL is loosely based on a pre-release of the Java WURFL Evolution Library, but the API is taken from Tera-WURFL 1.5.2. The following is a list of features found in Tera-WURFL 2.0:

Stable 1.5.2 Introduced a smart installation script to help you get Tera-WURFL up and running fast! getDeviceCapabilitiesFromAgent() function now returns boolean true (match) or false (no match). Introduced "MATCH_TO_UA_PREFIX" if true, matching will stop if the user agent prefix cannot be matched. The user

   agent prefix is everything from the beginning of the UA to the first '/', like "SonyEricssonK700i". If this is not matched in
   the WURFL, there searching will stop.

Introduced "RETURN_GENERIC" if true, the user agent and accept headers will be used to determine if this device is

   wireless or not and the capabilities array will be populated with appropriate generic data. This IS considered a match.
   Set this to false to stop getting generic matches.

Introduced webservice.php which can be used to query the Tera-WURFL database via an HTTP request. The results are

  returned in XML. This is a BETA feature, but it is very safe. There are details and example in the head of the file. 

Re-wrote the README file - now it has very clear instructions on usage and installation. Now Tera-WURFL includes the web browsers patch by default so you can tell Mobile and Non-Mobile devices apart. Cleaned up some minor logging issues. Completely re-wrote the UA matching system, scrapping a lot of unnecessary code that was wasting time!

Stable 1.5.1 Fixed a bug that prevented the updating system from working correctly over the web. If you have version 1.5.0 you can delete line 266 from the file tera_wurfl_parser.php and it will function the same as 1.5.1.

Stable 1.5.0 Introduced a MySQL caching system - many thanks to Andrea Trasatti for his help! Fixed a PHP5 typecasting error while loading data in tera_wurfl_parser.php (thanks Mait Vilbiks and everyone else!) Fixed a PHP5 syntax error in the log_error() function (thanks Michal Albrecht!) Introduced a lite version that does not include the 800+ device images or the wurfl.xml file. This is only a 32k download

  	 and one it's installed you can update the wurfl.xml from the admin page.

After much testing and some decent market penetration I have deemed this class "Stable".

Beta 1.4.4 Completely rewrote the error logging system and verified it's operation after a bug was discovered (thanks Neil!) Added many features to the web administration console - seriously - check out the online demo! Changed default DATADIR to the included 'data' directory Completely rewrote the README file to include detailed installation instructions and other useful info Optimized the clean installation process - now Tera-WURFL has a brain! Included the current stable release of the wurfl.xml file so you don't need to download it Included database statistics, log file monitoring and global configuration in web interface Changed default log level to LOG_WARNING instead of LOG_ERR Described in great detail the purpose of the different database tables

Beta 1.4.3 Updated the web administration interface and added some helpful links. Fixed a few relative path issues when including the class from a different directory. Fixed a couple problems with my naming convention and browser_is_wap detection (thanks MOLABIB!)

Beta 1.4.2 Changed the web update URL for the wurfl.xml file. Made the file locations absolute instead of relative so you can run the class from a different directory Fixed an issue with the searching algorithm - thanks Christian Aune Thomassen! (WapTheWeb)

Beta 1.4.1 Fixed issues with incorrectly identified device root resulting in the wrong device image being used.

Beta 1.4.0 Added support for the Device Thumbnails by André van den Heever and Luca Passani.

Beta 1.3.0 Added patching support to allow users to make changes to their WURFL database without editing the main WURFL. Added the ability to enable/disable the patch without rebuilding the database. Added a simple web administration utility to manage the WURFL and patch file. Added the ability to update the WURFL database directly from wurfl.sourceforge.net

Beta 1.2 Initial public release. Basic implementation of the library - very limited documentation included in comments.

Alpha2 Internal release. This is left on the site for historical reasons only. Use of this version is not recommended!

News

October 20, 2009 - Tera-WURFL 2.0.0 RC3

Tera-WURFL 2.0.0 Alpha, RC1 and RC2 were available to select people for testing and I now consider verion 2 as stable as version 1.5.2. I've release RC3 as a release candidate because I added a couple new features - the Cache Browser and the Non-mobile web patch GUI in the Web Administration page.

September 1, 2009 - Headed back to the Middle East

I'm in the US Army National Guard and I have been called up to serve my country again. I am going to be in training for a while so my availability will be limited. I'm putting the final touches on Tera-WURFL 2 and hope to have something up soon.

April 27, 2007 - Tera-WURFL goes stable!

Thanks to everyone who helped me test Beta 1.4.5RC1 - this pre-release was the stepping stone to version Stable 1.5.0. I was lucky to get some help testing 1.4.5RC1 from a client that gets very high traffic. After upgrading from 1.4.4 to 1.4.5RC1, his server's mysqld process went from 20-40% down to 6%!

"The system gets over 2 million WAP hits per day ... The impact on the server is definitely significant. Before this, mysqld was using between 20% and 40% of the CPU, and now it's down to 6% or less. Load average on the box was averaging 3.84 before, and now it's averaging 2.72." November 16, 2006 - WURFL and Tera-WURFL Updated!

The WURFL has been updated and now contains over 2000 real devices! Unfortunately somewhere along the line the people over at the WURFL project moved the wurfl.xml file! The file used to be located at http://www.nusho.it/wurfl/dl.php?t=d&f=wurfl.xml, but now that page returns an HTTP Error 302 (Moved Temporarily) and would normally redirect you to the actual file, but file_get_contents() and the fopen wrappers in PHP don't follow header redirections like a browser does - this results in an error when you try to update it. To fix the problem, you can change the WURFL_DL_URL constant in the configuration file to "http://wurfl.sourceforge.net/wurfl.xml".

I have been thinking about a caching system per Christian Aune Thomassen's request - this seems like a good idea but I need to look into some other issues first - like putting a system together so you can easily add devices to your patch file from the web interface.

Personal tools
Namespaces
Variants
Actions
WURFL DBAPI
Toolbox