Communication Styles and the Future of phpWebSite

I have been pondering for some time whether to convert existing web sites from phpWebSite to WordPress. It is difficult for me to think about these things since I quickly jump to the implementation details. So I decided to back off and look at the problem from the viewpoint of communication styles. For this quick analysis I am going to compare the diary, magazine, and product brochure formats to their Internet counterparts. These communication styles have existed for a long time in printed form. I think a little pondering on where these formats came from and where the web site versions of these formats are going will give me a better strategic view.

Diary Format

  • History – The diary format is the model that blogs originally copied.
  • Frequent Updates – One of its characteristics is that it generally involves short posts on a daily basis. This feature of blogs was quickly adopted by news organizations for syndicating news over the Internet.
  • Conversational tone – A key characteristic of both diaries and blogs is that they have a conversational tone.

Magazine Format

  • History – The magazine format came about as printed magazines established a presence on the Internet.
  • Monthly Updates – Originally the web sites mimicked the printed version and were updated on a monthly basis. As magazine publishers adapted to the positive and negative impacts of the Internet on their business, they eventually adopted RSS syndication for more frequent news updates(daily) and email newsletters for less frequent updates(weekly).
  • Both formal and conversational tones – The magazine format has traditionally had a mixture of both a formal tone and a conversational tone. The articles had a professional/formal tone while the editorials has a more personal tone.

Product Brochure Format

  • History – The product brochure format came about as businesses wanted a web presence to support their sales operation. Originally these sites were fairly static web sites that reproduced the sales information that already existed in brochure form.
  • Infrequent Updating – Most of these sites were static sites. It was commonly understood that if you wanted current information you need to call them on the phone. Many business site have since migrated to dynamic content. FAQs became an easy and quick way to support customers after the sale.
  • Primarily a formal tone – For the most part the tone used by these sites can be described as professional.

So how does WordPress and phpWebSite stack up in these areas?

  1. WordPress
    • The origin of WordPress is as a blog and it is one of the best blogs out there. It has a great development community out there.
    • WordPress has shown a lot of versatility and has expanded into the magazine format. Here is an example of the magazine format, Darren Hoyt Dot Com » Blog Archive » Mimbo v1.1 Released.
    • Although you can use WordPress as a simple product brochure or Internet sales site, it does not scale up as well as other packages. A few months ago I wrote a post in which I said that a nonprofit with a “product brochure” styled site might be better served by going to a more conversational format.
  2. phpWebSite
    • The blog portion of phpWebSite was originally called Announcements. phpWebSite can function as a blog but WordPress is free and a better blog.
    • The magazine format is probably the best use for phpWebSite. The “What’s Related” feature is a great feature. Similar features can be added in WordPress via plugins. I think that articles and calendars are the areas of with the greatest potential over WordPress but the phpWebSite development community is more limited.
    • Like WordPress you can use phpWebSite as a simple product brochure site but it does not scale up as well as other packages. Using the template system for product brochures is tempting because it may integrate the key data while allowing it a bit more scalability.

So there you have it. Both WordPress and phpWebSite are pursuing the magazine formats but phpWebSite is a more natural fit for the magazine format at this time. WordPress has a much larger development community but it has many diverse interests. The primary interests for WordPress is the blog format so it is hard to tell who has the better development community in the magazine format area.

WordPress Plugins | alexking.org | Share This

This plugin will allow your visitors to share your content via social bookmarking sites and/or e-mailing the post to a friend.

Source: WordPress Plugins | alexking.org

I decided to add another plugin to the mix. To get it to work the way I wanted it to:

  1. I edited the plugin itself to turn off the automatic placement of the link.
  2. I edited the Main Index Template and put the link, <?php akst_share_link(); ?>, on the same line as the comments.
  3. I adjusted the stylesheet.css to have a little more bottom padding for the categories class so the share_this icon did not overlap the bottom border.

My theme does not validate anymore?

After installing WP 2.2 I found out that my HTML would not validate any more. It was generating annoying errors about using ID=”links” more than once on a web page. All of these errors were occurring courtesy of the built-in links widget. It took me some time but I finally found the problem. I noticed that I was not getting the same type of error when I used a different theme. That led me to look at the functions.php in both themes. In the theme that worked correctly the links widget was redefined. In the Andreas09 theme the links widget was not changed. So I copied over the code that was working properly and integrated it into the Andreas09 theme. After a suitable amount of praying and crossing of my fingers and toes, I switched over to the modified version of the functions.php and refreshed the screen. Lo and behold, it worked!
[tags]wordpress[/tags]

WP 2.2 Installed

I just got finished installing WordPress 2.2. Everything went well except that I got nailed by the wp-cache plugin.  I had disabled it before I started the upgrade per the upgrade instructions. When I tried to run the upgrade.php file in the last step of the upgrade procedure, I got a blank screen.  After a little debugging I had to manually edit the wp-config.php and remove the line, define('WP_CACHE, true) line.

WordPress 2.2

On behalf of the entire WordPress team, I’m proud and excited to announce the immediate availability of version 2.2 “Getz” for download. This version includes a number of new features, most notably Widgets integration, and over two hundred bug fixes. It’s named in honor of tenor saxophonist Stan Getz.

Read more …

I typically try to update my WordPress web sites with the changed files since Mark provides a changed files archive. For kicks I decided to use WinMerge to compare the new version to the old version. After spending a couple of minutes creating a WinMerge filter to omit the wp-content directory, I see that there are 148 changed files and 22 new files. My filter may not be entirely accurate but that is a lot of files. Updating to the new version with an updated file list does not make sense to me. I am going to upload the new WordPress version to my website and upgrade to the latest version the “normal” way with one little modification. Due to problems I have had in the past with deleting files on my web server, I rename the original directories rather than deleting them.
[tags]wordpress[/tags]

Ricardo Galli, de software libre » WP-Cache 2.1

I finally bit the bullet and added the WP-Cache plugin to the site. I do not have a response time problem but this should help if I every get Dugg. I was a little concerned it might break things. Some folks are big fans and others says it causes more problems than it is worth. So far everything has worked as expected. Hopefully this is the end of my blog plugin changes.

Link to Ricardo Galli, de software libre » WP-Cache 2.1
[tags]wordpress[/tags]

Fixing My Technorati Tag Cloud widget

I have been using the “My Technorati Tag Cloud” widget for several weeks now and I finally decided to fix the HTML validation errors.

  1. The first problem is the embedded CSS in the body of the page. It should be in the header or in the stylesheet. I prefer the stylesheet fix so I commented out lines 169 through 174 and inserted the stylesheet info into my stylesheet.
  2. The W3C validator expects the widget to be a list item. So I added a <li> before the <h2> on line 179 and a </li> behind the </ul> on line 206.

For those who are not familiar with this plugin here is a short description and a link to its author.

This plugin will download your most used Technorati tags and display them in a tag cloud on your blog just like they show up on your Technorati profile. As always this plugin has caching so that it will only talk to technorait’s web site one an hour.

Source: Warping On » Blog Archive » My Technorati Tag Cloud
[tags]css, webdesign, wordpress[/tags]

Embracing the Ultimate Tag Warrior WordPress Plugin

I finally decided to bite the bullet and switch over to the Ultimate Tag Warrior. The Related Posts plugin “worked” but the posts it said were related were not very related. I was reasonably happy with the Technorati tag cloud. It is closely linked to categories so it showed me were most of my posts were focused but I was concerned about the dependence on Technorati. So I decided to change my tagging.

Adding the UTW plugin is relatively complex task by plugin standards since you need to manually edit two theme templates, main site index and single. The automatic version would have been acceptable except the results were not right so I decided to edit the files manually. Getting the UTW tag cloud in the sidebar required me to download another widget. I may end up hacking that widget since I would prefer an alphabetic list.

So everything is working.

Link to Ultimate Tag Warrior WordPress Plugin for Dummies « Lorelle on WordPress
[tags]wordpress[/tags]

Adding Related Posts to your WordPress blog

Today I was looking at a list of the top 30 WordPress plugins in blogosphere and decided to give the related entries plugin a try. Adding a related posts section to each post should make the post more informative and handy. It was a little more complicated to add the plugin to the blog than most plugins since I had to edit your my main Index template, my single post, and my archives in my theme. The first time I edited the main template it was fatal and I had to use the back button to fix the problem. After a little tinkering I got related entries working on all three templates and looking okay.

WordPress Themes by Sadish » MistyLook Version 3

Recently I found out that my Version 2 theme had a problem with the MistyLook options screen under the latest version of WordPress and I could no longer exclude pages from the navigation bar. Before I went about hacking his code to make it work I decided to see if Sadish had upgraded his theme. I was pleasantly surprised to find that Sadish had upgraded MistyLook to Version 3. Not only had he fixed this problem but he added several other nice features such as, drop shadows, custom block quotes. The drop shadows looked nice on the posts so I am going to leave them in. I did not like that the drop shadows were being applied everywhere so I turned them off for the sidebar. Although he added a custom image header feature, I overrode it in the header.php so I could use my existing image. At another site I overrode the code so that I could use my rotating random images code. Great job Sadish!

Link to WordPress Themes by Sadish » MistyLook Version 3

Use an XHTML Sitemap for Better Indexing

Link to Use an XHTML Sitemap for Better Indexing

I just finished adding a Sitemap page to my blog using the instructions on post I have linked to above. Chris did a great job. The instructions were easy and having a single page of all my pages is pretty handy. I think Google has done a fine job indexing my blogs but occasionally I have had trouble searching for a post I have made in the past.

WordPress 2.1.1 dangerous, Upgrade to 2.1.2

Long story short: If you downloaded WordPress 2.1.1 within the past 3-4 days, your files may include a security exploit that was added by a cracker, and you should upgrade all of your files to 2.1.2 immediately.

Longer explanation: This morning we received a note to our security mailing address about unusual and highly exploitable code in WordPress. The issue was investigated, and it appeared that the 2.1.1 download had been modified from its original code. We took the website down immediately to investigate what happened.

(more…)

Link to WordPress 2.1.1 dangerous, Upgrade to 2.1.2

Just when you thought it was smart to perform changed files upgrades, they find a security breach and recommend you flatten your installation and start over with a clean install. Oh well!

Using Version Control to Manage Web Site Changes

A while back I decided that Version Control software was a better way for me to manage web site changes. This adds a little bit more documentation and incremental control over the daily backups. For small shops Version Control looks like overkill but it is simple to use. So I bit the bullet and setup a Subversion repository on my Windows-based computer. Initially I thought I would only keep my theme customizations and content in the repository but I eventually decided to keep the entire directory. Today I decided to document the process I use to update a website. In this case I am upgrading WordPress from 2.1 to 2.1.1 with a zipped file of changed files. I will be using several open source programs in addition to Subversion and TortoiseSVN. I will be using WinMerge to compare directories and FileZilla to upload the files. There are many suitable programs for these tasks. These are the ones I used.

Step 1 – Update your working copies

Use TortoiseSVN to retrieve a clean working copy from the repository.

Step 2 – Download the updated files and expand into directories

In my case the updated 2.1.1 files are in a zip file which follows the WordPress directory structure. I download the file and expand it into directories. I also print the updated file list. I am going to use the file list as my check list for the rest of the process. Stuff happens!

Step 3 – Compare the directories and update the files.

I use WinMerge as a quick check to compare the directories. I have projects set up to automate my comparison settings. It should show that the files I am updating are the ones on the file list. Surprisingly I find I am missing a couple of files shown on the changed file list. I opt to download the full source and add the missing updated files to my updates. I use WinMerge to copy the changed files over the repository files.

 Step 4 – Update the website

In this step I use FileZilla and the file list to upload the changed files. It is a real plus that my host provider allows me to use sFTP. Every extra bit of security helps keep the hackers away. Since this is a minor update I will leave all of my plugins active during the upgrade. WordPress recommends that you deactivate your plugins before updating in case you run into problems. I sort the local directory based on Last Modified date so that the changed files are on the top and easier to find. I move from directory to directory updating the changed files. FileZilla continually reminds me that I am overwriting existing files. That is good. There are only four directories and twenty file so the process goes quickly. When I have finished uploading the files I go to my browser and click on the Site Admin link in WordPress. It prompts me with links to complete the upgrade. This is normal. I follow the links and finish updating the site within a minute. I do a quick check of the website to make sure everything is still working. I have finished updating the web site.

Step 5 – Commit the changes to the repository

I use TortoiseSVN to commit the changes and with a description. When I am finished I use TortoiseSVN to check the log and make sure that the  description I just added makes sense. This is probably the last time I will look at the description until I need to understand it sometime in the future. I am happy with what I wrote so I move on to my other projects.

Technorati tags: , ,

Blockquote problems with paragraph spacing in the visual editor

I decided to turn off the visual editor in WordPress today. It has an annoying habit of removing the <p> and <br /> tags when you switch to the code tab. This would not be a problem if it did not remove the blank lines inside a <blockquote> tag, too. This problem occurs when you start out on the visual tab, go to the code tab, return to the visual tab and then go back to the code tab. The second time you go to the code tab the blank line disappears. The end result is a paragraph with all of the sentences bunched together in one paragraph. Yea, it looks pretty ugly. I cannot see how this could be per design, so I submitted this as a bug.

I found that if you use the manual editor, the <p> and <br /> tags and the line spacing get stored with the post correctly. This change should work out for me since I write most of my posts using LiveWriter and I use the manual editor primarily to tweak the html.

The problem that started me on this merry chase was a subtle line spacing issue with paragraphs inside a blockquote. I did not know that my CSS for paragraphs inside a blockquote used margin: 0px; and this margin value removed the blank line that normally follows a paragraph. Changing this code to margin: 0 0 15px; restored the normal paragraph spacing. Of course, the source of this problem is obscured if the visual editor keeps stripping out the <p> tag.

idproxy.net: Use your Yahoo! account as an OpenID

In an ideal world, some or all of the sites with large user databases (Yahoo!, AOL, Google, Amazon and so on) would act as OpenID providers, allowing their users to sign in to OpenID supporting sites around the Web. Until that happens, people who want to use OpenID need to sign up for Yet Another Account to do so.idproxy.net, launched today, is my attempt at speeding up the process. It uses Yahoo!’s Browser-Based Authentication API to allow you to sign in with a Yahoo! account, then lets you create one or more OpenIDs (of the form something.idproxy.net) to use with sites that support the OpenID standard.

In effect, it lets you use your Yahoo! account as an OpenID.

Source: idproxy.net: Use your Yahoo! account as an OpenID

Okay, I got distracted again. This time it was OpenID. It did not take me too long to setup an Open ID using my Yahoo! account and figure out how to authorize logins. It took me a little longer to figure out why I may want to use Open ID.

The primary advantage of using Open ID is with posting comments on other people’s web sites who require that you prove your identity before you make a comment. This can get pretty cumbersome to manage if you have a lot of sites that require you to setup a userid and password. For me Open ID is marginally useful but it is an interesting step in the right direction of managing your online identity.

For kicks I decided to try out the latest version of the WordPress OpenID plugin. It kind of works. The problems I have noticed so far are:

  1. I cannot login using OpenID my test blog(localhost/blog) running under XAMPP. I get a OpenID Authentication Failed: Bad signature.
  2. I had to add a slash to the url in the Trust root option.
  3. The login form is messed up on the remote server. It has “WordPress User:” and “Open Identity:” in a large font(i.e. Heading 2) with two boxes in which you can enter the OpenID. Only the second box works. I am running PHP version 4.4.4 on this server and GMP is not compiled into PHP. The login screen looked fine on my local test blog.
  4. There is a little funkiness with the first login to a WordPress site using OpenID.
    1. First you login into WordPress using your OpenID.
    2. Most of the time you will get an authenticate screen from idproxy.net for you to approve. If you do not get an approval screen(e.g. IE), you should open a new window and login to idproxy.net and see if you have any approvals waiting for you.
    3. Once you authenticate your access, you get a WP login screen where you need to enter the OpenID a second time. It doesn’t tell you why you are getting this screen but I think this is when your userid is created in WordPress.
    4. You should now be logged into WordPress. You should go to profile and modify the default geeky settings to something a little more descriptive and human-like.
  5. Once you have a userid created in WordPress subsequent logins should go smoothly.
  6. The OpenID plugin status information box will autoexpand when you move the mouse over it to show the details about the plugin on the remote server while it does not autoexpand on the local server.

Depending on your version of PHP and whether the GMP and BCMath libraries, this plugin works differently but it does work. Since OpenID probably has value, my solution to the login form problem was to hack the user-interface.php file and comment out lines 107-114. I am not sure what the code thought it should be doing at that point but I know the form works as designed without that code messing it up.

WordPress Hack: Rotating Banners

As you know I use WordPress as my blogging platform simply because I love PHP and the simplicity that comes with a beautiful syntax. This post shows you how to create a rotating banner for your WordPress blog.

Getting Your Banners Together

First of all this is just a dirty template hack that will not go away as you upgrade your WordPress distribution. The first step is to create a set of banners you want to rotate and name them sequentially. For example, mine are named vladville-bar1.jpg, vladville-bar2.jpg, vladville-bar3.jpg and so on. Here they are:

Vladville-bar1

Vladville-bar2

Vladville-bar3

Vladville-bar4

Look familiar? Great. Notice how only one number in the filename changes? Now upload all of these banners to the same directory, mine are in /images.

Hack The Template

The second step is to actually hack the template file. Because WordPress is PHP based you can embed PHP code anywhere in your template. Mine is in the header.php but you can use this trick anywhere you want to.

Remember how only the number was different? The only thing I did was instruct PHP to select a random number from a range and insert that number in HTML code. So here is the entire mastery:

<table background=”/images/vladville-bar<?php echo rand(1,23); ?>.jpg” width=”800″ height=”155″ border=”0″>

Thats the entire mastery right there. When the template is parsed by WordPress and PHP it will call a rand function which returns a random integer in the range between 1 and 23. I happen to have 23 images on the server so returning a random number between 1–23 will return a number of one of the images in that range. The <?php part tells the server to start interpreting the next block of text as code instead of just plain filler. The ?> stops it. The echo sends stuff back to be printed and 1,23 are parameters sent to the rand function. Every time the page is reloaded the rand() function should return a different random number between 1–23 giving my visitors a different random banner from my pool of 23. For example:

First time rand(1,23) executes it returns 5. As a result, you will see vladville-bar5.jpg

<table background=”/images/vladville-bar5.jpg” width=”800″ height=”155″ border=”0″>

Second time rand(1,23) executes it returns 17. As a result, you will see vladville-bar17.jpg

<table background=”/images/vladville-bar17.jpg” width=”800″ height=”155″ border=”0″>

Thats all there is to it but I figured I’d start slow and build up. Imagine the possibilities here, you can insert greetings based on the time of day, display random quotes, insult visitors by guessing their IQ with rand(5,30) and so on.

So get creative. Your blog does not have to be borg it should reflect your individuality. After all, its all yours.

Link to WordPress Hack: Rotating Banners

This is multi-purpose post. First I want to try this hack on my test WordPress blog. If I have time I want to try and configure a demo website to replace the current Habitat for Humanity affiliate website. The two most important characteristics that can lead to a successful HFH website is current news and photos. Using a blog can make the website easier to update and keep current. Rotating current photos on the front page makes the page more interesting for casual visitors but will require a little more computer knowlege.

My second objective is make this post using the GreatNews reader/Live Writer plugin. I have been using GreatNews for several weeks and I occasionally use w.bloggar via a GreatNews plugin to comment on other people’s posts. GreatNews supports several “Blog This” options including the plugin to w.bloggar. Today GreatNews released a plugin to make Live Writer a “Blog This” option. I was actually thinking about cloning the w.bloggar plugin to provide this functionality to Live Writer but someone beat me to it. Live Writer and w.bloggar are both nice front ends for blogs but Live Writer has a better user interface. For those who are unaware of these tools, they are the latest attempts to add a little extra word processing functionality to the process of creating new posts.

Since I prefer my websites to validate as xhtml, I run into occasional problems when I comment or include posts from other people. The html editors provided with most blogs are okay for new posts and most simple comment posts. I can look at the html code and fix the simple mistakes. When there are a lot of mistakes and you need a little extra help, Live Writer and w.bloggar can make editing the post easy and quick.

In looking at this post in Live Writer I have to admit I prefer this interface over the w.bloggar interface. It is not a hard decision. Wyswig is easier to use than raw html. It is nice that all of the links and images have the right addresses.