Well, that’s unfortunate (Updated)

As I’ve said before, I’ve tried to keep a local version of my site mirrored to my online version. This isn’t unusual for a lot of developers; it helps to stage your site, it allows you to make mistakes with little impact on the outside world and it allows you to be productive away from an Internet connection.

I’ve been fairly successful at doing this with WordPress 2.x. The new version seems to be a somewhat different story. My typical method of duplication is to:

  1. Copy the site folder from on location to another
  2. Copy the MySQL database with the following changes:
    1. Change references from www to my local MAMP server (www.wellys.org to wellys.org:8888)
    2. Change file location references as well (/Home/Username to /Users/Shared)
    3. Change the wp-config file for the proper local information

Not this time with 3.0:

  1. The Header didn’t change to my custom header
  2. The menus didn’t change to my custom menus

So far (cross fingers) those two items seem to be the only issues. Mmmm. I hate it when this happens.

UPDATE:

  1. The image for my header was in my media uploads folder but it wasn’t available to use for the twentyten theme (the twentyten theme only pulls images from your system and not from the media library). So I had to delete the image from my media library then reload it in the theme loader… sigh.
  2. The menus were setup but not enabled. I simply had to choose the menu in the theme menu settings then save menus and I was up to speed. That was nice.

UPDATE (again):

  1. In the past, I typically just reloaded the MySQL tables to ensure the two blogs were identical, this isn’t as easy. Instead, I have the same two issues happening again AND I’m starting to get pingbacks from my own site. This is getting to be a nasty mess.

UPDATE (June 5, 2011)

I attempted this again and it really is pretty easy. The specific directions are:

  1. Export the online wellysblog db into a SQL file.
  2. Use Textmate to replace all” www.domain.com” to “domain.com:8888” and  “/home/username/” to “/Users/Shared/” [I use my Shared directory on my Mac for my local websites. Your location may vary.]
  3. To reset the header image, go to Appearance – Header – Upload Image and use the Choose File area to reselect the desired header image then click Upload. [The db has the right link but it doesn’t load, I do this to ensure it loads my image.]
  4. To reset the menus, make sure the Theme Locations Primary Navigation is set properly. Appearance – Menus – Theme Locations – Primary Navigation should be set to Categories. [Mine is Categories, set it to what you use.]
  5. Test!

As for the pingbacks, that is a necessary evil, I’ll deal with later.

Hype – a new approach

Thanks to Jon Gruber, I learned about Hype.

Hype is a OS X application that makes it easy to create dynamic websites using HTML5 or more accurately, HTML5, Javascript and CSS3. Hype works. It is also version 1.0 so it is basic but it works, doesn’t crash and holds great promise.

I’ve been attempting to change my WELLINGTON ROAD Pictures site from a database-driven, somewhat static site to a bit more dynamic, HTML5-based site for sometime. See here, here, here, here and here. Sigh, note the last time I attempted to make changes was almost 9 months ago.

I read about Hype, paid my $29.99 and dove in. The first thing I did was try to create an identical version of my current site. Yeah, that was easy but it was also clear that my database approach to my current layout was far superior. With my current layout, when I create a new film, I upload a poster jpeg, my film and add another line to the database. No coding required. Also somewhat boring from a design perspective.

With Hype, I needed to duplicate a new scene (think web page) for each film. And I would have to embed the Notes and Time text on each page. The management overhead is considerably more using the Hype approach. The extra steps make sense for I am duplicating a static site with a content creator for dynamic sites.

What would be required if I went to a more dynamic design? My mental image of a dynamic WRP site would be to use a film metaphor. I wanted to represent each film by a frame in a film strip. I would have a limited number of films showing and the user would move the film forward or backward to see additional films. Click on a frame would show the film using HTML5 video playback with its most important attribute, play full-screen.

So I started anew with Hype. Using a film strip image, I created 4 scenes, each with a filmstrip of four films and I added very simple text buttons to indicate forward, backward and home. It was quite simple to add transitions to make the filmstrip look like it was going from left to right and right to left for forward and backward, respectively. The crossfade transition also looked nice for showing the film. Hype did advise me that the transitions were only available in Webkit browsers (Safari, Chrome) as Opera and Firefox had yet to implement them. Hype also advised me that only Safari and IE would show the H.264 forms of my films and I would have to use WebM or Theora encoding to have them play in Opera, Firefox or Chrome. [Ed. note: The 1990’s are calling and they want their browser incompatibilities back.] It worked and it took about 2 hours worth of work. Not bad!

My review of Hype:

Ease of Use: Excellent! I did read over the manual quite quickly to gain an overview of how Hype worked. I also watched the first tutorial. So maybe 10 minutes of preparation. I quickly created a basic website than went to creating a dynamic website in 30 minutes. The design guides work well and the inspector mode continues to be an excellent method of managing metadata. With my site design, I had a significant amount of duplication of scenes. Copying elements from one scene across to the other scenes worked well and accelerated my development. Speed of  development and ease of use is where Hype shines.

Power: How much can one do with Hype? Quite a bit and not enough. I am an intermediate when it comes to web design, a neophyte in HTML5 and a non-starter in Javascript. So having the ability to quickly mockup a dynamic site with user actions moving from scene to scene was quite liberating. Hype  can and will be a good replacement for Flash beginners. Instead of learning Flash and creating proprietary websites that break the internet, one can create HTML5/Javascript/CSS3 sites that break the internet. Yes, this is the problem with Hype.

Hype creates a single webpage that then using dynamic properties to display new content. It works pretty well but it does break the concept of using a specific address for specific content. I thought that my previous design had this fatal flaw as well but one can right click on any movie to obtain the link to showing the specific film. What is also nice is that the specific page does show the film using the HTML5 Video tag, which means it will allow playback in fullscreen. Hype can not provide this level of specificity. Its as bad as Flash. Bummer. While this is a show-stopper for my site, I’ll continue to comment on Hype.

An issue I had with Hype was global changes. I didn’t see a method of making a global change to all selected scenes. I wasn’t able to select more than one scene then applying a change to all. There is a complete lack of contextual changes. Quite often, I would right click to see if there was something I could do to an element. Nope. No response.

Website: Not so much. Due to Hype’s use of creating one “page” which changes dynamically, ALL content resides in Hype’s folder. For my site, this created a 675MB upload and a duplication of all of my movie and image content. What I could have done was hand edited the Javascript file and changed all of the references to those inside the folder to the pre-existing content on my site. This isn’t a deal-killer. I think a simple property that allows one to enter the address of the content would make this problem go away fast. Version 1.1 perhaps?

Summary: I like Hype. It is easy to use, provides extremely fast prototyping and can be quite powerful using web standards. [Ed. note: I’m not even going to check if it provides validates. I mean technology that is standardized for the web as compared to Flash which is proprietary.] It does break the web so I’m not going to use it for WELLINGTON ROAD Pictures but I will use it to test out concepts. I think it would be fantastic for a class in learning about dynamic websites. I look forward to version 3.

 

Step 4: Updated to be dynamic

No significant changes here. Added the required code for the site to be served by a database instead of hand-coding. A couple of small formatting changes but I’m ready to go from my old but lovely way of serving videos, Shadowbox to spanking, new HTML5.

Step 4

One update and one non-update:

Update; looks like H.264 is getting to be the standard for video.  Based on the MPEG LA announcement, H.264 will be forever free if the video being served is free. Due to this announcement, I’m going to focus on serving H.264 only and forget about…

The non-update: Jillion is running out of August. Its August 28th and no sign of their sublime video code. When it shows up, I’ll take a look until then I’m off to do my own thing.

Update: I went ahead and implemented Shadowbox again. I like the way it works, I don’t like that it doesn’t use the new HTML video selector. The new one in Safari has a much nicer controller and the ability to go full size. Jilion, Ferris Jilion?

Step 3: Layout site

With Jillion off in the distance, I decided to work on the site layout as compared to determining my video playback scheme.

The site looks very similar to the original site. I made some changes such as the WELLINGTON ROAD Pictures graphic, font colors and spacing. What was interesting was I have yet to use an ID or Class. Everything works semantically, when I need to reference an element, I use the a descendent selector i.e. “nav li” as compared to a “div class=nav and li class=navli”. It is a much simpler way to develop CSS.

Step 3

Update: Just realized that the “wrapper” for the site, which was a <div> then became an id for <body>, isn’t needed. I can use <body> as my wrapper, which means there aren’t any id’s or class’ in the file at all. Not sure if this is right or wrong or works, just is.

Step 2b: Video (continued)

First, I need to make a comment as to how I manage the site content. I use a database and PHP to manage the content. This allows me to keep the number of pages to a minimum and adding content is absurdly easy. That said, I’m building this HTML5 site using static content. Once I determine how to create my desired HTML5 site, its somewhat child’s play to convert it into a dynamic site.

So how did my next iteration work? Not bad, as you can see in Step 2b, the site is starting to resemble my current site. I have a poster image that links to a video when clicked. The time is in the right place and I need to update notes.

Note on notes: It is properly formatted as an “aside” and I’d like to make the site more friendly by using JS to display the notes on the page as compared to going to another page.

Step 2b

As I remake the site, I need to determine if Jilion is something I should consider. They claim to make a great cross-browser, HTML5 compliant, video player. Mmmmm. (and based on comments by one of my favorites; John Gruber/Daring Fireball, it is the “bee’s knees” (my words, not his).