Blog

  • Setting up a Local Test Environment with Virtual PC and Windows 7

    January 19, 2010

    So, what do you do when you need to write code that uses PHP, Apache, and MySQL all on the same computer? The simple answer is to install them using a WAMP or MAMP package. However, this approach has a few drawbacks:

    • You end up with a jumble of server applications running on your computer all the time.
    • Your configuration of the various packages will be different from the actual server environment you’ll be using, so some of the setup details will be different. The ported versions of PHP, Apache, and MySQL aren’t exactly the same, and the idiosyncrasies of your home operating system and hardware configuration can lead to weird bugs.

    Plus, it’s just plain messy! The ideal case, from the testing perspective, is to actually have a separate development server running the way that your deployment server is set. And that server is likely to be a LAMP (Linux / Apache / MySQL / PHP) setup running an enterprise version of Linux. My websites, for example, run on a Media Temple dedicated virtual server using CentOS, which is the “community” version of commercial Red Hat Linux. So, if I’m developing a dynamic web site using PHP/MySQL, it would be best if I could actually set up a separate server on my home network that is configured in the same way. This works great…unless you don’t have internet access, which is something I face pretty frequently when I’m working away from the house.

    The solution to this conundrum is to actually run a virtual server on my development laptop. I’m using Virtual PC, which is free from Microsoft, to create a 256MB CentOS machine. The tricky part is configuring it to connect to the laptop’s networking subsystem and CentOS to recognize it, but I now have a good portable setup. When I want to do development, I can start up the Virtual CentOS machine, and point my web browser to it. I can also SSH into the CentOS machine just like any other, which makes the development process very similar to working with my Media Temple (dv) server. The closer I can make each environment to each other, the more fluid my development workflow will be.

    A big advantage of using virtual machines is that all the messy configuration details are contained in them, and the rest of my laptop remains pristine. I can also take snapshots of each virtual machine and restore them to saved states, which makes it easier to try different server configurations.

    The details of the setup I need to reconfirm, but I have a Wikilab Entry that maintains my working notes.

    Read more
    DSri Seah
  • Tuesday Staff Meeting

    January 19, 2010

    Another late Tuesday update!

    I’ve spent most of the day installing a stand-alone web server environment on my laptop so I can actually work at Sid’s photo studio, where I share space a couple of days out of each week. The only problem with the studio is that there’s NO INTERNET ACCESS, which makes developing websites that require PHP and MySQL practically impossible. I have it largely working now, but that’s a different post.

    Current Agenceum projects are rolling forward, but I am running them like regular design projects, which means they are taking a lot of time for very little income. I am, however, logging the time it takes to do each job and noting where greater efficiencies can be gained.

    The biggest hurdle right now is how to provide inexpensive website maintenance.  Making the website templates themselves is relatively simple; it’s the content integration that takes a long time. I’ve delivered websites to some Agenceum clients as ZIP archives of the files, inviting the more inquisitive to try editing the HTML themselves. I don’t think, however, this is a good solution because no one in their right mind should want to edit HTML. I am starting to think that I need to create an online solution based on some simple form entry that’s capable of talking to other hosts. Otherwise, I would have to host the websites myself. So I am starting to look into more generic PHP frameworks like CodeIgniter, which is also the basis of the new version of Expression Engine. Since I use Expression Engine for my davidseah.com site, I figure it might be worthwhile to look into; what I want are really simple database-driven websites, and I am afraid that tools like ModX and WordPress are even too complicated for what I’m envisioning. I’ll have to think about this some more.

    So that’s where we are right now. I’m closing the current projects as quickly as I can, but I am not happy with the idea of delivering static HTML files as the final deliverable. This is not a real business solution.

    Read more
    DSri Seah
  • Artistic Integrity and Profit

    January 19, 2010

    SUMMARY: I expand my “create then show” mantra to include the means of producing products and distributing them. Maybe this is the way to sell out with integrity. (more…)

    Read more
    DSri Seah
  • Template Conversion Notes

    January 18, 2010

    Template Half Conversion Today I did the first integration from an existing shell template. The final copy and images have not yet been delivered, so I haven’t set any text or background colors, but the template-based site is in place.

    Setting up the development environment took about 10 minutes. The steps:

    1. Set up staging server on davidseah.com (probably should have set this to agenceum.com, now that I think about it.
    2. Set up staging server client area and permissions.
    3. Set up local directory for site in client’s project area.
    4. Set up Dreamweaver CS4 site profile for local and remote access.

    The total integration time took about 60 minutes. The steps:

    1. Find, copy Template from Source
    2. Create baseline menu items from provided page list in master file.
    3. Set up destination HTML files in menu items.
    4. Set page title.
    5. Copy/paste master file as destination HTML files.
    6. Edit each HTML file, adding content and changing the BODY ID.
    7. Test click-through, adjust content lengths slightly but avoid editing and refactoring content because this is not included in the base site offering.

    In anticipation of picking colors, I set up a design template in about 5 minutes:

    1. Take screenshot of semi-populated HTML site.
    2. Copy/paste into Photoshop CS4, isolate background.
    3. Save to local client folder on development machine; synch with server.

    I then updated the client in Basecamp, which took about five minutes:

    1. Update milestone as complete, add new milestone for Client Content deadline.
    2. Updated Project Overview to show link to the staging server area.
    3. Added To-Do and Dependencies Requests in a message to client, noting delivery and next steps.
    4. Archived and uploaded HTML files as single ZIP file.

    Wrote this blog post, which took about 15 minutes:

    1. Saved JPEG of Design Template with label “DR01” in corner.
    2. Uploaded JPEG to blog image directory.
    3. Created new category, “HTML Integration” and wrote this post from integration notes.

    This information will help me determine what my effective hourly rate is. The total time spent so far is 80 minutes, with the bulk of the time going into content integration. Some of the setup stuff can be automated eventually with a few scripts, saving further time.

    Read more
    DSri Seah
  • Five Podcasts Down: Production Notes

    January 17, 2010

    Podcast Studio Back in October, I started a podcasting experiment with portrait photographer Sid Ceaser. We didn’t have any specific goals other than to see what it would be like. Sure, I was excited for the chance to play with new gear and put some old software to work. And I was pretty sure that Sid and I would finally get some good rants recorded that could bottle the energy we have to prodding each other to make stuff. Figured it could be good stuff. (more…)
    Read more
    DSri Seah