Archive for the 'WordPress' category

Wordpress SEO and Dedicated IP’s

Tuesday, July 14th, 2009

One of our Typepad to Wordpress clients would really like to rank higher with her nice new Wordpress weblog. She is hosted at Bluehost.com. Her IP number is 66.147.242.185. I ran a quick check to find out what other websites are on that IP.

Here is just a partial list of her neighbours:

consumersadvicemonthly.com
inkerstattoo.com
marksartori.com
mckennalaw.org
starbrighttravel.com
www.agap3.com
ww.ciafrica.com
ww.ed4wb.org
www.hittherack.com
www.juniormemorychampionship.com
www.morganjameschadwick.com
www.rentatelemarketer.net
www.rockymountaincoe.org
www.trinityschoolokc.org
www.turkishtravel.com
www.oldfortestates.com
www.hambastegi.org
www.agimaklake.com
www.tlca.org
www.turkishtravel.com
www.le-friseur.de
www.state4.com
www.calvarycampground.org
theoldfort.com
saltshakers.org.au
www.cspn.cl
www.lgmpharma.com
www.nawr.com
www.endlessblue.com
www.anternasional.com
www.haftegi.com
runebearer.com
www.developafrica.org
www.lindaq.com
www.rockwoodgarden.com
www.trinityschoolokc.org
tlca.org
www.hainsworth.com
www.spokanerecycling.com
oldfortestates.com
skymanor.com
www.piloterror.net
www.oldfortbequia.com
tw-volvo.com
www.ciafrica.com
www.hittherack.com
www.lkrobertson.com
nawr.com
www.equal-rights-now.com
percepolis.com
www.adpi.net
adrealestateinc.com
www.cwa7603.org
lollydaskal.com
aberdeeninvestment.com
www.we-recycle.com
shipnai.com
www.robertwells.com
www.danceconmigo.com
resremcon.com
www.foodini.org
www.uufsm.org
www.patrickhorsley.com
www.naccfi.com
thebeanery.com
www.arcbutte.org
www.ed4wb.org
www.summerplacecasuals.com
www.pasadenavilla.com
www.ilovejupiter.com
donleycomm.com
bequiablog.com
www.harkeytileandstone.com
www.careerdesigncoach.com
thenfi.com
www.cameopublishing.com
topshelf-fishing.com

Some of these sites look okay. Others look like real cruft.

After doing a careful Wordpress SEO tune-up, my next recommendation was that she moves to a clean dedicated IP.

It's possible to rent a dedicated IP from Bluehost for $30/year (at least it was in 2006).

Why is it important to be on a dedicated IP? Google says it doesn't matter. But Google scores everything. Even how long you have paid your domain registration (on your high value domains pay up those 10 years ahead - scammers and spammers don't). A dedicated IP costs money every month. And that means that the site owner is probably a lot more serious about the website.

Why on earth would Google give up on scoring such a great indicator of site quality?

Before anyone goes and complains that there are lots of bad sites on dedicated IP's, I would like to point out the math.

  • there are many, many spammy sites on shared IP's from the likes of Dreamhost, Bluehost and far worse (out of inadequate and oversold hosts, Dreamhost and Bluehost at least take a kick at the can with customer service)
  • there are proportionately few high quality sites on those shared IP's
  • there are some spammy sites on dedicated IP's
  • there are many high quality sites on dedicated IP's

The Google corporation is a lot better at math than Foliovision (and we have mathematicians on staff as well) and probably much better than your own company as well (unless you are a brokerage writing your own market timing software). Google have done that math and they do score IP's along with another 2000 related factors. A dedicated IP won't win the race for you, but who wants to head out the gate as the star downhill skier who doesn't handwax his or her skis?

I am always complaining about Typepad (and for good reason: Typepad customer service is terrible, the platform is deteriorating instead of improving and SixApart deliberately cripple Typepad export) - but this is one area where they score high marks. The IP's are shared but you are sharing with other high quality sites as a group. Google does give bonus marks to Typepad IP's. If you move away from Typepad but to really crappy hosting, you may even see your search engine rankings drop until you fix the hosting problem.

There are other issues with crappy oversold hosting besides a fair amount of site downtime per year and the lousy/incompetent/slow support.

One is pingtime and the other are what I like to call hosting brownouts. If you've ever been a client at Dreamhost, you know that they cram your server until it creaks. It's like the old stationwagon with everyone's bike on the roof, all the boxes crammed up to all the windows pushing down the interstate. Sure it still runs - but not very well. The underlying car might be pretty good but it's just overloaded. That's a Dreamhost and as far as I know Bluehost server as well (and the worst part is that these two guys are far from the worst of a bad lot - for a hobby or personal site, that doesn't really need to be up all the time or can occasionally be slow as it doesn't get many visitors, they are probably just fine).

Google will also score your site on speed of the hosting. And once again, fast, responsive hosting is the signal of a quality website. Is Google doing the math? You bet... with more than 200 million websites in the world to keep track of and to rank, they have to.

It's getting to the point, we recommend to almost all our clients that they join us on Foliopress.net with a dedicated IP. We host our clients on clean IP's on one of the top tier hosts. Sites load like lightning, downtime is non-existent (in three years, I haven't managed to put three hours together yet - and I am talking about total downtime including scheduled maintenance fixes). We have optimised our already top-notch hosting to run impeccably with Wordpress both cached and uncached.

I know this works. We have seen some of our clients move to us from Dreamhost for example and double their traffic in less than two months, with no other changes, mainly from being on better quality hosting and clean IPs.

Wordpress SEO Takeaways:

  1. Get yourself great hosting.
  2. Get yourself a dedicated IP while you are there.

SEO, WordPress | 2 comments

New Foliopress WYSIWYG version

Friday, July 10th, 2009

Foliopress WYSIWYG is our WYSIWYG editor for Wordpress with custom image management tool. We just released a new version - 0.9.3. It includes some minor improvements, but the most important feature it the Paste Rich Text Mode button. What's that all about?

When you are pasting some text into the editor it will be striped of all the formating - that is called plain text pasting. This kind of pasting is good when you are pasting text from some website and you want to get just the clean text with no ugly <span>, <div> or some other tags which may change the appearance of the text in your article in a bad way and make a mess in your HTML code.

But sometimes you want to paste all the text with original formating and maybe with some images in it. Or you just want to copy some parts of the article you are writing. In that case just press Rich Text Pasting Mode button.

Rich Pasting Mode button
Rich Text Pasting Mode button

It's a new addition to the toolbar. This will bypass the text cleaning mechanism, so be careful when you are pasting from various word processing programs.

Please note that a popup window will appear in Firefox and Safari when pasting in plain text mode as there is no way for these browsers to access the clipboard data. We can't deal with it. Developers of Firefox and Safari have a good reason why not to support cliboard access in their browsers - it's a security risk. Imagine that any site can get your clipboard data without this restriction.

There's no popup in Rich Text Pasting Mode.

More about Foliopress WYSIWYG & download

Foliopress WYSIWYG changelog

WordPress | 2 comments

Mirror, mirror what is the best FTP client of them all?

Wednesday, July 1st, 2009

If you are tired of paying for FTP client like CuteFTP or WS_FTP Professional, but haven't been able to find a good replacement, well, you obviously haven't found FileZilla. It's free, it's open source and it's great.

FileZilla is built on wxWidgets, which is my preferable choice for C++ Cross-platform toolkit, allowing it to be compiled on many operating systems. Ready made binaries are available for almost all the major platforms. On Windows, install is very easy, but this may vary on different platforms.

filezilla main
filezilla main

User interface is pretty intuitive. You can traverse the server and your computer without any problems, with mouse and keyboard as well. Site manager manages you FTP, FTPS, SFTP connections with ease.

filezilla settings
filezilla settings

filezilla transfers
filezilla transfers

One of the best and most useful features FileZilla has simultaneous transfer. It allows you to download/upload more files at once and therefore saving you time for other important things. It also gives you a very important summary of file transfer, so you'll see which files failed to transfer, which were transferred successfully. You can also order files that failed to transfer, to download/upload again. This may see as not very important, but when uploading 800 MB of images (15,000 of them, I did it last week), it will be useful.

Of course you could zip them, upload them, unzip them, but it's more hassle than just uploading them in a matter of minutes, depending on you connection.

filezilla settings
filezilla settings

There are not many settings, but all the important ones. This makes FileZilla easily configurable for less technically advanced users.

To summarize, FileZilla is a great FTP client, portable, stable, robust and reliable. It is my number one choice - and FTP is a core part of my work.

P.S: There surely are many other very good FTP clients. For instance, one that mentioned on internet a lot is WinSCP (Windows only). But in Foliovision we use FileZilla and are delighted with it.

WordPress | No comments

How to create multiple page secure forms inside Wordpress (or other PHP CMS)

Tuesday, June 30th, 2009

Quotes (form systems) that have multiple forms can be a nightmare for a PHP programmer. You have to deal with data carry-over in addition to secure data storage. And these are only programming troubles, not counting quote lightness (in terms of easy and understandable content and questions) and design that makes it perfect.

Yes, I know that nothing is perfect, but in Foliovision we try to make it like that. Making the web work for you and all that.

To ensure the carry-over of data, you have two choices: 1.  to use some hidden inputs in forms (therefore using post data to maintain client recognition), or 2. introduce sessions (using cookies). The first solution may be preferred, but in big CMS like Joomla, Drupal or Wordpress may be almost impossible to do.

In Foliovision we use Wordpress and to specifically to manage forms we use John Godley's Filled-In (some Filled-In trivia: Filled-In was originally coded for Foliovision clients and the betas were very bloody - since then Filled-In has become a fantastic tool). Since Filled-in stores the data as one request maintaining hidden inputs between form pages is not possible.

The only solution for us was to use PHP session. We created some useful extensions for Filled-In to make such a quote systems possible. But then we ran into a problem with quote that started on HTTP and continued to HTTPS. When changing from one protocol to another, PHP session is not carried over.

There are two solutions on how to fix this. You can redirect to a link that will contain session ID as GET parameter and then start session with that ID on HTTPS (terribly insecure), or you make the whole quote use HTTPS. Of course second solution is preferred, since it's a lot more secure way to run your site.

If you'll work with sessions and experience similar problem remember that sessions are not carried-over when switching protocols, or from www.domain.com to domain.com. You need to pay a lot of attention to detail.

IT, WordPress | No comments

Foliopress WYSIWYG now works on SSL sites

Wednesday, June 24th, 2009

Open source community collective struggle to make a better software by sharing ideas and improvements is paying off once again as our Foliopress WYSIWYG editor for Wordpress is working on SSL secured https sites from now on.

Thanks and praises both to James T. Snell and Wordpress' Trac system users for noticing the problem with https sites and finding the solution.

WordPress | No comments

Typepad Export Options: Congenial Lies from SixApart’s Anil Dash

Tuesday, May 12th, 2009

Last Friday, Anil Dash and I had a delightful conversation. I mean that delightful. Anil and I share many of the same passions: the web, media, user interface, weblogs.

Anil Dash
Anil Dash of SixApart / Typepad by Joi Ito

Anil is a very congenial sort and was a prominent early weblog writer. He is now both a Vice President at SixApart and head evangelist for Typepad.

I have a deep and intimate acquaintance with SixApart's Typepad service, as a founding user in 2003 and now as the founder of the premier Typepad to Wordpress rescue service.

The starting point of our call was clear. Anil is annoyed about my regular unfavourable postings about Typepad. I don't know if SixApart is annoyed about our rescue service itself - we've moved some pretty high profile sites in the last few months, some of which I am not even at liberty to disclose their names.

A few great sites which I can tell you about are Leah Piken Kolida's CreativeEveryDay.com, a resource site for artists. We did both the move and a custom redesign for Leah. We love Leah's work and she loves her new weblog. Recently on the other side of the fence, we moved one of America's premier personal mortgage sites, Dan Green's TheMortgageReports.com. Oh, and please don't visit this link if you are hungry, Blake Royan and Nick Kindelsperger's delightful ThePauperedChef.com a guide on dining well parsimoniously. The photos are homemade and real and delicious as are the recipes.

We take this work very personally and treat the client's sites with the same tender loving care as if they were our own. When they go into Wordpress, they are going in first class with websites run like Swiss clocks and look great to boot.

But it's hard as hell and not inexpensive.

Why?

Because SixApart has no working export. Yes that's right. You heard me correctly. SixApart has no working export.

It takes over ten hours of programmer's time to do the move perfectly per site (that's down from 50 hours for a first timer, with a bit of trial and error) via custom templates, 100 posts at a time (it used to be 500 posts at a time but Typepad clipped our wings a couple of months ago). Here's our 20 step guide to moving from Typepad to Wordpress.

What's that export link you ask? No not the big green one on the right which leads you to a page SixApart asks you to pay them $300 to export your website correctly to MovableType format, the free link at the bottom of the page.

typepad export options
typepad export options

That export button is a great big whopping PR sopped lie. There are three working import options. Anil told me they had programming teams spending months getting the automated import just right. I can believe it. But SixApart haven't spent a day on Typepad export since 2003.

But the export (export is easier than import as it is your own data) doesn't work. What's wrong with the export:

It doesn't include permalinks: what that means is that all your page URLs will change from http://gorgeous.com/2009/05/01/mypostname.com to http://gorgeous.com/2009/05/01/mypostwhoknowhat.com.

Who cares? Google cares, that's who. All the other websites which have linked to your weblog care. To do a successful move, you have to go through all your 1327 posts one by one and change the URL by hand. A nice job for a rainy Sunday or three.

Other flaws in the export include that there is no easy way to gather your images for export. Our workaround for that is quite passable so playing around with the images would only be a few hours passive work if the permalinks would work.

Why no permalinks? Anil's answer.

The export function is very old, in old Movable Type format. We're so far beyond that. We've standardized on the Atom API for export. With Google. Much more complete. The old format is expected in so many places, LiveJournal etc. we couldn't possible change it. We even worked with Lloyd Budd at Automattic in perfecting the Atom export of Typepad to Wordpress.

You do know about the Atom exporter, don't you?

At first, I was intimidated and concerned. Here I had been charging clients considerable sums for long handmade moves which could have been done automatically at half the rate in a quarter the time.

Google teams and Automattic had all been working together to ensure the data portability of Typepad. An automatic routine was out there, I just wasn't aware of it.

That's was Anil's intention as far as I can tell. FUD.

Anil, have you forgotten about Google?

The first I thing I did even before we got off the telephone is that I did a search on Typepad and Atom export. Yes, the posts from Lloyd Budd at Automattic are there, even one about a similar experience Lloyd had with you Anil.

But there's no working exporter, Anil.

What's worse is there can never be a working Atom exporter from Typepad:*

  • Atom doesn't get all the old posts/archives (it's restricted to a subset of newer posts)
  • Atom doesn't offer up comments

So instead of getting a complete weblog with broken permalinks, you'd get an incomplete weblog with your posts from the last three months and without any comments. Well that's a great improvement, Anil.

If I was clever enough to create a working Typepad to Wordpress service, Anil, I'm clever enough to Google your dissembling excuses. It pains me to call you names as I enjoyed our conversation, Anil. But man, don't lie to me. Lying is no way to win friends or even influence your enemies.

So Anil, if you really want to fix the situation, stop making up stories about Atom and some weird Google Data Liberation Machine of which you are founding member. Just add working export to Typepad and we will be mostly out of business. Most people will be able to move their sites themselves. But you won't do that.

Why won't you add working export to Typepad? The real reason, this time.

Because your mediocre service at Typepad is losing more customers than you are generating new ones. You are on downward attrition and you know that there are a good 15 to 20% of your current clientbase who are just dying to leave but can't. They'd drop you tomorrow, leaving you sucking on a 20% monthly revenue drop.

Well, I'll sugges you to do the opposite. Make the export work, Anil. Sure the first three months will be a bloodbath. But then the bleeding will stop. The people who have outgrown Typepad (Typepad is a lousy place to try to build a webapp or a heavily customised site - I know it's technically possible but it's very painful) or just don't like it, will leave.

Many of the others will be happy as they will know they could leave if they want to. The urgency to take flight will leave.

I can promise you Anil, the moment there is working export in Typepad, about half the reasons to leave Typepad will disappear. There won't be lock-in anymore.

People like me won't have anything to complain about anymore. The Typepad lockin will become a part of history, gradually just a memory.

I offered you our working custom export templates to install as the default export in Typepad. You refused that offer.

Well, now that I've looked into what you told me on the telephone, that makes you dishonest and a liar. When you were small, or when you started your successful weblogs, I don't think that's what you aspired to - to grow into a paid liar.

What happened to you in your time at SixApart? It is possible to tell the truth and earn a good living. There are lots of top webloggers who manage it. Quit SixApart and stop your lying. You'll do fine, if you just put your mind to it. On the other hand, the more years you burn your credibility to the ground with falsehood and disinformation, the harder it will be to get people to trust you again.

Half of success is charm. The other half is truth. Without a balance between the two wings, a plane is destined to crash.

In the meantime, could you still be so kind as to put working export into Typepad?

If we manage that this month - May 2009 - I will take a few paragraphs out of the above essay and replace them with a better story about the earnest collaboration of SixApart and a small design and marketing company on improving the Typepad service, making the export function work fully.

We'll still do some Typepad to Wordpress moves, probably fewer. We'll be able to charge less as we can do it much faster. And nobody will be able to accuse SixApart of lock-in. Less angry users.

Sounds like a win-win to me...

The Wizard of Oz ends happily...the Wicked Witch melts. Why can't this story end happily, why can't Typepad have working export?


* Curiously enough Blogger/Google have actually built themselves a working Atom export system - unlike Typepad. So it appears that it is technically possible.

WordPress | 9 comments

Wordpress or Magento: The Fringe Benefits of Working as a Web Designer

Friday, April 17th, 2009

Today has been a really long day at the office.

We have had interviews with three new candidates for SEO positions in the company. We've talked SEO strategy. We've gotten a couple of video promotion companies underway. We've created a new reporting system for life insurance quotes. We've fixed our SEO Images plugin. We've done a detailed quote for a new e-commerce site. We've tested two potential CRM-lite solutions. We've unsuccessfully tried to invoice again (too much work to have time to invoice!).

Life is not easy at the front lines of the web wars.

But sometimes working on the web can be great.

Peter and I had to spend a half an hour going over the intricate workings of a good sample Magento site to decide if we wanted to build that shopping site in Magento or build a custom cart of our own in Wordpress. Here's the model Magento site:

sexy ecommerce
Sexy ecommerce: Wordpress or Magento - definitely Magento
  • Splendid implementation.
  • Perfect design.
  • Wonderful proportions.
  • Incredible attention to detail.
  • Flexibility.

And I am talking about the code not the excellent photographs. It was easy to see all the different variations available of the items. Easy to navigage from item to item.

But digging deeper there's a lot of fragile and browser dependent code here to troubleshoot. Keeping this site looking perfect and running right in five or six browsers is a serious undertaking.

PS. In the end we came down on the side of a preference for Wordpress, as that's what we can SEO and build in our sleep. If the client would prefer a dedicated Magento site it may happen.

WordPress | 24 comments

How to get HTTPD and FTP to play well together or SEO image management nirvana

Friday, April 17th, 2009

While developing the Foliopress WYSIWYG we decided to create the images management on the basis of Kae Veren's excellent KFM file manager. While we are totally happy with how KFM handles the images itself, we were unable to work with images uploaded via ftp.

FTP HTTPD KFM
SEO Image managing a large sub directory of images uploaded via FTP

Uploading images one by one through an image editor is fine, uploading twenty that way is annoying. One of the reasons to prefer Wordpress over Typepad is that you do have direct access to the server via ftp. So this was clearly not acceptable. It wasn't even possible to change the file ownership of httpd via SSH (without root permissions).

Back in SEO Images we tried to move the images, but there was a problem. Images could not be moved or deleted, even renamed. Researching more this issue we found out a problem with users and their permissions. Images uploaded by FTP belong to user fv, but PHP runs as user httpd.

So the issue is that FTP and PHP runs under different user, but these users cannot touch each other files, except reading it. We tried to set the folder owner to fv and group httpd, but newly uploaded files were still locked to PHP.

After much deliberation we came up with several potential solutions.

  1. One possible way would be to create some nice HTTP uploader with progress bar, where you'll be able to upload more files. Since you cannot do it in PHP, there is an option to use flash uploader. BUT BE VERY CAREFUL, since flash uses different session than your browser, so even if your form is secure, the flash upload will not be. So if you chose flash, chose your flash uploader carefully. Security is always priority number one.
  2. Other option is to use FTP inside PHP. So the PHP will FTP into the folder and change the permissions when there is a file (or directory) that doesn't belong to PHP script user. This will solve the issue, but in order to for PHP login to FTP, you have store the login information somewhere on the server. This again is a security risk. You can of course enhance the security by encrypting the login information, and change the pass-phrase for encryption every couple of hours, but for this to be really secure, you have to use second computer (possibly non-public) to generate the pass-phrase. So this solution turns out to be not really practical.
  3. Since this is all a permissions issue, it can all be dealt with by changing the permissions for uploaded image files to 766 and images directories to 777. This may be very dangerous, especially on cheap shared hosting who often have mod_security turned off and who do not protect the directories between clients.

    But changing permission turns out to be the easiest solution and probably safest solution (safer than storing ftp login info on your server!). When your server security is high and, like us, you only need this to upload images, maybe this is what you want. If you are working with an httpd file manager but would like to be able to use FTP with it, just set the permissions of uploaded files via HTTP and also FTP to 766 and folders to 777 and you're good to go.

In our particular case we actually had to change a bit of code to change permmissions of newly created directories in KFM to allow the FTP manager to work on the uploaded images.

@chmod( $physical_address, octdec( '0'. $kfm_default_directory_permission ) );

wien docks crane
wien docks crane

The great thing about this fix, is that our image manager is now totally compatible with FTP, so uploading and managing hundreds of images is no longer a concern. Together with Lightbox, SEO Images effectively becomes full scale gallery software and not just for a few images per post. Here is an example gallery of images of Vienna's industrial south.

WordPress | No comments

Facebook in Financial Trouble

Thursday, April 2nd, 2009

Surprise, surprise. It's not just Twitter hurting for cash.

Gideon Yu CFO
Gideon Yu, Facebook CFO

Facebook has just shed its CFO, Gideon Yu - the same guy who negotiated the deal for YouTube. That's somebody I'd like on my team. (Hey, Gideon, we need a CFO at Foliovision.) Apparently Mark Zuckerberg who is the last cofounder of Facebook still standing wasn't seeing eye to eye with Yu about potential monetization plans.

Zuckerberg is rumored to want an IPO. Normal mortals would settle for being acquire, In the meantime, the company is bleeding red ink.

Just the kind of place I would like to store all the contact information of my family and friends: at a business who is desperately in need of a $100 million.

Not only is Facebook desperately in need of cash, but they are an onshore American company. Under all the various Bush decrees, any information stored anywhere in America is accessible by American intelligence and security agencies with the rubber stamp of a secret tribunal. Normally when intelligence agencies get close to data, they don't take what they need, they take all they can get.
In general, Facebook is not somewhere I would be comfortable keeping a full database of all my contacts and all of their contacts, along with exact information about the nature of our relationships. See our page on the dangers of Facebook.

WordPress | 2 comments

Microsoft AdCenter Setup for Mac Users

Thursday, March 26th, 2009

Microsoft adCenter is Microsoft's answer to Google's AdWords. It's the main search engine business for Microsoft.

Imagine you are a simple businessman, who has his own website and you want to bring more traffic on your site. As you are familiar with Microsoft software for decades now, naturally you'll want to check out their online advertising system.

Here are some basic guidelines to make the experience less painful:

First pitfall - Don't even consider using Safari or any other browser except IE and Mozilla, adCenter website does not support other browsers. Their help center states that also Mac and Virtual machines are not supported.

microsoft adCenter Safari
microsoft adCenter Safari

Before he found out that all Mac browsers are banned, Alec, our creative director, spent several hours trying to get Microsoft adCenter to work with all of the browsers under Mac OS, including spoofing the user-agent. Futile, he assures me. You can't even view the System requirements page!

Microsoft adCenter system requirements for Mac users
Microsoft adCenter system requirements for Mac users: unviewable!
The page loads forever!

What is Microsoft thinking here? I know they are PC centric, but making potential advertisers lives miserable by not allowing them access via their preferred platform? No wonder Microsoft's Live.com is in last place among the big three search engines.

After installing Mozilla or using IE you log in into setup pages. Using Medium security settings (one of the defaults) on IE will cause Second pitfall - Their site will popup a security warning on your IE, telling you that some parts of the web-page are not secure. Well if you are cautious person you'll probably shut down your browser and never use their service again. If not you have two choices, both bad:

ie6 adcenter
adCenter on Internet Explorer 6
  1. Lower your security settings
  2. Click Yes each time you access a page, which will be more than a little annoying.

If you are not very technical, you'll probably need help with setting up ads in adCenter. If you try to do it on your own you'll probably end up spending many hours and you'll call for help in the end.

As a Mac user if you want to use Microsoft adCenter, you will need a copy of VirtualBox (our preferred virtual machine software at Foliovision, due to the absence of painful licensing routines - we do own Parallels have tested VMware but don't use them) or alternative virtual machine software, as well as a copy of Windows XP or 2000. Be careful with Windows 2000 - you may run into limitations there as well.

Even for professional Google AdWords campaign managers, Microsoft adCenter setup is very unpleasant in comparison to the smooth and user-friendly setup of Google's AdWords.

But once you do get onto adCenter and set up some ads, your chances of a successful campaign (low-volume of course, as there just isn't much traffic there) go way up.

Why?

First, it's so annoying to run a Microsoft adCenter campaign that most people can't be bothered for the volume of traffic involved. The time investment is just so much more efficient in Google AdWords.

Second, the sort of people so clued out as to use Microsoft Search / Live.com for their searches are likely to be either highly inexperienced internet users or totally straight dweebs who believe in Microsoft.

In either case, they are a public who are more likely to part with their money more quickly, as they lack the savvy or will to shop around more aggressively. I.e. good potential clients.

Our live testing on client campaigns supports this view. Microsoft Live campaigns are delivering a sale for 1/3 the cost of the same sale on Google AdWords.

So even Mac Users have grounds to swallow their distaste and start their virtual machines.

WordPress | 3 comments

Backup on Mac OS X: Testing MimMac with Backup Bouncer

Sunday, January 18th, 2009

I just found a great little utility to test backup systems.

It's called Backup Bouncer and like the bouncer in a bar Backup Bouncer is there to keep the patrons honest. It will let you know ahead of time if your backup system is letting you down in complex ways, like not copying metadata or is blowing out resource forks or resetting creation dates.

These are the sorts of things you won't notice until you've lost your original and for some reason your Aperture or iPhoto library won't run properly anymore.

Of course, even a defective backup is better than none.

I was happy to see that my main backup tool SuperDuper! passes the test with flying colours. (For full bootable backup, Mike Bombich's CCC (Carbon Copy Cloner) is back in the game as well, after a couple of difficult years, passing all tests as well - as a past donater, I guess I own CCC as well.)

That's great news as it means I don't have to test SuperDuper! myself . Indirectly I do test SuperDuper! by booting from my bootable backup after most backups and doing a bit of work just to be sure that the bootable backup really boots and really works.

But as good as SuperDuper! is for a whole drive bootable backup, is it (and CCC) awkward for backing up a directory or two. You need a second program to be moving image or music files back and forth between two computers. And this second sync program is a bigger problem.

My secondary tool is for syncing directories and moving anything from 500 MB to 50 GB of data around. I use a little application called MimMac which is very easy to use and inexpensive ($10/per computer).

But MimMac is a bit of a black box. We don't really know what goes on inside. Everything seems fine, but what exactly is MimMac copying and how well?

As the backups are not bootable, MimMac is more difficult to stress test.*

Here's the Backup Bouncer report to save you the trouble of setting it all up and running it yourself:

Verifying:    basic-permissions ... ok (Critical)
Verifying:           timestamps ... ok (Critical)
Verifying:             symlinks ... ok (Critical)
Verifying:    symlink-ownership ... ok 
Verifying:            hardlinks ... FAIL (Important)
Verifying:       resource-forks ... 
   Sub-test:             on files ... ok (Critical)
   Sub-test:  on hardlinked files ... FAIL (Important)
Verifying:         finder-flags ... ok (Critical)
Verifying:         finder-locks ... ok 
Verifying:        creation-date ... ok 
Verifying:            bsd-flags ... ok 
Verifying:       extended-attrs ... 
   Sub-test:             on files ... ok (Important)
   Sub-test:       on directories ... ok (Important)
   Sub-test:          on symlinks ... ok 
Verifying: access-control-lists ... 
   Sub-test:             on files ... ok (Important)
   Sub-test:              on dirs ... ok (Important)
Verifying:                 fifo ... FAIL 
Verifying:              devices ... ok 
Verifying:          combo-tests ... 
   Sub-test:  xattrs + rsrc forks ... ok 
   Sub-test:     lots of metadata ... ok 

Not bad. The failures in hardlinks and resource-files in hardlinked is similar to Apple's cp-copy command. Failure in fifo only happens in ditto. FIFO stands for first-in-first-out. As far as I can tell, FIFO is not mission-critical for personal/local backups.

What MimMac gets right that most of the other methods do not get right is metadata. So Benjamin is paying attention. Still not clear what copying engine he's using though.

What is good about MimMac is that it is very fast. What is not so good about MimMac is that you can't do a test run. Either you run your sync or you don't so you can't find out about conflicts or mistakes before you press go. The speed probably makes up for the risk.

I would like to recommend MimMac but can't due to licensing methods. MimMac relies on the esellerate engine for license verification and each license is tied to your specific hardware. If Benjamin goes out of business or just gets tired of MimMac and you upgrade your computer or your hard drive, you have no further access to the software. Full stop. Period. For core programs, I much prefer either open-source (commercial open-source is fine, it doesn't have to be GNU) or if not open-source, at least just a personal license code which will continue to work even if the developer decides to stop work. I've lost enough software over the years to developers leaving the business, that there is no way I want my core functions dependent on whether another person's whim or even health.

Moreover when you switch computers, all software which is tied to hardware either has to be unlicensed and relicensed (forget it!) or it requires emails and phone calls to the developer (one obnoxious developer once told me for his $25 utility as a courtesy he would allow me to license it on my new computer once, but next time I had to unlicense his utility or he wouldn't issue a replacement key - what do these developers think: their two-bit utility is one of five applications we own: this licensing system just doesn't scale and reminds me of the Lubyanka in Moscow).

The worst developer in Mac backup actually runs background spyware applications on your network full-time if you decide that you want to use his software. The problem is that the spyware not only spies but steals significant background cycles and is constantly pinging the inside of your network, creating no end of dead-end traffic. While the solution is speedy, slowing down my computer is not on. At this point, licensing this guy's software is extremely dicey: you need to give him special codes for your hardware (not even the standard ones) and if you're lucky it might just work. Talk about shooting yourself in the foot. He's made using his software so painful that from being the best solution, he's become the worst solution - as well as the most expensive. I guess he's been taking lessons from the RIAA paranoid and self-destructive school of copyright.

So I am looking for an rsync GUI, paid or not. One rsync GUI can always be replaced with another in the worst case. Unfortunately rsync doesn't pass the Backup Bouncer test unless you do a special install which means you have to tinker on all your computers (slowing you down) and that a certain number of these GUI won't work as they will be defaulting to the built-in Apple rsync.

Here's a couple of candidates to save you the time of searching for rsync GUIs (there's a lot of abandonware out there):

  • aRsync 0.41. I don't like that a simple rsync GUI is 4.7 MB - what are they hiding in there? I don't like the Pirate logo on backup software. This is the kind of software which could compromise your whole hard drive or send out your financial data. No to pirates or unknown entities. I don't like betas for backup or sync software either. This is an area where you need 100% reliablility. Moreover aRsync fails many tests including semantic links, hard links, creation date, fifo and metadata. Ouch.
  • Simple Sync 1.1. I don't know how well SimpleSync works. Perhaps very well if you do follow the instructions for updating rsync. If not certainly it will work as well as Apple's rsync with. It's worth noting that Simple Sync is just 210 KB - that's about right for a wrapper - and that Kevin includes both his mobile number and a link to his main company's home page on the Simple Sync page. I'm feeling much better about using this script already.

Maybe we will build a self-contained advanced rsync GUI ourselves and release it so that we can get the right version of rsync and a GUI - and then we can share it with the world. For the moment, SuperDuper! and MimMac are keeping us safely backed up and synced.

Whatever you do, don't forget to backup!

At least once a week.


For those interested in specific backup strategies for Mac OS X for photographers and other media intensive users, I've written another article called The Backup Manifesto.

* MimMac is capable of bootable backups but I have more trust in SuperDuper! both for technical reasons and for licensing reasons as outline later in the article. On the other hand, if you are willing to accept MimMac's licensing you can probably take a pass on SuperDuper! and use MimMac for everything, saving yourself $28 to spend on a replacement whenever Benjamin decides to abandon MimMac or change his licensing and MimMac won't run on your computer anymore.

WordPress | 15 comments

Using the Search Regex plugin for Wordpress successfully

Monday, December 22nd, 2008

If you sometimes need to search and replace some text throughout your weblog, you should definitely be using Urban Giraffe's Search Regex. With Search Regex you can search and replace text in all the fields shown in the picture below:

search regex 1
Search Regex

If you are replacing some text, first enter the Search pattern and press the Search button. This will show you the results, so you can fine tune the pattern to get only the results you want. You also get a set of links to view and edit the post. Very handy.

Read the rest of this entry »

WordPress | No comments

How to move an old website to a new site address and retain Google rankings

Friday, December 19th, 2008

We've just had to move another client's old site to a new one.

There are lots of inbound links but the page URL structure has completely changed for the better.

The client wants to rank right away.

What do we do?

301 the old site is the traditional answer.

Not so fast says Eric Ward who is one of the masters of link building, having built links by hand for longer than almost anyone else on the internet and for more large corporate clients than any individual I know (there are some SEO companies working fairly stealth with portfolios of almost 100 big names):

I wouldn't 301 it yet. First I'd run a backlink analysis on the old site and then visit each site linking to the old site, and for those that look exceptionally trustworthy and legit, ask them personally for a hand edit to change the link from the old site to the new site.

Painful.
Slow.
Tedious.

Effective.

Frankly for a website with thousands of backlinks, that's just not a realistic option. Well for Walt Disney or some of Eric's other clients perhaps it is. But should the rest of us do?

  1. Run a detailed backlink analysis (we use SEO Spyglass for this as it's reliable, comprehensive and cross-platform so that I can use the same software on my Mac as the rest of the team uses on their PC's or even Linux machines). That analysis will give you the target pages of all incoming links.
  2. Make a list of all the pages which have incoming back links and look at the anchor text for those links.
  3. Find the page on the new website which best corresponds to that anchor text (the new landing page so to speak).
  4. Write a 301 redirect for each of those old pages to new pages. 301 syntax looks like this:


    redirect 301 /olddirectory/oldsubdirectory/oldfilename.htm http://newdomain.com/newdirectory/newpage

  5. Open up .htaccess and paste in the new 301 redirects (.htaccess is in the root directory of your website and is an invisible file - you need to turn on the option to see invisible files in your FTP client in order to work on .htaccess).
  6. Paste in the new 301's to your new website.
  7. Test your 301's by hand (always test everything by hand - a single colon or quotation mark out of place can disable an entire PHP file, html page or .htaccess file!).
  8. Monitor your server logs for 404's in any case. Any page which 404's often should also be 301'd.

For bonus points:

  1. Do a site:yourdomainname.com search in Google.
  2. Find the equivalent new page for each old page (depending on the site a regex redirect will be your friend).
  3. Write 301's for all the existing pages to the new equivalents (you can group pages of course, i.e. 4 different pages from the old site could get mapped to a single page on the new site).
  4. Add to .htaccess.
  5. Test.

If you follow these prescriptions to the letter, you should retain the rankings of the old site. Be prepared to see a three week to seven week dip as Google gets used to your new digs. It's a bit of manual drudgery in comparison to just a single global 301 to the new website. 

Still it's a lot less work than trying to dig up the owners of incoming links to the old site and begging them to change the links to the new site.

But Eric has a point. Any incoming links over which you have control or are of particularly high value you should seek to change by hand (although an older link will lose its age value by being changed to the new domain, so what Google gives, Google taketh away). Over time, though, the direct link will be worth more.

WordPress | 5 comments

Foliopress SSL

Monday, November 24th, 2008

SSL plugin that suites your needs. You can setup URIs that must be handled by Wordpress only through https.

Features three Es:

  • Easy to install
  • Easy configuration
  • Easy to use

Installation:

  1. Get (download) the plugin
  2. Unzip the contents
  3. Copy the whole directory into your Wordpress plugin directory (usually located in /wp-content/plugins/)
  4. Go into Plugins management in Wordpress back-end and activate plugin
  5. Go into Options -> SSL in your Wordpress back-end and setup the plugin

Make sure that you have HTTPS available on your server with correct certificate, else you can disable your whole website. If this happens to you you'll need to disable this plugin directly through database.

Usage:

Check "Secure URLs with SSL" and type-in URIs you whish to be accessed only through HTTPS.

foliopress ssl options
foliopress ssl options

You can use "*" as wildcard for some URI, if you type it after "/" it means that all URIs under this URI will be accessed only via https, if there is no / it takes all URIs under this URI, this URI including.

WordPress | No comments

Moving from Typepad to Wordpress: 2009 Guide

Monday, November 17th, 2008

We recently rescued a complex and older weblog Uncoy.com from Typepad and moved it to Wordpress with absolutely zero broken links or posts.

Why do we write rescue? First of all Typepad is a truly awful platform for anything but the most basic weblog.

  • images look terrible
  • CSS is difficult to alter
  • stats are a joke
  • tech support is a close tie for the worst on the web

Secondly, it wasn't easy. SixApart make it really difficult in fact. It's only easy if you are ready to accept:

  • broken permalinks
  • missing comments
  • disappearing images

Making the move work involved:

  • special plugins on export and import
  • collecting all the images via a special script
  • adding a special plugin to prevent Wordpress from breaking comments in your post
  • installing a plugin to allow you to keep categories at root level (not easy in Wordpress, perhaps the only plus of the Typepad system is that categories default to the root directory)
  • adding a special plugin to allow you to update your permalinks easily (the Typepad permalinks are terrible)
  • creating archive templates which match the Typepad setup
  • adapting a theme to suit the setup of your Typepad weblog (if you have a relatively complex layout)

The detailed steps are below - the list above is just the executive highlights.

Was it worth it:

The day my weblog was finally out of the hands of Typepad and safely into Wordpress was one of the happiest days of my online life.

I wish you the same success. But buckle up - the going gets rough:

Updated Step by Step Guide to moving from Typepad to Wordpress

  1. Use custom Movable Type export template to export the content of your Typepad blog. You need to use this template to preserve the original URLs for the articles.

    You need to use ‘Create new index template’ in Design/Current Design tab in your blog administration and put the content of our file there. If you don’t see this option, you need to create new Advanced template and activate it. Also, this feature is available only for Unlimited and Business Class Typepad account levels.

    You have to give it a name like export.txt and then open it in your browser via {yourblog}.typepad.com/{yourblogname}/export.txt

  2. Install Wordpress on your site (guide).
  3. Log in into Wordpress administation interface and set up a custom permalink structure /%year%/%monthnum%/%postname%.html (Options | Permalinks).
  4. Copy Foliovision Movable Type and TypePad (fv-mt.php - view source - download) into wp-admin/import/ and use it to import the Typepad exported file. You need to use this custom import plugin to preserve the original permalinks.
    Current version works up to Wordpress 2.9.2. You can download Wordpress 2.9.2, do the conversion on it and then use Wordpress upgrade to get to the newer version if needed.
    fv mt
    fv_mt import plugin
  5. Install Top Level Categories plugin to remove /category/ from category URL. Then leave Category base in Options | Permalinks blank.
  6. Use Disable wp-texturize plugin, if you have problems with HTML  comments in the posts.
  7. Next step is to download all the images from all the posts. You will loose all the images hosted on you blog site when you cancel your Typepad account. That's why its

    We use a free and easy-to-use offline browser utility called HTTrack to get the images. If you are using Windows, use the WinHTTrack version.

    Download it, install it and start a New project. Set the Project name and Base path. This will form the location where the images will be downloaded to your hard drive.

    winhttrack001
    WinHTTrack - basic project settings

    Click Next and enter your site URL.

    winhttrack002 2
    WinHTTrack - site URL

    Then click Set Options to open the Options window.


    winhttrack003
    WinHTTrack - Scan Rules

    Keep in the default Scan Rules. To make sure you get all the images, add the following rule in Scan Rules tabs:

    +*/.a/*

    Next up si the Limits tab. Set the Max transfer rate to a bigger value than the default 25,000 B/s. 50,000 should be enough, but you can experiment with 100,000 value too. Don't forget to enter 0 into Maximum external depth to get only the images from your blog.

    winhttrack006
    WinHTTrack - Limits options tab

    Press OK and press Next until the download starts. Please note that the actual download may take hours to complete.
     

    winhttrack005
    WinHTTrack - Downloading
  8. Now it's time to decide how to organize the images directory on your new site. So make your choice and don't forget take notes about this, as it will be crucial in the next step. Upload the newly organized images directory structure to the /images directory on your site via FTP.
  9. Then use Search Regex plugin to update links and images in the posts. Be very careful about this. It's a good idea to back up your database first.
    If the original image URL was http://site.com/people/image01.jpg, replace http://site.com/people/ in all posts with /images/people/ (it will work for all the images and directories in this directory!). Of course all depends on your new /image directory structure
  10. Create 301 redirections for the images on the original locations if necessary (to keep up with the Google Image search, this is basically the same as). Get all the images URLs from the Movable Type export file or database. Find all the images from the domains you have access to and write .htaccess rules for them. Here's an example of such rule:

    RewriteRule ^/images/(.*) http://newsite.com/images/oldsite/$1 [R=permanent,L]

  11. Install Redirection plugin and put in some basic redirections for your posts and pages. This largely depends on your original blog structure, if it was domain mapped etc. This one works for domain mapped blog with blog prefix. It's a Regex redirection, so turn that on when you add it into Redirection plugin.
    /your_blog_prefix/(.*).html => /$1.html
  12. After installing the Redirection plugin and running the site for few days, check the 404 log in this plugin to get rid of all 404 errors.
  13. Set up some nice theme with edit buttons bellow both posts and comments and all the other stuff. We assume, that you want your page to look the same as it look on Typepad.
  14. Create archive page which lists of all the months and years and categories if necessary.
  15. Create about page.
  16. Check trackbacks.
  17. If you are testing your new site on some other domain and you plan to move it when finished - be careful about _capabilities and _user_level meta values in _usermeta table and _user_roles in _options table when moving Wordpress from one database to another!
The original mechanics are based on conversations with Michael Hampton
and Anu's Typepad to Wordpress Switch. Thanks guys

 

WordPress | 82 comments