In which I present some analysis of what Brooks' Law implies for scheduling on late projects. Read on for an overview of Brooks' Law, its components, how to model its effects on your schedule, and some caveats and conclusions to the analysis.
PHP
-
Most Topular Stories
-
The Central Tension Of Programming
Paul M. Jones4 Sep 2010 | 8:21 am -
The Miserable Mathematics of the Man-Month
Paul M. Jones6 Sep 2010 | 3:34 pm -
CodeIgniter Bug Tracker
CI News14 Aug 2010 | 10:27 am -
Joomla 1.6 Beta 9 Now Available
Joomla Announcements7 Sep 2010 | 9:24 amThe Joomla Project is proud to announce the immediate availability of Joomla 1.6 beta 9 (download). IMPORTANT NOTE: This is a beta version and is not intended to run any type of production site. It is intended to be used for evaluation purposes only. Since the Joomla 1.6 beta 8 release on August 23, we have fixed approximately 69 issues in the tracker. This progress is directly related to the continued efforts of the Joomla! Bug Squad. Thanks for all your hard work in bringing us one increment closer to stable! See the CHANGELOG for details of what has been changed in this release. What's… -
Our new Drupal Code of Conduct
drupal.org30 Aug 2010 | 11:49 amAs our community grows, it is imperative that we preserve the things that got us here; namely, keeping Drupal a fun, welcoming, challenging, and fair place to play. The new Drupal Code of Conduct (DCOC) states our shared ideals with respect to conduct. Think of this as coding standards for people. It is an expression of our ideals, not a rulebook. It is a way to communicate our existing values to the entire community. Our friends at Ubuntu have blazed a brilliant trail in this area. They use Drupal as their CMS, and in turn we have embraced their Code of Conduct. This code of conduct is…
-
CI News
-
CodeIgniter Bug Tracker
14 Aug 2010 | 10:27 amThe CodeIgniter Bug Tracker that has been running at CodeIgniter.com has finally been closed in favor of the issue tracker at BitBucket. We’ve found that the reports actually tend to be of higher quality at BitBucket, and of course integration with our repository is a boon. If you reported bugs at the old Bug Tracker that did not get addressed, please be aware that we do have an internal archive of all reported bugs. However, if you can still reproduce a bug using the current in-development code, it would be appreciated if a new issue were logged against that code at… -
CodeIgniter Con 2010
19 Jul 2010 | 9:10 amThere are remarkable things happening within the CodeIgniter community. One of these is the community run conference, CICON! CodeIgniter Con 2010 is the first all-CodeIgniter conference and is being run in the UK. The conference will be a two-day event on the 14th and 15th of August, which will give you a great chance to meet fellow developers, pick up some new tricks and share your experience with others. The first day will be a series of talks from well-known speakers who have been using CodeIgniter for years in different ways. The second day will be a workshop / master-class day which will… -
CodeIgniter 1.7.2 Security Patch
12 Jul 2010 | 3:23 pmA fix has been implemented for a security flaw in CodeIgniter 1.7.2. You may obtain the fix either by downloading a fresh copy of CodeIgniter, or downloading this standalone patch. All applications using the File Upload class should install the patch to ensure that their application is not subject to a vulnerability. While fixing this bug, we took the opportunity to make an improvement to the Upload class’s ability to allow a file name override. Previously, you needed to do a little dance in your controller to remove the extension from the file name if you were… -
EllisLab moves to Mercurial, Assembla, BitBucket; CodeIgniter 2.0 Baking
11 Mar 2010 | 8:00 amEllisLab today announces changes to our internal development processes, including dropping Subversion in favor of Mercurial and adopting Assembla as our agile software development management tool. Along with these changes, CodeIgniter 2.0 pre-release code is in development, and is now hosted at the Mercurial-focused social coding site BitBucket. At EllisLab we make ExpressionEngine, the CMS for web professionals, and CodeIgniter, the only PHP framework to receive praise from Rasmus Lerdorf, the creator of PHP. We’re based out of Bend, Oregon, but only two staff members live… -
EECI2010 Full Ticket Giveaway
4 Mar 2010 | 12:48 pmThe ExpressionEngine and CodeIgniter Conference (EECI2010) in May is the CodeIgniter and ExpressionEngine event to go to this year. We want you to join the fun, so we’re giving away a full conference ticket to the year’s biggest event. Read the full details and how to enter at the ExpressionEngine blog. Read details for the EECI2010 Full Ticket Giveaway
-
Joomla Announcements
-
Joomla 1.6 Beta 9 Now Available
7 Sep 2010 | 9:24 amThe Joomla Project is proud to announce the immediate availability of Joomla 1.6 beta 9 (download). IMPORTANT NOTE: This is a beta version and is not intended to run any type of production site. It is intended to be used for evaluation purposes only. Since the Joomla 1.6 beta 8 release on August 23, we have fixed approximately 69 issues in the tracker. This progress is directly related to the continued efforts of the Joomla! Bug Squad. Thanks for all your hard work in bringing us one increment closer to stable! See the CHANGELOG for details of what has been changed in this release. What's… -
Joomla! Community Magazine - September 2010 Issue Released
3 Sep 2010 | 8:02 pmThe Joomla! Project proudly announces the September 2010 Issue of the Joomla! Community Magazine. The magazine is a monthly collection of articles and illustrations highlighting events and accomplishments of the Joomla! community. -
Joomla 1.6 Beta 8 Now Available
22 Aug 2010 | 5:00 pmThe Joomla Project is proud to announce the immediate availability of Joomla 1.6 beta 8 (download). IMPORTANT NOTE: This is a beta version and is not intended to run any type of production site. It is intended to be used for evaluation purposes only. Since the Joomla 1.6 beta 7 release on August 9, we have fixed approximately 90 issues in the tracker. This progress is directly related to the continued efforts of the Joomla! Bug Squad. Thanks for all your hard work in bringing us one increment closer to stable! See the CHANGELOG for details of what has been changed in this release. What's… -
Joomla 1.6 Beta 7 Now Available
9 Aug 2010 | 12:19 pmThe Joomla Project is proud to announce the immediate availability of Joomla 1.6 beta 7 (download). IMPORTANT NOTE: This is a beta version and is not intended to run any type of production site. It is intended to be used for evaluation purposes only. Since the Joomla 1.6 beta 6 release on July 26, we have fixed approximately 85 issues in the tracker. This progress is directly related to the continued efforts of the Joomla! Bug Squad. Thanks for all your hard work in bringing us one increment closer to stable! See the CHANGELOG for details of what has been changed in this release. What's next? -
August 1, 2010 - The Joomla! Community Magazine Issue Released
3 Aug 2010 | 12:22 pmThe Joomla! Project proudly announces the August 2010 Issue of the Joomla! Community Magazine. The magazine is a collection of articles and illustrations highlighting events and accomplishments of the free software community behind Joomla!, an award-winning open source content management system. Administrators, Developers and Designers The Administrators Toolkit article, The prefix has nothing to do with telephony , includes a free program to enhance site security. In the Developers Workbench , instructions to synchronize a Joomla! website with MAMP and Dropbox and advice on creating end-user…
-
drupal.org
-
Our new Drupal Code of Conduct
30 Aug 2010 | 11:49 amAs our community grows, it is imperative that we preserve the things that got us here; namely, keeping Drupal a fun, welcoming, challenging, and fair place to play. The new Drupal Code of Conduct (DCOC) states our shared ideals with respect to conduct. Think of this as coding standards for people. It is an expression of our ideals, not a rulebook. It is a way to communicate our existing values to the entire community. Our friends at Ubuntu have blazed a brilliant trail in this area. They use Drupal as their CMS, and in turn we have embraced their Code of Conduct. This code of conduct is… -
Case Study: StyleWorks Premium Photoshop Styles
23 Aug 2010 | 4:05 pmThis past March, I decided it was time to put my skills as a Drupal developer to use and launch a new online business. I knew early on that I wanted this business to be product-based, and after several weeks of playing with different ideas, I settled on selling premium Photoshop layer styles. It was the perfect opportunity to combine my love of photography and Photoshop with my passion for web development and Drupal. Several months of product development later, StyleWorks was born. The site runs on Drupal 6, and integrates with FastSpring for e-commerce capabilities. Designing the site: To… -
Cargoh.com- Drupal Ubercart powered Marketplace
19 Aug 2010 | 7:34 amIn 2009 Appnovation Technologies was asked to design and develop a Drupal based community and e-commerce website called Cargoh. The driving idea behind the site is to create a “social marketplace” for independent artists from all over the world to be able to showcase and sell their products and services. It features community tools such as forums, an internal messaging system and events section. Cargoh.com was founded by Paul and Cariann Burger when they noticed the lack of avenues for independent artists, designers and musicians to get their work to the world. They realized that some of… -
The Cara Program: Case Study
17 Aug 2010 | 7:46 amFounded in 1991, The Cara Program is a Chicago-based non-profit that empowers men and women affected by homelessness and poverty with the skills, confidence and resources to secure and sustain quality jobs and achieve long-term success. Since their founding, they have placed more than 2,500 individuals into full-time, rewarding positions with leading Chicago area companies such as ABM Lakeside, The Hilton Hotels, JP Morgan Chase, Sodexho, and more. The Cara Program sought a redesign of their static website, one that engaged visitors by quickly delivering key information that was clear and… -
DrupalCon Copenhagen: The program and pre- and post-conference activities
13 Aug 2010 | 8:35 amIt's time for another update from DrupalCon Copenhagen! This time around we have updated information on the core developer summit, the unconference, and the code sprint. Official Program First of all, we are happy to announce that the final version of the program is now available on the site. The few remaining slots in the schedule will be used for sponsor sessions and lightning talks. We'll try to keep schedule changes to a minimum, but if we do have to shuffle a few sessions around, this is the page to watch. Also, we'll make the entire program available as a PDF if you would rather keep it…
-
php|architect
-
Crystal Starting to Form
18 Aug 2010 | 11:15 amMartin Rusev is developing a new database query library for PHP 5. The project shows promise, but it has some distance to go before it competes with other available libraries. -
php|architect Summer eBook Contest Winners!
2 Aug 2010 | 7:42 amEarly last month, we sent out an email to customers of php|architect announcing a contest just for them. Participants had to look at last month's cover and name the 9 websites represented on the visible cards. We want to thank everyone who played, we loved reading some of the responses we got and wish that there had been a prize for most inventive answer. :) -
Sandcastles & Security
27 Jul 2010 | 5:00 amAfter playing with Flex off and on for a couple of months, I decided I would try to break it. I’m not a security guy at heart, but I’ve listened closely and improved my own stuff, so I quickly came up with four ways that I might be able to cause problems with Flex. Here are my results with each. To be clear, it is not my goal to be a nefarious troublemaker and break everything. My goal is to find out where things could break. -
PHP 5.3.3 and 5.2.14 are out
26 Jul 2010 | 8:09 amJuly 22 has seen the release of two new versions of PHP - the innovator 5.3.x and the previous 5.2.x. There are interesting news for both these new releases. -
ORMs and relational databases: powerful tools or dumb ideas?
22 Jul 2010 | 6:00 amObject-relational mappers are seen either as an abomination or as a life-saving tool. In the PHP world, they have appeared only in the last years.
-
php|architect
-
Crystal Starting to Form
18 Aug 2010 | 11:15 amMartin Rusev is developing a new database query library for PHP 5. The project shows promise, but it has some distance to go before it competes with other available libraries. -
php|architect Summer eBook Contest Winners!
2 Aug 2010 | 7:42 amEarly last month, we sent out an email to customers of php|architect announcing a contest just for them. Participants had to look at last month's cover and name the 9 websites represented on the visible cards. We want to thank everyone who played, we loved reading some of the responses we got and wish that there had been a prize for most inventive answer. :) -
Sandcastles & Security
27 Jul 2010 | 5:00 amAfter playing with Flex off and on for a couple of months, I decided I would try to break it. I’m not a security guy at heart, but I’ve listened closely and improved my own stuff, so I quickly came up with four ways that I might be able to cause problems with Flex. Here are my results with each. To be clear, it is not my goal to be a nefarious troublemaker and break everything. My goal is to find out where things could break. -
PHP 5.3.3 and 5.2.14 are out
26 Jul 2010 | 8:09 amJuly 22 has seen the release of two new versions of PHP - the innovator 5.3.x and the previous 5.2.x. There are interesting news for both these new releases. -
ORMs and relational databases: powerful tools or dumb ideas?
22 Jul 2010 | 6:00 amObject-relational mappers are seen either as an abomination or as a life-saving tool. In the PHP world, they have appeared only in the last years.
-
Planet PHP
-
Selenium & Saucelenium: installation and dbus-xorg-woes - till
7 Sep 2010 | 9:09 amWe're about to launch a new product, and this time it's pretty client-side-intense. The application is powered by a lot of JavaScript(-mvc) and jQuery, which do xhr calls to a ZF/CouchDB powered backend. While js-mvc has unit-testing sort of covetred, I was also looking for some integration testing, multiple browsers and all that. Selenium vs. Saucelenium I can't really say if you want one or the other. Revisiting Selenium in general, it's IMHO the only viable and suitable thing for a PHP shop. Primarily of course because all those nifty test cases will integrate into our existing suite of… -
mtrack: custom fields, snippets - Wez Furlong
6 Sep 2010 | 4:32 pmIt's time for another mtrack update; here's what's new: Add "Snippets" feature; works like pastebin, but allows for comments to be supplied in wiki syntax in addition to the code or text snippet that you're pasting Add Custom Field support. This is implemented by modifying the schema (custom fields always have an "x_" prefix). Improvements to the "custom ticket query" screens, including ability to select which columns (including custom fields) are included in the results Fix an issue with sorting the "Remaining" time column Fix some IE compatibility issues ... Continue reading on… -
The Miserable Mathematics of the Man-Month - Paul M. Jones
6 Sep 2010 | 3:34 pmIn which I present some analysis of what Brooks' Law implies for scheduling on late projects. Read on for an overview of Brooks' Law, its components, how to model its effects on your schedule, and some caveats and conclusions to the analysis. -
About 8 reasons why you should write for the php.net manual - Philip Olson
6 Sep 2010 | 1:34 pmIn response to a recent post by Hannes Magnusson titled “8 reasons why you should *not* write for the php.net manual“, I offer about 8 reasons why you should. Although at times subtle, Hannes shares good points regarding some of the frustration that comes with working on a successful (and old) Open Source project like [...] -
listen to php conferences online - Philip Olson
6 Sep 2010 | 1:34 pmI stumbled upon a nice source of PHP information today (I’ve apparently been hiding under a rock) and think other PHP geeks will be interested. The audio version of the Zend Conference Talks are online, meaning, you may freely listen to them at your leisure. So go there now, download the talk slides, then press [...]
-
PHPBuilder.com New Articles
-
Downloading and Parsing Gmail Messages in PHP
Use PHP IMAP functions to download and parse Gmail messages. ... -
10 Productivity-boosting Tools for Your PHP Development
These 10 PHP development tools will streamline and automate those menial and often repetitive tasks ... -
Creating an RSS Aggregator with the PHP SimplePie Library
Find out how easy it is to create a rudimentary custom RSS aggregator using the powerful SimplePie l ... -
Transferring Huge XML Documents in PHP with an Ajax-driven Web Interface
Learn how to transfer huge XML documents in PHP via a Web interface using Ajax and the GET method. Y ... -
The 5 WordPress 3.0 Features Worth Upgrading For
Among the 1,217 bug fixes and feature enhancements in WordPress 3.0, these five new features are the ...
-
Latest PHP Classes blog posts
-
JSClasses, JSMag, PHP Alpha 1, PHP strict typing, IndieConf - Lately in PHP podcast episode 4
30 Aug 2010 | 8:18 amJSClasses, JSMag, PHP Alpha 1, PHP strict typing, IndieConf - Lately in PHP podcast episode 4 By Manuel Lemos On this episode of the Lately in PHP podcast, Manuel Lemos and Ernani Joppert interview Michael Kimsal from the WebDev publishing company. They talked about JSClasses, the just launched PHPClasses brother site for JavaScript components. They also commented on the OpenID based single sign-on system that was implemented to reuse PHPClasses accounts on the JSClasses site to avoid making current PHPClasses users to creating new accounts on the JSClasses site. It was also discussed about… -
JSClasses - a new repository of JavaScript components
27 Aug 2010 | 12:56 amJSClasses - a new repository of JavaScript components By Manuel Lemos The JSClasses site was finally launched. It is based on the PHPClasses site but with the focus of redistributing Object Oriented Programming components written in JavaScript. This is a brief note about that site with a reference to the actual site launch post. -
Single Sign-On authentication using OpenID and other security measures
13 Aug 2010 | 7:18 amSingle Sign-On authentication using OpenID and other security measures By Manuel Lemos The authentication of the PHPClasses site users will be changed to work in a separate site. It will use the OpenID protocol, so you do not have to create a new account to access other sites. This article explains better what this means in practice and how it will affect the site users. Several new measures were implemented to provide better security to protect user accounts and prevent eventual security exploits. Advice is provided to PHP developers in order to apply similar measures to take better care of… -
PHP for Android, PHP 6 canceled, APC in PHP 5.4 - Lately in PHP podcast episode 3
26 Jul 2010 | 1:39 amPHP for Android, PHP 6 canceled, APC in PHP 5.4 - Lately in PHP podcast episode 3 By Manuel Lemos On this episode of the Lately in PHP podcast, Manuel Lemos and Ernani Joppert comment on the launch of the PHP for Android project and the consequences for the PHP market. They also talk about the cancellation of PHP 6 and the inclusion of features planned for PHP 6 in PHP 5.4, like the integration of the APC cache extension in the main PHP distribution bundle. Some of the most interesting classes nominated for the May edition of the PHP Programming Innovation Award are commented, like the PDF… -
Developing PHP applications to run natively on Android phones
14 Jul 2010 | 10:49 amDeveloping PHP applications to run natively on Android phones By Manuel Lemos The PHP For Android project was just launched. This article presents an interview with the project's lead developer. He explained how it works and what you can do to develop PHP applications that can run now on any Android device.
-
blog.phpdeveloper.org
-
New @ Joind.in – Widgets!
21 Aug 2010 | 6:59 pmWith the latest site release over on Joind.in, we've added something a bit more fun for users of the site - handy little widgets that let you embed information from the site into yours. You can see an example of it if you look to the right (well, if you're looking at the site not the feed, of course). The widgets currently let you do a few things with a few different bits of information: talks events and users Each of the widgets comes in different sizes (some are still in the works) and right now you can use a small and large template for the talks, a large template for the events and a… -
Speaking at Dallas TechFest 2010 – Building a Web Service API
27 Jul 2010 | 11:33 amJust a heads up for all of those in the Dallas/Ft. Worth area - there's a great one-day event coming up this Friday (July 31st) blending PHP, .NET, Java, new media, Joomla and WordPress into one packed day of sessions - Dallas TechFest 2010 at the University of Texas at Dallas. I'll be giving a session called "Building a Web Service API" from 10:30 - 11:45am in the PHP track. Here's a summary of the session: When is a web application more than just a web application? Hook up an API and you'll see! I'll walk you through the basics of what an API is and the concepts behind it as well as key… -
Joind.in Articles – Import & WordPress
28 Apr 2010 | 5:39 amI've been slacking a bit and haven't posted these two articles/tutorials written up by Lorna Mitchell about using the Joind.in site in two different ways - importing your event's information in and a handy WordPress plugin she's whipped up to show some of the latest information from the site's API. Importing Data into Joind.in "As a conference organiser I work extensively with the site joind.in, which allows attendees to comment on sessions at a conference. Recently the site has also started supporting sessions with both times and tracks, making it indispensable as a way of keeping track of… -
The times, they are a-changin’
5 Apr 2010 | 10:29 amLet's get the exciting part of this post out of the way first - as of today I will be leaving Atmos Energy and will be starting at JWT on Monday the 19th! I've been with Atmos for what seems like forever - this is my eighth year here - and I have grown so much in those years. I've come from a developer that barely knew OOP and couldn't design pattern his way out of a paper bag to someone completely different. If you had asked me back in 2002 if I'd be writing articles, running an open source project and have had a few speaking notches under my belt, I would have thrown an Oracle manual at you… -
Are You an Olympic Developer?
13 Feb 2010 | 8:31 pmThe Olympics have just started and I can't help but look at those competing and liken them to the development work so many of us do. What's the same, you ask? How could an international sporting event of the best of the best possibly connect with the work we do behind our keyboards? It's simple - it's all about being the best. Olympians work most of their lives (if not all of them) trying to become the best at their sport that they can be. Some of the figure skaters have even been paired since they were little kids and know each other's moves as if they were their own. They have honed their…
-
Chris Shiflett
-
Mozilla Account Manager
17 Aug 2010 | 10:09 amFor some time now, I've been happily using 1Password to manage all of my online accounts. I really like it and recommend it to all of my friends, but I do have a few reservations: It uses a proprietary format for storing my account information. (Older versions used the Keychain format.) It does not integrate with Mobile Safari or anything that's not a browser (e.g., iTunes). This means browsing on my iPhone or iPad is practically impossible, and my iTunes password has to be easy to type, leaving me vulnerable. There's currently no way for developers to make sure their sites support 1Password. -
PHP Anthem
5 Aug 2010 | 7:31 amYesterday on IRC, Andrei Zmievski mentioned a new song about PHP. Sean Coates linked to a YouTube video with the song, which I then mentioned on Twitter: PHP finally has an anthem. This is what we’ve been lacking. http://j.mp/PHPanthem /via @coates If you haven't listened yet, take a moment to do so. There are a few options: Download the song (MP3) Download the entire album (MP3) Download the entire album (CD) Watch on YouTube The song is by Lee Fernandes, who goes by @reelfernandes on Twitter. I couldn't find the lyrics online, so I created a new document on TypeWith.me to solicit… -
Auto Increment with MongoDB
29 Jul 2010 | 12:52 pmWe are currently working on an app that uses a number of technologies, including PHP, Python, and MongoDB. Recently, a need arose to use sequential identifiers for users, similar to an auto_increment column in MySQL. If you've used MongoDB, you might be familiar with the default behavior of using a UUID as the primary key. This is convenient, especially if you partition your database across servers, because you don't have to coordinate the primary key in any way. If you use sequential identifiers (as I demonstrate in this post), you can use multiple servers and interleave identifiers by… -
Change Blindness and Zooming Out
30 Jun 2010 | 3:12 pmTwo weeks ago, I had the great honor of giving a keynote at the Dutch PHP Conference. Because I had never been to Amsterdam or to the Dutch PHP Conference, I was really excited to have a chance to speak there. It was also an opportunity to give my favorite talk to a new audience. On the morning of the keynote, I followed along with conference organizer Lorna Mitchell to the RAI Center where the conference was being held. As soon as I saw the stage, I smiled. Not only would I be able to stand on a stage unobstructed by a podium or any other obstacle, the seats were arranged like a theater,…
-
Paul M. Jones
-
The Miserable Mathematics of the Man-Month
6 Sep 2010 | 3:34 pmIn which I present some analysis of what Brooks' Law implies for scheduling on late projects. Read on for an overview of Brooks' Law, its components, how to model its effects on your schedule, and some caveats and conclusions to the analysis. -
The Central Tension Of Programming
4 Sep 2010 | 8:21 amThe central tension in the software process comes from the fact that we must go from an informally identified need that exists in-the-world to a formal model that operates in-the-computer. From “Beyond Programming” by Bruce Blum, as quoted in “The Design of Design” by Frederick P. Brooks Jr. -
The Worth of Khan
3 Sep 2010 | 5:51 amIt is time to question the meaning of the words “education reform” and the investment in reforming the current system. Once the automobile was invented, there was no need for “buggy whip reform” or “horse turnaround plans.” Mr. Khan, and those like him, have exposed the current system for the obsolete monopoly that it is. [...] -
Gun-wielding ecoterrorist calls for reduction in human population, gets wish
2 Sep 2010 | 5:49 amThis afternoon James Jay Lee, a crazy person with a gun, a bomb, and an anti-human manifesto inspired by Al Gore’s An Inconvenient Truth, took hostages at the offices of the Discovery Channel in Silver Spring. He was shot and killed by police. The hostages were freed, unharmed. How many Tea Party types have done this? [...] -
Cuba Is A Plantation?
2 Sep 2010 | 5:44 am… [I]f you look at a Marxist Utopia — say, Cuba — what you’ll see is basically a plantation. At the top, you’ve got the Massa and his family — Fidel, Raul, et al. — followed by various layers of overseers — the Communist Party apparat, the secret police — and House Negroes — e.g., [...]
-
@TheKeyboard
-
Twitter Asks: Continuous Integration Landscape for PHP Developers
7 Sep 2010 | 6:58 pmThanks to my loyal followers on The Twitter, who suggested this topic. For those not familiar with the concept of Continuous Integration, I can sum it up with one very glib phrase: it lets you break your code before you buy it. By this I mean, when combined with other programming practices like automated deployment and Test Driven Development, you get a chance to see if the code you’ve written *today* breaks anything you wrote *yesterday*. If I were to design a Continuous Integration (hereafter referred to as CI) system, what would it look like? Setting aside the one I use already… -
Zend_Application and Zend_Acl
16 Aug 2010 | 12:36 pmOne of the more frustrating things about using Zend Framework is that for pretty much any topic, there is always at least 2 ways to accomplish a particular task. For a beginner with the framework, this is a humungous barrier to overcome. When I try to implement something, my first question is no longer "how will I do this" but "where the hell should I put this code?". In my case, the problem I was attempting to solve was "how do I implement ACL for one module in my application?". I'm using: Zend Framework 1.10.5 ...and Zend_Application ...and building functionality out using modules So off I… -
Snakes and Elephants Playing Nice Together: PHPUnit and py.test with Hudson
29 Jul 2010 | 1:05 pmThese days, it's becoming increasingly harder to find web applications that are homogenous in terms of the tools they use to Get Things Done. The ability to build the web front-end of your site using PHP but a critical part that requires asynchronous processing using Node.js is something that is both exciting and, well, practical. Loosely coupled components, passing messages to each other, is great architecture to try and build if you have both the skills and patience to make it work. For a project at work, I am using PHP (specifically Zend Framework) for the front-end but are using Python… -
Coding Lessons Learned
21 Jul 2010 | 5:51 pmIn discussions with my friend Kevin, I have come to realize that we have arrived at the same conclusions about the use of web application frameworks. Much of these conclusions have driven from 12+ years in building applications using them, with various rates of success. Suffice it to say, only the most l33t programmers out there are using their own frameworks, be it a custom one or contributing to the creation of an open-sourced framework. Everyone else is like me: a user of frameworks, and extremely rare contributor back to those frameworks. Since Kevin and I are travelling together through… -
Fun with custom Zend_Views
24 Jun 2010 | 1:03 pmThe other day I had a nice meeting in my basement lair with my co-workers. We laughed. We cried. We had some BBQ'd burgers, and nobody got food poisoning. As we discussed the implementation of our new fantasy gaming platform, I managed to figure out that one requirement was for an admin to upload a header and footer file for a game. "The idea here is to be able to set up a new game for someone without programmer intervention". After I got over being insulted that a programmer was not required for every tiny tweak to the site (I'm kidding) I tried to figure out how I was going to accomplish…
-
Wez Furlong
-
mtrack: custom fields, snippets
6 Sep 2010 | 4:32 pmIt's time for another mtrack update; here's what's new: Add "Snippets" feature; works like pastebin, but allows for comments to be supplied in wiki syntax in addition to the code or text snippet that you're pasting Add Custom Field support. This is implemented by modifying the schema (custom fields always have an "x_" prefix). Improvements to the "custom ticket query" screens, including ability to select which columns (including custom fields) are included in the results Fix an issue with sorting the "Remaining" time column Fix some IE compatibility issues ... Continue reading on… -
mtrack: facelift + other progress
15 Aug 2010 | 4:21 pmI've been working on some changes to mtrack (a software development tracker implemented in PHP) this weekend, with a focus on improving the user experience for the mtrack administrator. To be brutally honest, it was at best a meagre experience for the administrator, but now things are better. They're still not perfect, but it should be a low enough bar to encourage more folks to play with mtrack. I've also spent a little bit of effort to add some caching to improve performance for certain pages. For those that have tried it in the past, there's a ... Continue reading on wezfurlong.org -
OSCON 2010 Redux
25 Jul 2010 | 9:08 amAnother OSCON is done. As usual, it was a great mix of folks and ideas across many different areas of OpenSource technology. The most valuable track at these conferences (for me, at least) has become the hallway track. This is due in-part to my becoming a big-headed know-it-all; you pick up a lot of knowledge after you been to a good number of these conferences/conventions. But it is really important to me to be able to converse with fellow OpenSourcerors, whether they are working on the tools that I use on a daily basis or are working ... Continue reading on wezfurlong.org -
Gimli at OSCON
25 Jul 2010 | 9:00 amUpdate: the session is complete; you can find the slides on slideshare.net and the code on bitbucket I'm speaking at OSCON again with another new topic. This year, I'm spreading the news about Gimli, a Server Process Monitoring and Fault Analysis framework that I built at Message Systems and will be sharing with the world at OSCON. In a nutshell, Gimli will supervise a process and capture an extensive crash trace (using DWARF 3 debugging information if possible) if the process crashes or wedges, and then restarts the process. Continue reading on wezfurlong.org -
mtrack: roadmap RFC
9 Jul 2010 | 5:53 pmI wanted to share some of my thoughts on future development in mtrack, and solicit some feedback. Some of these are driven directly from user requests, and others are things that I've been thinking about on-and-off for a little while. I really want to hear your thoughts, whether they relate to ideas and feature suggestions, or whether you have some experience or anecdotes on these topics. Custom Fields I was hoping to avoid having to enable this as a feature, as I find the implementation approach taken in the original Trac to be sub-optimal, both ... Continue reading on wezfurlong.org
-
Sugar Developer Blog
-
Speaking at PHPNW 2010
1 Sep 2010 | 8:41 amI’m excited to announce I’ll be speaking at PHPNW Conference, to be held October 9th, 2010 in Manchester, UK. I’ll be doing my talk, “Developing Easily Deployable PHP Applications“, which I also did in July at OSCON. I’m working on making the talk even better based upon feedback I received, and will talk more about the various tools we use and have developed to make building SugarCRM easier. This is my first time to this conference, but judging from the lineup of talks it is not one to miss if you are in the area. The lineup has several exciting talks… -
MAMP 1.9 and IMAP-SSL
26 Aug 2010 | 2:40 pmOne of our developers recently upgraded MAMP to 1.9 on Snow Leopard, which includes imap support compiled into php but doesn’t include ssl. This meant he wasn’t able to access most of the basic mail accounts like Gmail. He was kind enough to share his steps to resolve the issue, in the hopes of saving other developers some frustration: Steps 1. Download and install the c-client imap library into a directory of your choice, build the headers. 2. Download 5.3.2 source form php, extract, and navigate to ext/imap 3. Run phpize 4. Configure, make, and copy the new objects to… -
Sugar MMM
20 Aug 2010 | 11:39 amNow I’ll fulfill my earlier promise to talk about Sugar MMM (MeterMaid Maker). I like to think this tool pulls everything together to enable minimal effort load testing. Need records? Fill up your database with Tidbit. JMeter’s GUI slowing you down? Whip up some MeterMaid scripts to do what you need to do. But I hear you complaining. ‘I don’t want to write XML scripts. I just want to type a simple command or click a button, and simulate what my users are going to do’. Rejoice, for Sugar MMM is here to answer your prayers. Setting up Sugar MMM… -
Tidbit
16 Aug 2010 | 5:23 pmIn this post, I’ll briefly describe the features and uses of Tidbit, and walk you through some simple use cases. Tidbit is a simple tool to populate your Sugar instance with large amounts of data for load testing purposes. Using a few short command line options, you can generate records with Tidbit for various Sugar modules. Using only the load command line argument, Tidbit will create that many Accounts, and records for other modules according to the ratios defined in the install_config.php file. Here’s a short example: php install_cli.php -l 100 -o The output from Tidbit… -
Sessions and IE
10 Aug 2010 | 12:52 pmWe have doing some testing on a few of our customer instances that are to be upgraded to SugarCRM 6.0.1. Everything has been going very smooth, thanks to the huge amount of focus we have put into upgrade testing over the last few months. However, we ran into one bizarre issue when doing testing on Internet Explorer. To begin with, let me give you some insight into the process we go thru to do the upgrade testing for customer instances. Our On-Demand team will deploy a copy of the customer’s instance on our internal loadtest cluster. We come in and clone the instance; making an…
-
Zend Developer Zone (DevZone) - Advancing the art of PHP
-
PHP, Flex and Mobile
7 Sep 2010 | 6:39 amRyan Stewart and Kevin Schroeder (two all around great guys) have written an article on using Flex and Zend Framework to build the front end and back end of an application respectively. Click on it, let’s talk about this for a bit. -
Zend Framework is a BOSSie Award Winner
1 Sep 2010 | 9:22 amLast week, while I was on vacation, the news broke that IDG's InfoWorld had announced its annual InfoWorld Bossie Award winners ("Bossie" stands for "Best of Open Source Software"), and that Zend Framework had won the " best open source application development software " award. -
Extending Zend Form Element to create customized Phone number field
1 Sep 2010 | 5:24 amRemember phones? (yes those things you text with.) Anis Ahmad recently blogged about how he created a Zend_Form_Element to wrap not only the display but the validation of a phone number. While it won’t handle BR-549, it does seem to handle all modern phone numbers. If you use Zend Framework, click on in, I’ll give you the details and links. -
DataModeler: Simple ORM - Part 1 Models
31 Aug 2010 | 12:50 pmDataModeler is an Open Source ORM I began writing at the beginning of the year. I had experience with ActiveRecord, but was dissuaded from using it too often because it was difficult to unit test (at least I felt so). Wanting to learn Test Driven Development better, I decided to create my own small ORM framework: DataModeler. In this article, I’ll go over creating a Model and the different ways you can modify one. -
Creating PDF Documents with Zend Framework
30 Aug 2010 | 6:00 amPHP comes with a number of options to help developers dynamically generate PDF files from within their applications. The Haru and PDF lib extensions offer a complete API for dynamic PDF generation, and there also exist a number of open-source PHP components that can be used for the same purpose. This article will introduce you to one such component, the Zend_Pdf component that ships as part of the Zend Framework, and illustrate how it can be used to perform sophisticated PDF operations from within a PHP application.
-
JQueryin
-
Adding Role Based User Access Controls to your WordPress Plugin
18 Aug 2010 | 4:49 amI recently noticed that almost every WordPress plugin I have ever used does not restrict user access based on their role. Due to the increasing popularity of multiple authors and guest posting, there is a necessity for plugin authors to implement methods of restricing plugin access based on user roles. The primary goal of this [...] -
Switching Apache from Prefork to Worker MPM in RHEL / CentOS 5.x / Fedora 13
7 Aug 2010 | 6:31 amI’m going to outline the process of switching from Apache’s default installation of MPM Prefork to that of MPM Worker. I will also be covering the proper installation of FastCGI (mod_fcgid) to further improve your server performance. This guide is ideally intended for individuals running on low-memory VPS servers as memory consumption will likely be [...] -
MongoDB Installation + Setup Guides for Debian, Ubuntu, CentOS, and Fedora
7 Aug 2010 | 5:34 amThe Linode Library has proved invaluable lately. I believe they may have one of the most comprehensive solutions for properly installing MongoDB out there. The best part, to me, is that they have separate walkthroughs for Debian, Fedora, CentOS, and Ubuntu. I would highly recommend checking out these guides when you prepare for your next [...] -
Important MongoSession Updates
19 Jul 2010 | 5:08 pmI have posted a couple of important updates to MongoSession (a PHP MongoDB Session Handler) that I’d like to share with you. I have removed the secondary indexed id field which should speed up operations as well as reduce the storage requirements. This is most beneficial for larger sites supporting a high rate of concurrent [...] -
Dear Kohana, I Detest Your 3.x Website
19 Jul 2010 | 5:58 amI’ve got a bone to pick with the Kohana development team. I just wasted a couple hours out of my day adding functionality to their core Validate class only to find that the functionality had already been added in a future revision. All I was looking to do was pass parameters to a custom callback [...]

