How to Move a Magento Installation
It is common as a Magento developer to have to move a Magento installation from one location to another. The normal way to move a site is to compress the web directory, dump the database, move the data to the new location, and finally adjust the configuration as needed. Moving a Magento commerce site requires the same general procedure. However, the devil is in the details.
“It’s the little details that are vital. Little things make big things happen.” –John Wooden
Why We Are Stuck with Internet Explorer 6
UPDATE: We are no longer stuck with IE6. Yay! 🙂
Among web developers, Internet Explorer 6 is considered a horrible browser. However, amongst many corporations, it is the standard browser that is used throughout the organization. One reason for this is due to the great amount of difficulty for a large organization to change. Every page on the company intranet has to be tested and fixed. Additionally, moving away from Internet Explorer 6 typically involves a change in operating system.
N-Tier Model-View-Controller
Overview
The classic MVC (Model-View-Controller) architecture (see Fig. 1) has the View communicating with the Controller and the Model. However, this leads to coupling between the Model and View, View and Controller, and Controller and Model. A case could be made that is a significant amount of coupling. Unfortunately, coupling is the bane of software development. Additionally, coupling makes software hard to change. Instead, an N-Tiered approach to the MVC pattern was created to alleviate the coupling and create a more flexible design.
Read more…
Easy PHP Debugging with PopUp PHP Debugger
If you have doing PHP development for any length of time, then you have ran across the need to perform PHP debugging without the use of a full-blown debugger. In many cases, print_r works fine. However, echoing debugging text to the page will often break the layout. A method was needed that would output text while also not breaking the layout.
To satisfy this constraint PhpPopupDebug was written. Actually, parts of this code was found elsewhere a very long time ago. The original source is no longer known. As it was used, changes to the code were made to make it easier to use and more robust. When a variable is dumped to the output, a JavaScript window is opened in the background with the dumped data. Therefore, no text is visible on the page.
Quick and Dirty PHP Test Driven Development
A long time ago, a unit testing framework for PHP was needed. At the time, there were many preexisting and comprehensive unit testing frameworks. However, a framework was needed that had the ability to run the tests from a browser. Additionally, a framework was required that would easy to integrate into a project while not increasing the footprint too much.
To satisfy these constraints, a PHP unit testing framework called QnDPhpUnitTest was written (UPDATE: This has been superseded by KissTest). Interestingly, the framework and the project that the framework was originally written for were created simultaneously. When an assert was needed, the assert method was written and then the assert was performed. One of the key benefits of this framework is the ability to include a single class and then start writing tests. Also, the framework is so simple that learning how to use it should take no more than a 5-10 minutes.
Building the Perfect Ubuntu 10.04 LAMP Server
This post will detail the series of steps that are required to set-up and configure a LAMP server using Ubuntu 10.04 LTS. The server will have all of the normal features that everyone has come to expect.
Specifically, it will have the following features:
- Locales will be set properly.
- MySQL will be secured.
- MySQL Query Caching will be configured.
- Iptables will be configured (optional).
- Alternative PHP Cache (APC) will be installed and configured.
- Web directory permissions will be set.
- Virtual hosts will be created.
Resetting the MySQL Root Password
This post will describe the series of steps that are needed to reset the MySQL root password when either the root password is known or it is not known. In theory, the later should never happen. However…
“In theory, there is no difference between theory and practice. In practice, there is.”
-Yogi Berra
Configure TLS and SSL in Ubuntu 10.04 LTS
Configuring TLS/SSL in Ubuntu 10.04 LTS (Lucid Lynx) is a breeze. This post will outline the series of steps that are required to SSL up and running. Additionally, it appears as though the long-standing limitation of requiring different IP’s or different ports when configuring SSL using Name-Based Virtual Hosts is no longer a limitation. This is certainly great news indeed.
Read more…
First MCPD Test Passed!
The first of the tests (70-536) required for the MCPD certification ASP.NET Developer 3.5 on Visual Studio 2008 has been passed with a score of 976/1000. Since it was the first test that has been attempted, a large amount of effort went into the process of preparation. The minimum passing score for the test is 700. Perhaps, the amount of studying to get a 976 was a bit of an overkill.
The vast majority of the studying was performed using the MCTS Self-Paced Training Kit (Exam 70-536). The secondary source of material for studying came from Niall’s blog.
Niall’s study guide is a collection of targeted links into the MSDN Library. Lastly, but certainly not least, study assistance software of my own creation (i.e. Project Serenity) was used to help prepare.
The next test in the lineup is 70-562.