<?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>Sun, 12 Feb 2012 21:04:36 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Artur Ejsmont's Blog: A few words on bugs and software quality]]></title>
      <guid>http://www.phpdeveloper.org/news/17519</guid>
      <link>http://www.phpdeveloper.org/news/17519</link>
      <description><![CDATA[<p>
In <a href="http://artur.ejsmont.org/blog/content/a-few-words-on-bugs-and-software-quality">this new post</a> to his blog <i>Artur Ejsmont</i> shares some of his thoughts on bugs and how they can effect the quality of your software. He touches on topics like handling bug reports, how random code changes effect them and how effective a code review can be.
</p>
<blockquote>
From time to time I see bugs in the code and I start thinking "really? is it possible that no one noticed that bug before? am i the first person to see this code?". I thought it might be worth writing a little post on what helps me to deal with bugs and software quality in general and what are the common pitfalls in developer's thought process. Although it is not a very extensive post i hope it may inspire some developers to try new approaches.
</blockquote>
<p>
Other topics he offers for consideration involve the fact that bugs will never fix themselves (they might disappear in a refactor though), that the bug is almost never in the language/data source's code and how automated (unit) testing can help to find new bugs before they're released to the users.
</p>]]></description>
      <pubDate>Wed, 08 Feb 2012 13:50:40 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[7php.com: PHP Interview With Enrico Zimuel Senior Software Engineer At Zend Technologies]]></title>
      <guid>http://www.phpdeveloper.org/news/17399</guid>
      <link>http://www.phpdeveloper.org/news/17399</link>
      <description><![CDATA[<p>
On 7php.com there's a new interview posted <a href="http://7php.com/interview-enrico-zimuel-senior-software-engineer-zend-technologies-everything-is-an-array-in-php/">with Enrico Zimual</a> of <a href="http://zend.com">Zend</a> - "Everything is an Array in PHP".
</p>
<blockquote>
In this edition, I talked with Enrico Zimuel a computer geek since he was 9yrs old. He has written a couple of books namely "Secrets, Spies and Cipher Codes" published by Apogeo in 1999 and the recent "How to use the digital sign" published by Tecniche Nuove in 2010. Enrico has a pretty impressive 'geek' path. He also speaks at many international conferences [...]. You can find his <a href="http://www.slideshare.net/e.zimuel">presentations on slideshare</a>.
</blockquote>
<p>Questions in the interview include:</p>
<ul>
<li>How do you find PHP now as compared to when you first started?
<li>Based on your experience, what are the good and bad parts of PHP?
<li>To someone who wants to become a better PHP developer, what is your advice?
<li>What are some good PHP blog or resources you highly recommend?
</ul>
<p>
Read the <a href="http://7php.com/interview-enrico-zimuel-senior-software-engineer-zend-technologies-everything-is-an-array-in-php/">full interview here</a>.
</p>]]></description>
      <pubDate>Mon, 16 Jan 2012 11:30:04 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Brian Smithwick's Blog: Software development and the locked box]]></title>
      <guid>http://www.phpdeveloper.org/news/17271</guid>
      <link>http://www.phpdeveloper.org/news/17271</link>
      <description><![CDATA[<p>
In <a href="http://www.chickentechnology.com/2011/12/software-development-and-locked-box.html">this recent post</a> to his blog <i>Brian Smithwick</i> talks about the "locked box" that developers can sometimes restrict themselves to - getting to comfortable in the tech they already know and not branching out.
</p>
<blockquote>
Jason Austin gave a great presentation at CodeWorks Raleigh recently about cultivating one's passion for software development through side projects -- safe spaces where we can play with new technologies and techniques. The point's well taken:  as developers, we're probably putting most of our energy towards the thing that must be solved, that keeps us employed, that pays our bills. [...] And so all of us, at one time or another, end up in a backwater of our own devising -- a locked box.
</blockquote>
<p>
He also puts an emphasis on collaboration and community as it relates to becoming a better developer. By interacting with other code and other projects' developers, you learn not only more about other ways to develop but are exposed to ideas you may not have come across on your own.
</p>
<blockquote>
I'd add that active participation in the local community is just as important though:  the opportunities for exposure to new ideas outside your sphere are greater than your feed reader will probably provide, and the depth of information that you can get in a conversation may be better than any blog post or man page.
</blockquote>]]></description>
      <pubDate>Fri, 16 Dec 2011 11:41:09 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[SitePoint.com: Software Development? We're Doing it Wrong.]]></title>
      <guid>http://www.phpdeveloper.org/news/17139</guid>
      <link>http://www.phpdeveloper.org/news/17139</link>
      <description><![CDATA[<p>
On SitePoint today there's a new post from <i>Eran Galperin</i> (of <a href="http://binpress.com">Binpress</a>) about how, if you're jumping immediately to custom software development, <a href="http://www.sitepoint.com/software-development-doing-it-wrong/">you're probably doing it wrong</a>.
</p>
<blockquote>
Code reuse is largely accepted as "best practice" in our industry. Code reuse has many advantages, such as a smaller code-base which is easier to grok for developers. It's easier to maintain and optimize, since you can make less changes in order to achieve the desired results. Many modern techniques and tools were created in order to better reuse and modularize code. But while we're reusing code, we're duplicating effort. The same code is being written over and over in different places, wasting time and money.
</blockquote>
<p>
He suggests that custom development should always be a last resort for software development, that there's plenty of other (open source) software out there that meets many of the needs businesses have. In his opinion, component-based development is the future of the industry - pieces that fit together with common interfaces and are larger than the sum of their parts. He sees a "commercial open source" model emerging from the current state of things. This model could result in more well maintained OS projects and more functionality being released as a part of it.
</p>
<blockquote>
What we have currently is increasing noise, as more and more people have easier access to start programming and publishing their projects. We need to streamline the process and add that missing financial element that makes it sustainable and repeatable.
</blockquote>]]></description>
      <pubDate>Thu, 17 Nov 2011 08:30:34 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[php|architect: Why Software Fails]]></title>
      <guid>http://www.phpdeveloper.org/news/16971</guid>
      <link>http://www.phpdeveloper.org/news/16971</link>
      <description><![CDATA[<p>
On the php|architect site today there's an opinion piece from <i>Marco Tabini</i> with his thoughts on <a href="http://www.phparch.com/2011/10/opinion-why-software-fails/">why software fails</a> - not why the project itself fails, but why the software fails to be useful.
</p>
<blockquote>
This is a much more common problem than engineers and architects are willing to admit. Far too often I see someone in charge of writing a piece software worry about how a product works without paying so much as a passing thought to whether it actually works the way people expect it to. The truth is that we are, by and large, stuck in a reality where software somehow equates with automation.
</blockquote>
<p>
He goes on to talk about how easy it is for us, as developers, to forge head with features and software that may not be useful to the masses. We worry more about solving a problem that may or may not actually be there. He illustrates with the example of a to-do list, providing the automation to make list tracking easier, but no guidance of how the user can make use of it effectively.
</p>]]></description>
      <pubDate>Mon, 10 Oct 2011 10:48:10 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Marco Tabini's Blog: Suggestions for a younger developer]]></title>
      <guid>http://www.phpdeveloper.org/news/16855</guid>
      <link>http://www.phpdeveloper.org/news/16855</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Marco Tabini</i> offers some quick advice to younger developers looking to make their mark in their profession (PHP-related or not). He <a href="http://blog.tabini.ca/2011/09/suggestions-for-a-younger-developer/">shares five tips</a> to keep in mind as you hone your process and write your code.
</p>
<blockquote>Every now and then, I get asked by developers who are just getting started in the trade if I have any suggestions to help them out - favourite language, tips and tricks, and the like. None of these things matter, really, but there are a few things I wish I had known when I started out that have nothing to do with the mechanics of software development.
</blockquote>
<p>His tips each come with a paragraph or so of explanation:</p>
<ul>
<li>Be humble
<li>There is no magic
<li>Programming is a craft, not an art
<li>Software solves problems
<li>Code doesn't leave sawdust
</ul>]]></description>
      <pubDate>Wed, 14 Sep 2011 08:54:33 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[VentureBeat.com: Exclusive: Facebook opens up about open-source software]]></title>
      <guid>http://www.phpdeveloper.org/news/16797</guid>
      <link>http://www.phpdeveloper.org/news/16797</link>
      <description><![CDATA[<p>
On VentureBeat today there's a post (the first of two parts) looking at <a href="http://venturebeat.com/2011/08/30/facebook-open-source-software/">Facebook's involvement in Open Source software</a>, including their work on <a href="http://github.com/facebook/hiphop-php">HipHop</a> and <a href="http://github.com/facebook/xhp">XHP</a> for PHP (an interview with David Recordon and Amir Michael).
</p>
<blockquote>
The social media company has, without question, taken the time to work on those projects. The hackers at Facebook have done perhaps more than any other single entity to advance and optimize PHP, the programming language on which the network is primarily built.
</blockquote>
<p>
They talk about some of the projects, both PHP-related and not, that the developers of Facebook have either created or contributed to. There's mentions of Facebook's "hacker culture" and a mention of their workflow and how they decided on going forward with something like HipHop.
</p>]]></description>
      <pubDate>Wed, 31 Aug 2011 11:48:17 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[VXTIndia Blog: How to setup your new VPS Ubuntu server]]></title>
      <guid>http://www.phpdeveloper.org/news/16790</guid>
      <link>http://www.phpdeveloper.org/news/16790</link>
      <description><![CDATA[<p>
On the VXTIndia blog there's a recent post that gives you a <a href="http://vxtindia.com/blog/how-to-setup-your-new-vps-ubuntu-server/">very complete guide</a> to setting up a VPS server running Ubunut with all of the software you'd need to get a (more than) complete server up and running.
</p>
<blockquote>
Every time you purchase a new Linux VPS, you need to go ahead and set it up for use. Even though we manage to do one server a month, we always seem to forget one thing or the other. So we decided to write down the things that we do. I thought it would be a good thing to share it with everybody as well, so that we could get a few comments about what we're doing wrong, and people who do it the first time can probably pick up a few things from here.
</blockquote>
<p>Steps and software involved in their process include:</p>
<ul>
<li>Updating to the latest Ubuntu packages
<li>Creating other users for the system
<li>Installing the web environment (including PHP, MySQL, phpmyadmin and Apache2)
<li><a href="http://munin-monitoring.org/">Minin</a> for monitoring
<li>Configuring IPTables
<li>Installing <a href="http://www.fail2ban.org/wiki/index.php/Main_Page">Fail2Ban</a>
</ul>
<p>
All of this comes complete with the additions you'll need to make to configuration files and the commands to get everything installed (via aptitude).
</p>]]></description>
      <pubDate>Tue, 30 Aug 2011 10:02:47 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Pim Elshoff's Blog: SOLID design]]></title>
      <guid>http://www.phpdeveloper.org/news/16707</guid>
      <link>http://www.phpdeveloper.org/news/16707</link>
      <description><![CDATA[<p>
In your development time, you might have heard of the SOLID development design principles that aim to keep you and your application well structured and on track. If you haven't had the time to learn much about them, you should consider <a href="http://www.pelshoff.com/2011/08/solid-design">this new post</a> from <i>Pim Elshoff</i> that briefly covers each principle (with some code examples along the way).
</p>
<blockquote>
Oh how we love acronyms. We've discussed a lot about writing a class, but we haven't talked about writing classes yet. How do you know if your solution is right? It is not enough to have a working program. SOLID is a set of principles that define severable measurable properties your architecture should have at least, in order to be dubbed right.&#65279;
</blockquote>
<p>
He goes through each of the principles (single responsibility principle, Liskov substitution principle, etc) and gives a summary statement, a definition and code illustrating it in use. The examples aren't all based on the same code as implementing all of these principles at once as been <a href="http://phpdeveloper.org/news/16431">found</a> to <a href="http://phpdeveloper.org/news/16436">be difficult</a>. He also includes another principle to keep in mind - the "Law of Demeter" dealing with calling scope of properties and methods.
</p>]]></description>
      <pubDate>Thu, 11 Aug 2011 12:15:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Bradley Holt's Blog: The Case For Rapid Release Cycles]]></title>
      <guid>http://www.phpdeveloper.org/news/16691</guid>
      <link>http://www.phpdeveloper.org/news/16691</link>
      <description><![CDATA[<p>
<i>Bradley Holt</i> has a new post to his blog today talking about something he's a fan of in his development processes - <a href="http://bradley-holt.com/2011/08/the-case-for-rapid-release-cycles/">rapid release cycles</a> - and how something like the Zend Framework could benefit from it.
</p>
<blockquote>
There has been some discussion recently on the Zend Framework mailing list around release cycles. I proposed a release cycle of six months for major versions (someone else suggested eighteen months, which may be more reasonable for a framework). Rapid releases allow one to accelerate the cycle of building, measuring, and learning. Gathering data from actual usage (measuring) provides an opportunity for learning that can be applied to the next release (building).
</blockquote>
<p>
He points out that the post isn't specifically targeted at the Zend Framework project, merely that it was the inspiration point for the idea. He talks about what rapid release cycles are and what it can give the team that implements it - less worries about backwards compatibility breaks, a potential encouragement for development pacing and the ease for the customers doing upgrades.
</p>
<blockquote>
A rapid release cycle allows you to apply new learning, knowledge, and perspective as often as possible. Do your best today, and give yourself opportunities to do your best in the future as well.
</blockquote>]]></description>
      <pubDate>Tue, 09 Aug 2011 08:44:33 -0500</pubDate>
    </item>
  </channel>
</rss>

