Archive for April 2008
A Painless Remote Projects Synchronization Utility
So, there you are, asking yourself – “How the hell am I going to deploy my next application across multiple servers?”. First, you write some shell scripts. One that checks out the project from the repository and the other one that runs all the tests. Then, you master the synchronization technique and realise that combined with the power of a Cron job, nothing and no one can stop you. Finally, you become a Jedi.
But, unfortunately, this is not a movie and you are not Luke Skywalker. So, forget about reinventing the wheel and use Syncman instead.
What is Syncman?
Syncman is a Limb3 based application developed by Pachanga (LIMB, WACT, SimpleTest). It simplifies projects remote deployment and synchronization by providing both nice Web UI and basic shell interface.
Features:
- Nice web UI for non-technical personnel
- Simple file based projects configuration
- Public keys infrastructure for secure passwordless authentication
- Efficient rsync based synchronization(but not limited to rsync)
- Subversion integration
- Pre and Post-syncing hooks support
- Shell based interface
Zend Framework Books
Zend Framework in Action
Zend Framework in Action is a comprehensive tutorial that shows how to use the Zend Framework to create web-based applications and web services. This book takes you on an “over-the-shoulder” tour of the components of the Zend Framework as you build a high quality, real-world web application. This book is organized around the techniques you’ll use every day as a web developer—data handling, forms, authentication, and so forth. As you follow the running example, you’ll learn to build interactive Ajax-driven features into your application without sacrificing nuts-and-bolts considerations like security and performance.
Guide to Programming with Magento
This highly anticipated book will give you the insight you need to successfully manage and customize your Magento Commerce installation.
The book takes you from installation to deployment of this popular e-commerce open source software. Magentos flexibility and Zend Framework based structure have made it an increasingly popular e-commerce solution.
Guide to Programming with Zend Framework
Learn to master the secrets of the Zend Framework with this new book from php|architect’s popular Nanobook series.
Written by Zend DevZone editor and well-known PHP expert Cal Evans, php|architect’s Guide to Programming with Zend Framework helps you understand the Zend Framework through a detailed roadmap into its features and functionality.
Zend_Debug, meet PHP_Debug
The Zend Framework community is currently reviewing the proposal process. This is a good thing, considering that the community has grown quite a bit in the last year. I remember that one of the questions asked in the Q&A session for Zend Framework 1.0 was:
Q: Are there any plans for making Zend_Debug fancier? In a way of looking like Xdebug.
A: No, currently there is no specific proposal for enhancing the Zend_Debug class.
Hopefully, the new proposal system will help enhance some of the existing components, including Zend_Debug, and speed up the development process of new ones. In the meantime, if you think you need more diagnostic information, I’d recommend you download PHP_Debug. If you are familiar with Symfony, then you’ll be happy to know that PHP_Debug provides a similar Web toolbar.
The Definitive Guide to Symfony:
“During both the development and deployment phases, developers require a consistent stream of diagnostic information in order to determine whether the application is working as intended. This information is generally aggregated through logging and debugging utilities.”
That’s exactly what a developer needs when developing a Web application. I think Zend Framework should provide diagnostic information by default. At the moment there’s no way to know if an action was forwarded to another Action Controller, if an Action Controller executed a pre or post-dispatch method, if a model executed the same query twice, or if a variable was registered with the Request object.
By the way, make sure you don’t miss the next Big Zend Framework Q&A session.
9 PHP Debugging Techniques You Should Be Using, by Adam Charnock.
Search your code for vulnerabilities
I’m a big fan of PHP_CodeSniffer and I think it’s a great development tool, it ensures that you write code that is easy to read and maintain. But, what about making sure that the code you write is secure and doesn’t have any vulnerabilities?
Right, there’s another tool for that…
PHP Security Scanner is a tool written in PHP intended to search PHP code for vulnerabilities. MySQL DB stores patterns to search for as well as the results from the search. The tool can scan any directory on the file system.
Web Application Security Scanner
Web security is possibly today’s most overlooked aspect of securing the enterprise and should be a priority in any organization.
Recent research shows that 75% of internet attacks are done at web application level.
Web application security scanners ensure website security by automatically checking for SQL injection, Cross site scripting and other vulnerabilities.
There are a few good security scanners that you can use to test the security of your site, and Scavenger is one of them.
Tell me more about Scavenger…
Scavenger is an open source real-time vulnerability management tool. It helps you respond to vulnerability findings, track vulnerability findings, review accepted or false-positive answered vulnerabilities, and not ‘nag’ you with old vulnerabilities.
Scavenger parses the results from a Nessus scan and stores them in a MySQL database. From that point, a user can login to a web interface and answer a vulnerability as ‘addressed’, ‘accept’, or ‘false-positive’. If an administrator answers accept or false-positive, Scavenger will not insert a new vulnerability again. However, if a user marks a vulnerability as ‘addressed’ and it comes up again in a scan, it will insert a new vulnerability into the database.
Software Engineering for Web Applications
A twelve-year-old can build a nice Web application using the tools that came standard with any Linux or Windows machine. Thus it is worth asking ourselves, “What is challenging, interesting, and inspiring about Web-based applications?”
This textbook written by Eve Andersson, Philip Greenspun, and Andrew Grumet for the MIT course “Software Engineering for Internet Applications”, is intended for juniors and seniors in computer science. It assumes that you know how to write a Web application and debug it. It does not assume knowledge of any particular programming languages, standards, or protocols. The most concise statement of the course goal is that “The student finishes knowing how to build amazon.com by him or herself.”
PHP ClickHeat: See where people aren’t clicking
ClickHeat is an open source visual tool for showing “hot” and “cold” zones of a web page. It allows you to see which spots users click on most, and which spots are being ignored.
See where people aren’t clicking
Your current web analytics software tells you about your popular pages, but it doesn’t know about the pages which aren’t viewed. With ClickHeat, unpopular links and pages are immediately obvious.
See where people are clicking that they shouldn’t be
Do you have some blue text on a page that people are mistaking for a link? Do you have links in a small font size, which people are missing when they try to click? Do you have an unlinked logo or other graphical device that people think they can click on? Standard web analytics software cannot detect any of these, but with ClickHeat it’s immediately obvious.
CouchDB: A document-oriented database accessible via a RESTful HTTP/JSON API
CouchDB was accepted for incubation at the Apache Software Foundation a couple of months ago. My congrats to the development team! It’s a very interesting and challenging project, and the fact that it was accepted for incubation will definitely get the team exited.
What is CouchDB?
- A document database server, accessible via a RESTful JSON API.
- Ad-hoc and schema-free with a flat address space.
- Distributed, featuring robust, incremental replication with bi-directional conflict detection and management.
- Query-able and index-able, featuring a table oriented reporting engine that uses Javascript as a query language.
Tutorials
Integrating Zend Framework and Doctrine
Ruben Vermeersch wrote a very interesting article that will guide you through the steps needed to set up a project using both the Zend Framework and Doctrine. He explains step-by-step how to set up a simple message board application.
Test and Share Your Code On-Line
Codepad is a pastebin that runs your code for you. It was written by Steven Hazel. Codepad works like a compiler or interpreter, not like the read-eval-print loop of an interactive interpreter prompt. If you want to print the value of an expression, you need to use your language’s print command. If your language requires a “main” function, your program won’t work in codepad without one.
Steven has added support for many languages, including PHP, Python, Ruby and Perl.
How it works
Code execution is handled by a supervisor based on geordi. The strategy is to run everything under ptrace, with many system calls disallowed or ignored. Compilers and final executables are both executed in a chroot jail, with strict resource limits. The supervisor is written in Haskell.
“Hello World” examples: http://codepad.org/hello-world
Excellent tool!


