Wednesday, May 6, 2009

Free PHP Uptime Monitor Script: phpWatch

As we all experience, every hosting account or server sometimes fails, no matter how good the hosting company is. And, this can be accepted as normal when it is within the limits.
For better reacting to the downtimes, analyzing the health of the web application & the environment it is hosted on, uptime monitoring is a working solution.



phpWatch is a free PHP uptime monitoring script that can watch unlimited number of websites and send notifications via e-mail or SMS (for US phones).
With an Ajaxed interface, new monitors & notifications can be easily configured. And, once the cron job / scheduled task -that pings the servers in desired time intervals- is set, the script is ready to go.
phpWatch also offers an API which lets other applications to query the monitored services, get the statistics and use the notification system for sending SMS and e-mail alerts.

Requirements: PHP, MySQL
Website: http://aaron-rosenfeld.com/2008/08/28/phpwatch-relea...
Demo: http://aaron-rosenfeld.com/phpWatch/demo
Sunday, April 26, 2009

Analyzing PHP Performance: PHP Quick Profile

Firebug is the most popular tool for analyzing HTML, CSS & JavaScript based webpages. Now, there is PHP Quick Profiler (PQP), which can be called as Firebug for PHP.
It is specially focused on analyzing the performance of PHP codes. With a beautiful interface, PQP can:
  • log memory usage
  • display the number & sizes of included files
  • show page execution times
  • log database queries

PHP Quick Profiler is not a plug & play solution as every project may have a totally different structure. But, by following the setup information & the example provided, it is easy to integrate.
To see how functional it is, you can check the demo.

Requirements: No Requirements
Website: http://particletree.com/features/php-quick-profiler/
Demo: http://particletree.com/examples/pqp/
Wednesday, February 25, 2009

40 signs you really are a lousy PHP programmer

1. don't comment your code properly with something like phpDoc
2. don't see the need and/or benefits of a good programming IDE like Zend Studio or Eclipse PDT
3. have never used some form of version control like Subclipse
4. don't adopt some coding & naming standards and general conventions and stick to to them at least throughout the project
5. don't use a consistent methodology
6. don't escape and/or validate properly input or sql queries
7. don't plan your application thoroughly before starting to code
8. don't use test-driven development
9. don't program & test with error reporting on
10. don't see the benefits of a debugger
11. don't refactor your code
12. don't keep the different layers seperated using something like MVC
13. don't know what these stand for: KISS, DRY, MVC, OOP, REST
14. don't return content but echo or print it from your functions or classes
15. have never seen the advantage of unit tests or testing in general
16. return HTML, not data, strings, or objects.
17. hard code messages and configuration parameters
18. don't optimize your sql queries
19. don't use __autoload
20. don't allow intelligent error handling
21. use $_GET instead of $_POST for any destructive actions
22. don't know how to use regular expressions
23. you've never heard of sql injection or cross-site scripting
24. don't allow simple configuration, can be parameters passed to a class’s constructor, set/get methods called later, or constants defined at a runtime.
25. don't understand the benefits and limitations of Object Oriented Programming
26. misuse OOP / everything you write , no matter how small is OOP
27. you think reusable software equals/requires your code to be OOP
28. don't choose intelligent defaults
29. don't have one single configuration file
30. don't want the file contents to be seen, but give it a .inc extension instead of .php
31. don't use a database abstraction layer
32. don't keep it DRY, Don't repeat yourself. If you have to copy and paste or duplicate something your design may be off.
33. don't make a function/class/method do just one thing and don't make them interact.
34. don't try to take advantage of OOP specific features like abstract/interface classes, inheritage polymorphism & access modifiers.
35. don't optimize your application design with established design patterns
36. don't allow your user to define a base directory if you have multiple files and/or directories
37. pollute the global namespace, one option is to prefix the functions in your library with a common string
38. don't allow a table prefix when using database tables
39. use a separate template engine
40. don't take a look at established php frameworks for inspiration, most of them have advanced web dev concepts and good code