<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Sat, 25 May 2013 10:50:55 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Oliver John Tibi's Blog: Mobile-ize Your CakePHP Application]]></title>
      <guid>http://www.phpdeveloper.org/news/17281</guid>
      <link>http://www.phpdeveloper.org/news/17281</link>
      <description><![CDATA[<p>
In a new post to his blog, <i>Oliver John Tibi</i> has the first part of a series looking at <a href="http://tibi.ph/posts/view/mobile-ize_your_cakephp_app_part_1">mobile-izing your CakePHP application</a>, making it mobile friendly when a mobile browser is detected.
</p>
<blockquote>
I'll be writing a short series of posts on how to create a mobile version of your CakePHP app. I've always been bragging to my peers how awesome CakePHP is, and so now I'm writing a short tutorial on how to create a mobile-friendly version of a CakePHP app. I promise to make this as easy as possible. 
</blockquote>
<p>
In this first part of the series he helps you do two things - set up some custom routes for the mobile version of the site ("/m") and add in browser detection using the RequestHandler's "isMobile()" method.
</p>]]></description>
      <pubDate>Tue, 20 Dec 2011 09:11:10 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Derick Rethans' Blog: Translating Twitter]]></title>
      <guid>http://www.phpdeveloper.org/news/15685</guid>
      <link>http://www.phpdeveloper.org/news/15685</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Derick Rethans</i> shows how to implement something very handy for those wanting to read all of the posts in their twitter stream, regardless of the language. Using Google web services, he's put together a <a href="http://derickrethans.nl/translating-twitter.html">twitter translation</a> for his twitter client <a href="http://derickrethans.nl/projects.html#haunt">Haunt</a>.
</p>
<blockquote>
As the author of <a href="http://twitter.com/xdebug">Xdebug</a> I am interested in finding out what people think of it, and whether they have problems or compliments. I've set-up a <a href="http://twitter.com/">twitter</a> account for Xdebug, <a href="http://twitter.com/xdebug">@xdebug</a>, and my twitter client <A href="http://derickrethans.nl/projects.html#haunt">Haunt</a> also shows me all tweets with the <a href="http://twitter.com/#%21/search/xdebug">search term xdebug</a>. However, sometimes I get tweets in a language I can't read.
</blockquote>
<p>
Since there's no language information associated with tweets, <i>Derick</i> used Google's <a href="http://code.google.com/apis/language/translate/v1/using_rest_langdetect.html">Language Detect</a> web service to get the language code for the text. Another quick call to the <a href="http://code.google.com/apis/language/translate/v1/using_rest_translate.html">Translate</a> service and a suable translation is returned. You can see how it looks in <a href="http://derickrethans.nl/images/content/haunt.gif">his screenshot</a>. You can find the code for it <a href="http://svn.xdebug.org/cgi-bin/viewvc.cgi/twitter/trunk/twitter.php?annotate=34&root=openmoko#l209">here</a>.
</p>]]></description>
      <pubDate>Wed, 05 Jan 2011 10:05:46 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[TheseDays.com: An Easy Way to Detect Mobile Devices]]></title>
      <guid>http://www.phpdeveloper.org/news/14938</guid>
      <link>http://www.phpdeveloper.org/news/14938</link>
      <description><![CDATA[<p>
On the These Days blog there's <a href="http://labs.thesedays.com/2010/07/29/an-easy-way-to-detect-mobile-devices/">a recent post</a> talking about creating a mobile version of your site and how you can detect if the visitor is using a mobile browser or not using <a href="http://wurfl.sourceforge.net/">WURFL</a>.
</p>
<blockquote>
<a href="http://wurfl.sourceforge.net/">WURFL</a>, The Wireless Universal Resource File (WURFL) is an open source project which collects information about all of the different mobile devices in use. It is constantly being updated, so as long as you keep your WURFL definitions up-to-date you don't have to worry about your detection scripts not recognising new devices. By querying a WURFL database with your visitor's User Agent string, you can not only determine whether the device they are using is a mobile device, but whether it has a touch screen, can make phone calls, is a tablet (iPad) and <a href="http://wurfl.sourceforge.net/help_doc.php#product_info">more</a>.
</blockquote>
<p>
They include a snippet of code that uses the <a href="http://www.tera-wurfl.com/wiki/index.php/Installation">Tera-WURFL service</a> and a call to getCapabilitiesFromAgent to see what kind of client is making the requests and what it supports.
</p>]]></description>
      <pubDate>Wed, 11 Aug 2010 08:24:35 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Danne Lundqvist's Blog: Detecting UTF BOM - byte order mark]]></title>
      <guid>http://www.phpdeveloper.org/news/14435</guid>
      <link>http://www.phpdeveloper.org/news/14435</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Danne Lundqvist</i> looks at <a href="http://www.dotvoid.com/2010/04/detecting-utf-bom-byte-order-mark/">a common pitfall</a> that could trip you up if you're not careful with your UTF-8 data - not looking for the UTF byte order mark that tells the application if it needs to be handled as UTF content.
</p>
<p>
One such thing is the occurrence of the UTF byte order mark, or BOM. [...] For UTF-8, especially on Windows, it has become more and more common to use it to indicate that the file is indeed UTF. Most text editors handle this well and you won't ever see these bytes. As it should be.
</p>
<p>
He points out what could cause an issue - using <a href="http://php.net/strcmp">strcmp</a> or <a href="http://php.net/substr">substr</a> but it can be prevented by looking at and removing those first three bytes if needed. He includes a snippet of code that does just that.
</p>]]></description>
      <pubDate>Thu, 29 Apr 2010 11:47:03 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[David Walsh's Blog: iPad Detection Using JavaScript or PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/14341</guid>
      <link>http://www.phpdeveloper.org/news/14341</link>
      <description><![CDATA[<p>
<i>David Walsh</i> has a new post to his blog today with some code snippets that can help you <a href="http://davidwalsh.name/detect-ipad">detect iPad users</a> when they come to your site.
</p>
<blockquote>
The hottest device out there right now seems to be the iPad. iPad this, iPad that, iPod your mom. I'm underwhelmed with the device but that doesn't mean I shouldn't try to account for such devices on the websites I create. 
</blockquote>
<p>
He includes three ways to get the job done by matching against the User Agent sent by the browser - Javascript, PHP and with an .htaccess file for an Apache server. As one commenter points out, though, you need to be sure if you already have a redirect on the word "mobile", the iPad's User Agent contains that too.
</p>]]></description>
      <pubDate>Tue, 13 Apr 2010 12:22:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPFreaks.com: Protecting php applications with PHPIDS]]></title>
      <guid>http://www.phpdeveloper.org/news/11608</guid>
      <link>http://www.phpdeveloper.org/news/11608</link>
      <description><![CDATA[<p>
On the PHPFreaks.com website there's a <a href="http://www.phpfreaks.com/tutorial/protecting-php-applications-with-phpids">new article</a> looking at one way to help protect your website from those evil doers out there looking to cause you and your data harm - <a href="http://php-ids.org/downloads/">PHP-IDS</a>.
</p>
<blockquote>
PHPIDS (PHP-Intrusion Detection System) is a simple to use,
well structured, fast and state-of-the-art security layer
for your PHP based web application. The IDS neither strips,
sanitizes nor filters any malicious input, it simply
recognizes when an attacker tries to break your site and
reacts in exactly the way you want it to. [...] In a nutshell PHPIDS is an advanced intrusion detection system written with performance on a large scale in mind. The basic installation and configuration is pretty straight forward.
</blockquote>
<p>
They (briefly) step you through the installation and configuration of the tool and provide a sample script to get the ball rolling - a file that can be auto_prepended to all scripts run on your Apache server to filter and log incoming requests.
</p>]]></description>
      <pubDate>Mon, 22 Dec 2008 08:49:42 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: Zend_Service_Mollom]]></title>
      <guid>http://www.phpdeveloper.org/news/11534</guid>
      <link>http://www.phpdeveloper.org/news/11534</link>
      <description><![CDATA[<p>
A <a href="http://devzone.zend.com/article/4092-Zend_Service_Mollom">new post</a> on the Zend Developer Zone looks at a component recently introduced into the Zend Framework to help with comment spam (and no, its not Akismet) - an interface to <a href="http://mollom.com/">Mollom</a>.
</p>
<blockquote>
If you run a blog that accepts comments, you're probably familiar with comment spam. You could manually verify all comments, but that gets cumbersome after some time. A better solution is using an automatic scanner to verify comments. Like <a href="http://mollom.com/">Mollom</a>. Mollom checks your comments and provides CAPTCHAs if it's not 100% sure (about 2% of all comments).
</blockquote>
<p>
The component is up to version 1.1.0 now and you can learn more about it (and find some downloads) on <a href="http://ruben.savanne.be/articles/zend-service-mollom-documentation">this page</a>.
</p>]]></description>
      <pubDate>Tue, 09 Dec 2008 09:32:05 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Robert Eisele's Blog: Face detection with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/10677</guid>
      <link>http://www.phpdeveloper.org/news/10677</link>
      <description><![CDATA[<p>
<i>Robert Eisele</i> has <a href="http://www.xarg.org/2008/07/face-detection-with-php/">posted on</a> an interesting topic recently - using a PHP interface to the <a href="http://www.intel.com/technology/computing/opencv/">OpenCV</a> library (from Intel) to detect faces in images.
</p>
<blockquote>
The headline does say facedetection - but what does this mean? Easy said, this article focus on how to find faces on images with PHP. Faces have a certain form and so it is possible to search for it. At the end of the search you will say how many human faces are on the image or better: Where are human faces on my image. This article is not intended to be mathematically.
</blockquote>
<p>
The <a href="http://www.intel.com/technology/computing/opencv/">OpenCV</a> library is a pattern-detection tool that can, based on the "experience" it has trained on with sample files, do its best to find similar structures in any given image. He's come up with a <a href="http://www.xarg.org/download/facedetect.phps">wrapper</a> that handles most of the details for you. You can define the xml file type (frontalface, lowerbody, upperbody, etc) that you want it to try to match to. 
</p>
<p>
He gives some examples of the output from each on one of the sample images included in the training group as well as a random photo grab from flickr that dynamically tries to apply one of the face filters.
</p>]]></description>
      <pubDate>Thu, 24 Jul 2008 12:55:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jonathan Snook's Blog: Multiple Validation Sets in CakePHP 1.2]]></title>
      <guid>http://www.phpdeveloper.org/news/10661</guid>
      <link>http://www.phpdeveloper.org/news/10661</link>
      <description><![CDATA[<p>
<i>Jonathan Snook</i> has <a href="http://snook.ca/archives/cakephp/multiple_validation_sets_cakephp/">posted two methods</a> for creating multiple validation sets in the latest version of your <a href="http://www.cakephp.org">CakePHP</a> application.
</p>
<blockquote>
In CakePHP, you define how your data should be validated by setting parameters on the validate property of your model. In version 1.2, there is an on option that can be set on a specific rule that, when set, is either create or update. [...] Despite that, I developed a slightly different approach that allows for different validation sets to be specified and to be cleanly separated from each other.
</blockquote>
<p>
He overrides the validates() method with his own in a custom model in one of two ways - having the script check for a validation set for the current controller or by specifying it directly with a validationSet property. Code for both methods is included.
</p>]]></description>
      <pubDate>Wed, 23 Jul 2008 07:51:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Derick Rethans' Blog: Detecting Timezone By IP]]></title>
      <guid>http://www.phpdeveloper.org/news/10132</guid>
      <link>http://www.phpdeveloper.org/news/10132</link>
      <description><![CDATA[<p>
<i>Derick Rethans</i> has posted <a href="http://derickrethans.nl/detecting_timezone_by_ip.php">a method</a> he's come up with to try to figure out the user's timezone based on the IP address they're using:
</p>
<blockquote>
Through <a href="http://planet-php.org/">Planet PHP</a> I found an article on <a href="http://torrentialwebdev.com/blog/archives/152-Pre-populating-forms-with-the-timezone.html">Pre-populating forms with the timezone</a>. I'd normally add a comment instead, but the comment would almost be larger then the original post, so I am instead writing up an entry myself. The post describes several ways to obtain the user's timezone and use that to pre-fill a form. None of them are working properly though. 
</blockquote>
<p>
In <i>Derick</i>'s <a href="http://derickrethans.nl/detecting_timezone_by_ip.php">method</a> combines a bit of Javascript with some PHP to correctly find the timezone.
</p>]]></description>
      <pubDate>Wed, 07 May 2008 11:15:24 -0500</pubDate>
    </item>
  </channel>
</rss>
