<?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>Tue, 21 May 2013 05:15:39 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Tibo Beijen's Blog: DDD using Doctrine 2: A case study]]></title>
      <guid>http://www.phpdeveloper.org/news/16528</guid>
      <link>http://www.phpdeveloper.org/news/16528</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Tibo Beijen</i> <a href="http://www.tibobeijen.nl/blog/2011/06/27/ddd-using-doctrine-2-a-case-study/">presents a case study</a> about doing Domain Driven Design in an application using <a href="http://www.doctrine-project.org/projects/orm/2.0/docs/en">Doctrine2</a> to work with objects and your database.
</p>
<blockquote>
Nowadays developing web applications usually requires a flexible process due to changing business logic, shifting priorities or new insights. Besides choosing the right methodology this also requires designing the application in such a way that this flexibility can be achieved. [...] In this article I will show how to implement a specific case using Doctrine 2. Full code accompanying this article can be <a href="https://github.com/TBeijen/DDD-HRM/tree/v001">found on GitHub</a>. 
</blockquote>
<p>
He starts by describing the entities (User/TimeSheet/TimeSheetStatusChange) and how they're defined in Doctrine objects. He modifies them to build in some business-level restrictions like "status changes are only allowed in a certain order". He shows that the domain models presented are about more than just working with the database tables. They enforce rules that effect the flow of the application as well.
</p>]]></description>
      <pubDate>Tue, 28 Jun 2011 10:54:15 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Justin Carmony's Blog: MySQL, Redis, and a Billion Rows - A Love Story]]></title>
      <guid>http://www.phpdeveloper.org/news/16387</guid>
      <link>http://www.phpdeveloper.org/news/16387</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Justin Carmony</i> <a href="http://www.justincarmony.com/blog/2011/05/23/mysql-redis-and-a-billion-rows-a-love-story/">shares the story</a> of how he took a platform running with MySQL as the backend (<a href="http://www.datingdna.com/">Dating DNA</a>) and made the choice to move to <a href="http://redis.io/">Redis</a> for storing compatibility scores for every user in the system.
</p>
<blockquote>
We wanted not only for people to be able to visit a profile and see a score, which is easy to generate a score on demand. We wanted our users to be able to browse other profiles sorted by their score with them. This requires us to pre-generate and store these scores, and then later query them. [...] I believe we could have bent MySQL to our will and got it to work, but it would be at a high cost of server power, and that cost wouldn't scale well with our revenue stream.
</blockquote>
<p>
He talks about some of the other options they sorted through including NoSQL databases or building something completely in-house. In the end, though, they decided that <a href="http://redis.io/">Redis</a> was more of what they needed. He prefaces talking about their configuration with some of the limitations of the tool and then moves into their setup and statistics on its use (complete with pretty graphs). He points to <a href="https://github.com/nrk/predis">predis</a> as their Redis client of choice for PHP.
</p>]]></description>
      <pubDate>Thu, 26 May 2011 10:57:24 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Justin Ireland's Blog: Real-Time Embedded User Interfaces Using HTML/CSS/js and Websockets]]></title>
      <guid>http://www.phpdeveloper.org/news/14966</guid>
      <link>http://www.phpdeveloper.org/news/14966</link>
      <description><![CDATA[<p>
<i>Justin Ireland</i> has <a href="http://justinireland.com/real-time-embedded-user-interfaces-using-html-css-js-and-websockets/">posted an article</a> to his blog about creating real-time interfaces for your sites using the combination of HTML, CSS and Javascript to connect to a physical interface on the backend.
</p>
<blockquote>
Physical interfaces such as button panels or remote controls have many disadvantages. Panel controls require a dedicated display for feedback and physical access to a fixed location. IR remote controls offer only one-way communication with limited feedback and can become difficult to manage for multiple devices. [...] We propose a new type of solution to address these issues and bring simplified management and control to a broader market through embedded virtual interfaces.
</blockquote>
<p>
He lays out <a href="http://justinireland.com/wp-content/uploads/2010/08/Real-TimeEmbeddedVirtualUserInterfaces2.png">the structure of the application</a>, some of the issues that could come up in the connection (using <a href="http://en.wikipedia.org/wiki/Comet_(programming)">COMET</a> and <a href="http://en.wikipedia.org/wiki/Websockets">Websockets</a>). His <a href="http://justinireland.com/real-time-embedded-user-interfaces-using-html-css-js-and-websockets/3/">proof of concept</a> is a connection to <a href="http://www.hallresearch.com/page/Products/SW-HDMI-4">a HDMI switch</a> that can be talked to through an <a href="http://www.lantronix.com/device-networking/embedded-device-servers/matchport-ar.html">embedded controller</a> via a <a href="http://justinireland.com/wp-content/uploads/2010/08/SW-HDMI-4-demo.jpg">simple interface</a>.
</p>]]></description>
      <pubDate>Mon, 16 Aug 2010 13:17:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Web applications as enterprise software]]></title>
      <guid>http://www.phpdeveloper.org/news/14793</guid>
      <link>http://www.phpdeveloper.org/news/14793</link>
      <description><![CDATA[<p>
On DZone.com today <i>Giorgio Sironi</i> offers some of his opinions on <a href="http://css.dzone.com/articles/web-applications-enterprise">web applications as enterprise software</a>.
</p>
<blockquote>
In this article we'll focus on a case study on enterprise software where the porting failed, to list the issues of introducing a web application into the enterprise, and hopefully pave the way for future successes. This is kind of a written retrospective.
</blockquote>
<p>
He briefly touches on some of the advantages first, mentioning the portability they offer and the fact that it's an "automatic upgrade" for users without having to install additional software. He also talks about a case study of an application that failed but also covers things learned along the way like:
</p>
<ul>
<li>How complex the domain the application lives in could be (enterprise needs from enterprise software)
<li>Worries about data portability 
<li>Struggles with the limitations of the browser (like working with large file downloads)
<li>and, of course, the huge amount of requirements that come with the application just because of the needs of the company
</ul>]]></description>
      <pubDate>Wed, 14 Jul 2010 13:48:24 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Symbiotix.net: Wherein We Muse Over a Case Study of a One Day Wordpress-to-Drupal Conversion]]></title>
      <guid>http://www.phpdeveloper.org/news/13853</guid>
      <link>http://www.phpdeveloper.org/news/13853</link>
      <description><![CDATA[<p>
In <a href="http://symbiotix.net/articles/wherein-we-muse-over-case-study-one-day-wordpress-drupal-conversion">this new post</a> to Symbiotix.net they take a look at a migration they made taking their site and content over from a WordPress installation into a new Drupal site.
</p>
<blockquote>
We've been running a small educational non-profit - <A href="http://edulogos.org/">Edulogos</a> - for over three years now. Until recently edulogos.org has been little more than a <a href="http://wordpress.com/">Wordpress</a> blog with a few extra pages and an off the shelf theme. [...] We decided it was high time to redesign the site and move it over to <a href="http://drupal.org/">Drupal</a> to give it room to grow. Like repotting a plant. "Liefde en substral", as they used to say in our home country.
</blockquote>
<p>
They talk about the planning stages of the move - what version control they were going to use, which Drupal modules they were going to install - and walk you through the installation and configuration process step by step. They used git and <a href="http://github.com/">github</a> as their chosen method for deploying the site</a>.
</p>]]></description>
      <pubDate>Fri, 15 Jan 2010 13:09:58 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Quality Assurance in PHP Projects: Testing Database Interaction]]></title>
      <guid>http://www.phpdeveloper.org/news/12220</guid>
      <link>http://www.phpdeveloper.org/news/12220</link>
      <description><![CDATA[<p>
On the Quality Assurance in PHP Projects site, <i>Mike Lively</i> has <a href="http://qualityassuranceinphpprojects.com/archives/5-Testing-Database-Interaction.html#content">written up a few thoughts</a> on how developers and development environments should work with testing databases as resources (case study).
</p>
<blockquote>
Proper interaction with <a href="http://en.wikipedia.org/wiki/RDBMS">relational databases</a> is incredibly important in most pieces of software. The importance of this interaction is underscored by the fact that many software architectures have at least one entire layer or system devoted to data persistence and data loading. When dealing with critical data in enterprise level applications it becomes even more important to make sure your data is being stored and retrieved correctly.
</blockquote>
<p>
He talks about a case study on the topic (still in development) that will talk about testing techniques, functionality and how to create the tests needed to ensure your development environment can correctly use the database resource via unit tests and functional tests.
</p>]]></description>
      <pubDate>Fri, 27 Mar 2009 07:59:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Toomas Romer's Blog: Case study: Is PHP embarrassingly slower than Java?]]></title>
      <guid>http://www.phpdeveloper.org/news/10755</guid>
      <link>http://www.phpdeveloper.org/news/10755</link>
      <description><![CDATA[<p>
In a <a href="http://dow.ngra.de/2008/08/04/optimizing-ip2c-php-implementation/">case study</a> posted to his blog, <i>Toomas Romer</i> wonders if a PHP script is embarrassingly slower than than its Java counterpart.
</p>
<blockquote>
The problem. The PHP implementation [of the <a href="http://firestats.cc/wiki/ip2c">IP2C library</a>] is a lot slower. Embarrassingly slower. Without any caching the Java version is able to do ~6000 queries per second. The PHP counterpart can push through ~850 queries. The implementations are the same. The stats provided by the author of the library are 8000 vs 1200. So about the same as my measurements.
</blockquote>
<p>
He details the script, showing <a href="http://dow.ngra.de/wp-content/uploads/2008/08/vanilla1.png">what parts</a> the script is taking up the most time on. A large part of the execution is tied up in IO and the fseek/fread and readShort/readInt functions take up a good chunk. 
</p>
<p>
He even tries removing the functions and making things a bit more streamlined. This helps, but still lags behind its Java brother. Check out <a href="http://dow.ngra.de/2008/08/04/optimizing-ip2c-php-implementation/">the post</a> for more statistics comparing the two.
</p>]]></description>
      <pubDate>Mon, 04 Aug 2008 12:02:05 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Aaron Wormus' Blog:  Migrating to Unicode]]></title>
      <guid>http://www.phpdeveloper.org/news/7868</guid>
      <link>http://www.phpdeveloper.org/news/7868</link>
      <description><![CDATA[<p>
<i>Aaron Wormus</i> has dug up some <a href="http://www.wormus.com/aaron/stories/2007/05/17/migrating-to-unicode.html">old notes</a> that he made at the International PHP Conference back in 2005 on the topic of Unicode in PHP that he wanted to share.
</p>
<p>
He <a href="http://www.wormus.com/aaron/stories/2007/05/17/migrating-to-unicode.html">mentions</a>:
</p>
<ul>
<li>A case study of an online survey generator
<li>info about Unicoding and UTF-8
<li>Iconv and mbstring
<li>and the migration of the application to support Unicoded characters (a nine step process)
</ul>
<p>
And also, a word of warning:
</p>
<blockquote>
Everything was much more complex than expected. Don't do this because you think that UTF-8 is cool, it's difficult, not well supported in PHP, and don't do it without needing it. Don't do this without a CVS.
</blockquote>]]></description>
      <pubDate>Fri, 18 May 2007 07:08:54 -0500</pubDate>
    </item>
  </channel>
</rss>
