Foxmarks Bookmark Synchronizer

I find the right bookmark synchronizer for FireFox.

One of the features I immediately missed when I switched from Safari to Firefox was bookmark synchronization. I use two different Macintoshes on a daily basis — my desktop Mac at the office and my little PowerBook — and it really bugged me that they didn’t have the same bookmarks.

But I quickly learned that Firefox supports extensions and add-ons. And I tracked down a plugin called Bookmark Synchronizer SE. I installed it on both Macs and soon had synchronization working on Firefox.

But BMSync SE had upload and download progress boxes that appeared each time it uploaded bookmarks to my server or downloaded bookmarks from my server. If I set it on Automatic upload/download, this dumb box appeared every time I closed all Firefox windows, quit Firefox, or opened a Firefox window. It was annoying. When I put it in manual mode, I had to remember to upload and download the bookmarks. This is more effort than I wanted to make.

Yesterday, after making some extensive changes to my bookmarks, I went looking for another solution. And I found it: Foxmarks Bookmark Synchronizer. This works like BMSync in that you must install it on each computer you want to synchronize. When you restart Firefox, a Foxmarks installation wizard appears. It guides you through the steps to set up an account on the foxcloud.com Web site where your bookmarks will be stored. Turn on automatic synchronization and you’re done.

What I like about Foxmarks is how effort-free it is. And although I’ve set up a foxcloud.com account, I could also set up Foxmarks to work with my own server to help enhance privacy. (Not that foxcloud.com doesn’t have security; I’m sure it does.)

I uninstalled BMSync this morning. And I’m really glad I don’t have to look at those silly download windows anymore.

Gravatar Approved!

My gravatar image finally appears on Gravatar-enabled sites — including this one.

If you’ve been following the gravatar topic, you know that I recently enabled this site’s comments for gravatars and then waited for mine to be approved.

Maria LangerThis morning, I got an e-mail message saying that my gravatar had been rated and approved. Sure enough, when I checked the comments to my Trackback Troubleshooting post, my image was there.

Dr. DaveDr. Dave’s image also appeared this morning. It had been appearing as a black box, but today there’s a face. He may call himself the “Unknown Genius,” but his gravatar makes him look a bit like an evil genius.

I’ll be writing a how-to piece shortly — maybe even this morning — I woke up too darn early to do anything else — that explains how to create and register a gravatar. I’m hoping that the folks who don’t already have one and who participate by leaving comments in this and other blogs will take a few moments to get one. It’s kind of cool to see all the images on blogs with gravatars enabled.

Troubleshooting at 6 AM

A plugin goes bad and causes weird side effects.

I was checking e-mail and moderating comments on this blog early this morning. (I’m a morning person.)

I’d just entered a comment on my blog when I got a weird error message that I didn’t really pay attention to. When I moved on to another page, there were 8 lines of gibberish above the header. On every page I viewed. Before Firefox said, “To hell with this,” and crashed. Several times.

I had a problem.

Netscape could view the page — but with the gibberish.

wickenburg-az.com, which lives on the same server and uses the same software, worked fine. (Whew!) That narrowed it down a bit.

I restarted the computer. The problem didn’t go away.

I accessed the server from home and restarted Apache. The problem didn’t go away.

Dang.

I went to the office at 7:30 AM and restarted the server computer. The problem didn’t go away.

I analyzed the source code of the bad pages — which would appear on Firefox at the office. (That could be because my office computer has a faster, more modern processor and a heck of a lot more RAM.) It pointed to php files used by WordPress to display pages and do its magic. All the files looked right.

I looked at the contents of the database with CocoaMySQL. It looked okay. But then again, I didn’t look at all the contents. And I really didn’t know what to look at.

I thought it might be the gravatars plug in, which I’d been fiddling with tha morning. I disabled it. And I got a weird error message that might have been the same one I’d gotten earlier that morning. This time I paid attention. It mentioned duplicate headers and a couple of files by name. Hmm.

I took a deep breath and went online to WordPress support. I searched the Codex and support forums. I didn’t find an answer. So I posted a message in the support forum. I made the mistake of including the bad code, so when I saved it, the message got cut off at the bad code. Dumb. I used my back button to revise the message and post it. That created a second message with the same title. Really dumb.

But Samboll, another member, was right on it. He made two suggestions. The second one pointed to a Codex document that explained why the header error message might appear. I thought the header error message was a secondary problem — the first was the gibberish characters — so I didn’t have much hope in it solving the problem. But I had nothing else to go on, so I read the Codex piece and followed its instructions.

And that’s how I tracked down the bad file: srg_clean_archives.php, which is the plugin for the Archives feature I installed the other day. When I opened the file, it was filled with junk.

Now I don’t know how the file went bad, but there was no doubt in my mind that it was bad. It didn’t even show up in the list on the Plugins administration panel. I deleted it (it took two tries) and reloaded the site’s home page. Voila! Problem solved.

Of course, now my Archives page didn’t work right.

So I went back to Sporatic Nonsense’s Clean Archives 1.5 page and downloaded a fresh copy of the plugin. I installed it, activated it, and everything is back to normal.

Total time lost to this problem and troubleshooting (not counting the time to write about it): about 2 hours.

The moral of this story: pay attention to error messages.

How to Create a WordPress RSS Feed Page

A how-to piece that goes beyond the scope of our upcoming WordPress book.

WordPress User Level: Intermediate to Advanced

WordPress has a powerful and flexible Pages feature that enables you to create Web pages that are part of your blog yet exist outside the blog chronology. You can find examples of the Pages feature on this site by clicking the links at the very top of the page; all of them except FAQ point to WordPress Pages on this site.

Note that I’m using an uppercase P when discussing this Pages feature. That’s so you don’t get confused between the generic use of page (as in Web page) and WordPress Page feature Page.

This site has a bunch of categories that can be broken down into two groups: book support categories and Maria’s WebLog categories. You can see them listed in their groups in the sidebar, with a bunch of links between them.

Although I’d like to believe that Maria’s WebLog is so incredibly fascinating that most people come here just to read it, I know that’s not true. Many people come here to get additional information and support for my books. There are a bunch of these books (61 or 62 at last count) and a handful still in print at any time. This site’s Book Support categories provide support for those books.

Why Bother with a Custom Page?

On my old support site (www.langerbooks.com), each book had its own RSS feed. I didn’t realize it until recently, but many readers were using that feed to keep apprised of new content via RSS feed reader software. As I have stated elsewhere, although I know what a newsreader is for, I don’t personally use one on a regular basis. So it wasn’t until I realized that people were looking for those old feeds that I decided to provide new feeds to replace them.

There was an easy way to do this: simply include the feed=RSS parameter in the wp_list_cats template tag I use in the sidebar. So, for example, my current use of this tag:

<?php wp_list_cats('sort_column=name'); ?>

would be changed to:

<?php wp_list_cats('sort_column=name&feed=RSS'); ?>

If you’ve got sharp eyes and know WordPress, you may realize that something’s missing from that tag: the exclude parameter that enables me to break your category list into two groups without using parent and child categories. I’ll cover that in a future article.

Using that second bit of code would display (RSS) after each category name in the sidebar. RSS would be a link to the RSS feed for that category.

The trouble is, I didn’t like the way it looked. After all, who really wants to see (RSS) after every single category name in the list? It looks goofy. I didn’t like it, so I didn’t want to do it that way.

Instead, I decided to tap into the Pages feature and create my own custom Page template for listing RSS feeds.

Creating the File

To do this, start with one of the existing Pages templates. The one I picked was archives.php, which can be found with your other theme files in its theme folder.

If your theme does not include archives.php (not to be confused with archive.php), you’ll have a bit more work to do. You’ll have to get the archives.php file from the Default theme and the index.php file from your chosen theme and create a sort of hybrid with header information from archives.php inserted in index.php that has The Loop removed. If you know what I’m talking about, go for it. If you don’t, stop reading and wait for a future article about creating a Pages template when one doesn’t exist for your theme. (You may have to wait a while; comments requesting such an article might help push me to write it.)

Now with the achives.php file open in your favorite text editor (hopefully something that’s a real text editor and not a word processor), start by saving the file with the name rssfeeds.php (or something like that) in your theme’s folder — that’s the folder where your other theme files reside. Now edit the contents of the file as follows:

  1. Replace Template Name: Archives with Template Name: RSS Feeds
  2. Delete everything that’s in the “content” of the page. In my theme, for example, that’s everything between <div id="content"> and </div>, not including those two lines.
  3. Insert (where the lines were deleted) the codes to display the category names with the links. That can be something as simple as what’s noted above: <?php wp_list_cats('sort_column=name&feed=RSS'); ?>. Or it can be kinda fancy, like what I’ve got in my version of the file:

    <h1>RSS Feed Links</h1>
    
    <p>Click the icon or use the RSS link to subscribe to an RSS feed for the entire site or a specific site topic.</p>
    
    <h2>Entire Site</h2>
    
    <ul>
    
    <li><a href="http://feeds.feedburner.com/marialanger" title="Subscribe to Maria's WebLog" rel="alternate" type="application/rss+xml"><img src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="border:0"/></a></li>
    
    <li><a href="http://add.my.yahoo.com/rss?url=http://feeds.feedburner.com/marialanger" title="Maria's WebLog"><img src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif" alt="" style="border:0"/></a></li>
    
    <li><a href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=
    
    http://feeds.feedburner.com/marialanger" title="Maria's WebLog"><img src="http://www.newsgator.com/images/ngsub1.gif" alt="Subscribe in NewsGator Online" style="border:0"/></a></li>
    
    <li><a href="http://fusion.google.com/add?feedurl=http://feeds.feedburner.com/marialanger">
    
    <img src="http://buttons.googlesyndication.com/fusion/add.gif" width="104" height="17" style="border:0" title="Maria's WebLog" alt="Add to Google"/></a></li>
    
    <li><a href="http://www.bloglines.com/sub/http://feeds.feedburner.com/marialanger" title="Maria's WebLog" type="application/rss+xml"><img src="http://www.bloglines.com/images/sub_modern1.gif" alt="Subscribe in Bloglines" style="border:0"/></a></li>
    
    <li><a href="http://feeds.my.aol.com/add.jsp?url=http://feeds.feedburner.com/marialanger">
    
    <img src="http://myfeeds.aolcdn.com/vis/myaol_cta1.gif" title="Maria's WebLog" alt="Add to My AOL" style="border:0"/></a></li>
    
    </ul>
    
    <table width="100%">
    
    <tr>
    
    <td width="50%" valign="top">
    
    <!-- BLOG CATEGORIES -->
    
    <h2>Maria's WebLog</h2>
    
    <ul><?php wp_list_cats('exclude=1,24,25,26,27,29,30,31,32&sort_column=name&feed=RSS'); ?></ul>
    
    </td>
    
    <td width="50%" valign="top">
    
    <!-- BOOK SUPPORT CATEGORIES -->
    
    <h2>Book Support</h2>
    
    <ul><?php wp_list_cats('exclude=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,33&
    
    sort_column=name&feed=RSS'); ?></ul>
    
    </td>
    
    </tr>
    
    </table>

  4. Save the file’s changes.

Creating the Page

Once the file has been created and saved to the appropriate folder in your themes folder, you’re all ready to use it.

  1. Log into your WordPress blog and use the navigation at the top of the page to get to the Write Pages administration panel.
  2. In the right column, choose RSS Feeds from the Page Template drop-down list.
  3. Click Publish beneath the Page Content box.

Sure, you can enter a page title and content in the boxes. But they’ll be completely ignored so you’ll be wasting your time. Only the tags you included in the template will appear in the page.

Using the Page

The last step is to link the page to your site. If you already use the get_links or wp_get_links tag in your sidebar, you’re done; the page will appear with the other pages that are listed. But if you don’t (I don’t) you’ll have to modify the sidebar.php or, in my case, the header.php file to add the link. I call the link RSS and you can see it at the top of every page.

That’s All There Is To It

Of course, if you’re like me you won’t be happy with the first version of the Page. But fixing it is easy. Just use your text editor to modify the rssfeeds.php file you created. You can reload the Page on your blog to see the results of your changes. No need to edit the Page. After all, there’s nothing in the Page, is there?

What do you think of all this? Use the Comments link to let me know. You can also use the Comments link for this post to submit questions about it; please don’t ask questions about topics not covered in this article.

For more great information about going beyond the basics with WordPress, be sure to visit the WordPress Codex and the WordPress Support Forums.

Added Gravatars to Comments

Or at least I think I did.

I should get my head examined. I just added another WordPress plugin. That’s two in about two hours.

This one adds gravatars to comments. A gravatar, in case you don’t know, is a globally recognized avatar or image associated with a person. Or, in this case, a person’s e-mail address.

To get a gravatar, sign up for a free account at gravatar.com, complete the registration process for your e-mail address, and upload an 80×80 pixel JPEG or PNG image you want to appear as your gravatar. The staff at gravatar.com will rate your image so if it’s not appropriate for some sites, it won’t appear there. Then, when you enter a comment on a gravatar-enabled blog or site, your image will appear with your comment.

I say I think I set it up properly because although I installed the Gravatar plugin for WordPress and inserted the code in the comment loop, I don’t have any comments from people with gravatars. (Mine hasn’t been approved yet.) So I can’t see if it’s working.

If you have a gravatar rated R or lower and want to show it off (and help me determine whether the plugin is working), add a comment to this post.

Otherwise, I’ll just have to wait until I’m rated and see if I appear.

Trackback Troubleshooting

I spend most of a day trying to figure out why I can’t send trackbacks from my blog.

If you follow this blog, you’ll know I’m working on a book about WordPress with Miraz Jordan. We split the chapters down the middle, with me getting the first half and Miraz getting the second. One of my chapters covers comments, trackbacks, and pingbacks, three features of WordPress that allow feedback and interactivity between blogs and readers.

On my two WordPress-powered sites, the comments feature works fine. A bit too fine, in fact, as the sites quickly became victims of comment spam. Fortunately, Dr. Dave makes a great comment spam prevention plugin for WordPress called Spam Karma and that catches about 99% of the spam aimed at my two sites. I can easily catch the rest using WordPress’s built-in moderation tools. I’ll be covering all this information in detail in Chapter 4 of our book.

I never really experimented much with the trackback and pingback features. Rather than going into a long, detailed explanation of what these features are, if you’re interested (and can’t wait for the book), you can visit the WordPress Trackback Tutorial on Optiniche.com.

One thing I will point out here is that pingbacks are automatic notification of a blog that your blog refers to it. For example, so far I’ve provided links to two specific blog entries (one on Dr. Dave’s site and one on Optiniche). Because WordPress is configured to automatically notify compatible sites when you link to them, a comment should be created for blog entry I linked to, providing an excerpt from my post and other information. You can see an example on this site from Miraz in the comments on this post. Even the link I just created to my own blog entry should result in a pingback to my blog.

Unfortunately, none of this is working. And yesterday, I spent a good part of the day troubleshooting to find out why. After all, it’s difficult to write about something when you can’t get it to work right.

Don’t get me wrong — I know exactly how it should work. I’ve probably read more about the trackback feature in the past two days than most WordPress users read in their lifetimes. And I tortured Miraz yesterday by asking her to trackback and pingback to my site to make sure I could receive these. (I can.) I just can’t send them.

Oddly enough, I attempted to create a trackback from my demo WordPress.com blog. It appeared to go to its destination, but it never showed up there.

In troubleshooting, I found two possible problems mentioned in the WordPress Codex, both of which will require a visit to the server where the sites reside.

First, there’s some indication that the pings might be “stuck” in a queue, resulting in an endless loop while WordPress tries to send them. I’m not so sure about this. It seems to me if that there was some kind of loop thing going on, WordPress would be bogged down by the effort. Yet my two sites seems to perform okay. Still, the cure seems to be to use some MySQL commands to flush out the contents of the to_ping field. Since I don’t think it will hurt anything to do this, I’ll give it a try.

Other people experiencing this same problem claim that this does not help. One person believes it has to do with a blog getting very large and a memory problem resulting. I can believe this with my blogs. Although I only have about 400 entries in each, the entries in this blog tend to be very lengthy. Add to that my love of customization via plugin and you have a very busy WordPress trying to do all kind of things with lots of data. To fix this, I need to visit my server and make some changes to the php.ini file. (I already tried modifying .htaccess, as the article suggests, but that doesn’t appear to help.)

I’m also thinking at this point that it may have something to do with a recently installed plugin. On this site, my automatic database backup stopped working, although it continues to work reliably on wickenburg-az.com.

Am I pushing WordPress too hard? Perhaps. Hopefully I’ll resolve this problem soon so I can back to work.

Oh, and if you have any suggestions for me, please don’t keep them to yourself.

Trackback Tutorial

A good trackback tutorial on another Web site.

The tutorial, which is quite clear, can be found at WordPress TrackBack Tutorial. it includes a good deal of information about WordPress’s trackback and pingback features, including what they do and how to use them.

I looked up the article because I couldn’t get the feature to work right from this blog. I’m following the instructions and I still can’t get it to work properly. It’s kind of hard to write about something when you can’t get it to work. Very frustrating for me, since I assume I’m just making one tiny mistake over and over.

So this post is yet another attempt at a trackback. Well, actually a pingback. Hopefully, it’ll work.

i-Fusion

I buy a new iPod accessory.

It isn’t the iPod that’s costly. It’s the accessories.

Anyway, one of the things I like to do with my iPod is listen to podcasts. The only problem is that I don’t listen to my iPod often enough to keep up with all the podcasts I like to follow.

I decided that a good time to listen to podcasts was in the afternoon, when I got home from work and was doing things around the kitchen. You know: emptying the dishwasher, making dinner, cleaning up after Alex the Bird.

I used to plug the iPod into my Twentieth Anniversary Macintosh, which has a great sound system. But the other day the darn thing just stopped working. (My third Mac hardware problem in 6 months. They say bad things come in threes.) I have to decide whether I want to find someone to fix it or just leave it in the living room as a nonfunctioning conversation piece.

I tried plugging the iPod into my 12″ PowerBook, which spends a lot of time in the kitchen. The PowerBook’s hard drive is too full to keep the podcasts on it. But I couldn’t get the volume up loud enough to hear over Alex the Bird or the water running in the sink.

What I needed, I decided, was a set of portable speaker that I could use in the kitchen or take up to Howard Mesa or bring along on road trips. Something that had decent sound and was very portable.

i-FusionI did some research. I found i-Fusion.

I read the reviews on the Apple Store Web site. Everyone absolutely raved about the sound quality. I was a little skeptical. These speakers were small. I don’t care what the case is made of. They can only be so good. Fortunately, I didn’t need Bose quality sound. I just needed something that would sound okay and not distort if I turned up the volume a bit.

One reviewer whined that there wasn’t a place to store the power adapter. There is, however, a place to store the iPod and the earbuds. (I normally keep both in my purse when I travel.)

The price was a bit higher than I was willing to spend. My budget was about $100. This was $149. But I found it on the Tiger Direct Web site for $129 plus shipping for a total of about $135. And I felt as if I needed a treat, so I bought it.

It came today.

I must be spoiled when it comes to sound quality. Maybe it’s because Mike used to sell stereo systems and he buys good stuff for the house. Not expensive stuff, but good stuff. Stuff that sounds good. Really good.

i-Fusion does not sound really good. It sounds fine, but not really good. Those reviewers at the Apple Store Web site really need to spend some time in a stereo shop’s sound booth. Heck, I have a Sony boom box in my hangar that sounds better than this. But I’m not complaining. It’s certainly listenable and it can be turned up quite loud.

The case seems sturdy, the storage spaces are a bit silly but functional. I agree about the power adapter. It seems that they could have built the DC converter into the box (perhaps where the earbuds are supposed to go?) and made a retractable cord. That would have been a better design decision. But I can certainly imagine taking this little bugger on the road. With its built-in, rechargable litium-ion battery, it’ll be great for Howard Mesa, which doesn’t have electricity (yet).

Happy with my purchase? I think so.

I’ll let you know when I catch up on all those podcasts.

E-Mail Addresses on Web Sites

Why you shouldn’t include a link to your email address on your Web site.

Many people — including me! — use their Web sites as a kind of global calling card, a way to share information about themselves or their companies with others all over the world. It’s common to want to share your contact information with site visitors — particularly potential customers — so they can contact you. This is often done through the use of a mailto tag. For example, <a href="mailto:me@domain.com">email me!</a> which appears as a clickable email link.

Unfortunately there are people out there who want your email address, people who want to scam you into sending money to Nigeria, advertise their online casinos, sell you prescription drugs, show you their porn sites — the list goes on and on. If you have your email address on any Web site, you probably already get a lot of this spam. That’s because of computer programs that crawl through Web sites and harvest email addresses that are included in the otherwise innocent mailto tag. Heck, they even harvest addresses that aren’t part of a mailto tag, so just including your email address on a Web page without a link can get you on a bulk email list.

So what’s the solution? There are a few.

One popular and easy-to-implement solution is to turn your email address into a text phrase that a site visitor must see and manually type in to use. For example, me@domain.com becomes me at domain dot com or meATdomainDOTcom. You get the idea. Someone who wanted to send you an email message, would be able to figure that out — if he couldn’t, he really shouldn’t be surfing the ‘Net anyway — and manually enter the correct translation in his email program. But email harvesters supposedly can’t figure this out (which I find hard to believe) so the email address isn’t harvested.

Another solution is to use an email obfuscation program. These programs take email addresses and change or insert characters to make them impossible to read. The email addresses look okay on the site — to a person viewing them — and work fine in a mailto link — when used from the Web site. WordPress plugins are available to do this. I don’t use any of them, so I can’t comment on how well they work. But they must be at least a little helpful if they’re available. You can find a few here, on the WordPress Codex.

The solution I use is form-based email. I created a Contact Form with fields for the site visitor to fill out. When the form is submitted, a program processes it and sends it to my email address. Because that address is not on the Web page that includes the form — or on any other Web page, for that matter — email harvesters cannot see it. As a result, I’m able to provide a means of contacting me via email that keeps my email address safe from spammers.

The program I use is called NateMail from MindPalette Software. it’s a free PHP tool that’s easy to install and configure. But what I like best about it is that you can set it up with multiple email addresses. Use a corresponding drop-down list in your form to allow the site visitor to choose the person the email should go to. NateMail directs the message to the correct person. You can see this in action on my other WordPress-based site, wickenburg-az.com, in its Contact Form. If you want a few more features, such as the ability to attach files to an email message, MindPalette offers ProcessForm for only $15.

Other WordPress users are likely to have their own favorite methods of protecting their email addresses from spammers. With luck, a few of them who read this will share their thoughts in the Comments for this post.

One more thing…this doesn’t just apply to WordPress-based sites. It applies to all Web sites. And a contact form tool like NateMail will work with any PHP-compatible Web server.

If you’re already getting spam, using one of these methods won’t stop it. It’ll just keep the situation from getting much worse. Your best bet is to change your email address and protect the new one. In my case, that’s a big pain in the butt — so many people I need to be in touch with have my email address and, worse yet, I often use it as a login for Web sites I visit (which does indeed make the spam situation worse). I’m working on a plan to phase out the bad addresses and replace them with ones that I protect. Until then, I have to rely on the spam-catching features of my ISP and my email software to sort out the bad stuff — currently about 20-40 messages a day — so I don’t have to.