MySQL uses Latin1 character set as default. This is something many web developers are concerned about and for good reason. Using latin1 excludes 98% of the world's languages (even a single word) from appearing correctly inside your website.
I agree that for certain unilingual North American sites special cases latin1 is good enough. Otherwise in our ever more international world with visitors from dozens of countries, you really should make all your sites utf8. Latin1 just can not support new websites.
On top of that you can avoid a lot of PHP errors by using correct utf-8 encoding. We've found that even WordPress sites which are principally already UTF-8 have the odd Latin1 table sneaking into them.
So how can you find all latin1 database tables without combing through dozens of sites one by one? Thankfully MySQL keeps this data in one place and you can find them with one database query:
SELECT `TABLE_SCHEMA`, `TABLE_NAME` FROM `information_schema`.`TABLES` WHERE `TABLE_COLLATION` LIKE '%latin1%';
This is what the output looks like:

sample latin1 tables readout
For converting your tables from latin1 to utf8 I recommend a article from Nic Jansma.
WARNING: Be extremely careful on what you convert. As I said, in special cases latin1 is enough and some tables may be designed for that. For instance, don't change anything in `information_schema` database. This is a main MySQL database with important data. So think before you make any changes.
Moving a site can certainly be a hassle. With tools like cPanel's built in migration tools, this process gets more faster, as it will pack and unpack the files, create all the databases for you and even move the mailboxes, preserving their passwords and content.
However - don't not forget to check the site and email functionality afterwards. We will take about the emails and IMAP in here. Specially about IMAP not storing Sent Messages in Apple Mail after the site has been moved.
Testing IMAP Sent Messages Folder in Apple Mail
- Make sure you are sending the mail through the right SMTP server (the same one as IMAP)
- Send a some email.
- It should appear in Sent folder.

Apple Mail sent Messages
- It should appear in the "Sent Messages" or "Sent" folder on webmail.

Webmail Horde Sent Messages
Fixing issues with IMAP Sent folder
First thing to check is the mailbox preference this enabled storing of sent messages (Store sent messages on the server). This is on by default.

Apple Mail Account Mailbox Behaviors
So you probably already have this checked. But what happens when you
- close the settings window
- open up Apple Mail's Activity Window
- send a test mail?
You probably won't notice any errors in the Activity Window, but when you open the settings window again, it might have "Store sent messages on the server" unchecked.
When troubleshooting these issues we found that it's caused by the ~/Library/Mail/IMAP-user@example.com@mail.example.com directory.
If you moved from one server to another and mail.example.com has changed to mail.your-server.com, that's just another place where the things could go wrong, as it's clearly still showing the old mail server name in the directory name.
Since you are using email, we recommend that you:
- Login to webmail and check if all the received and sent messages are there
- Backup your ~/Library/Mail/IMAP-user@example.com@mail.example.com directory
- Remove the account from Apple Mail Preferences
- Quit Apple Mail
- Remove ~/Library/Mail/IMAP-user@example.com@mail.example.com directory
- Launch Apple Mail and re-add your account - it will get all the email via IMAP from the server.
- If you had some older messages in your INBOX, you can copy them from the backup of ~/Library/Mail/IMAP-user@example.com@mail.example.com folder.
Now your IMAP should return back to its normal operation.
Basecamp's mobile platform subscribes everyone to messages, making it nearly useless. With up to 20 people on a single project, spanning design, programming, SEO and content, notifying everyone is a nightmare. That's an average of 2 minutes per person digesting notifications which are not relevant to him or her across 18 people who don't need the information.

Basecamp mobile message notifications:
there is no way to specify recipients
I.e. every time a client posts a message from a smart phone Foliovision loses over half an hour of work time. Way to pick our pockets and/or steal our day, 37 Signals.
Keep reading Basecamp Mobile Platform Subscribes Everyone. Note to 37 Signals: Mobile has to work to be useful
Dear Foliopress WYSIWYG users,
Thank you to everyone who reported the issues with our editor not working properly in IE 9.0. After doing some testing we found that there are some issues. The issues are related to FCKEditor which is the core editor. The same issues affect CKeditor (a newer version as well).
Here is the error message from debugging console when the post is being saved:
"Not enough storage is available to complete this operation."
The post is saved, but the editor stops working. Other messages appears when using the Link dialog:
SCRIPT65535: Invalid calling object
fckdialog.html, line 778 character 4
SCRIPT65535: Invalid calling object
fckdialog.html, line 111 character 4
SCRIPT65535: Invalid calling object
fckeditor.html?InstanceName=content&Toolbar=Basic, line 233 character 4
Other issues relates to the WordPress Linking Dialog which we added into the last version. It has issues for some users, so we've disabled it by default. Go to Settings -> Foliopress WYSIWYG -> Advanced -> Use WordPress Linking Dialog to re-enable it. There have been issues with the our original javascript linking pop-in as well.
For now, what we've done are:
- to disable Foliopress WYSIWYG in IE 9 offering a bare html version and a visible warning.
- to recommend Safari, Firefox 3+, Chromium (Chrome is spyware but works) or IE 7/8 instead.
- we've also made the WordPress linking dialogue optional and made our original javascript version default
We will keep working on an IE 9 version as people gradually solve the IE 9 security and javascript issues. For now, please use another browser.
If you are having any of these issues, upgrade to the new version now!
More information
This post is a continuation from a recent post about Scientific Management and the Toyota Way.
Something we are working on is some additional capacity in peak periods (as auto manufacturers have additional suppliers they can bring online if a sudden surge in demand appears). Gradually we are getting there. In the meantime, I take great care not to take on more work than we can handle. There's at least a $100,000/month of business which I'm not seeking as we just couldn't maintain quality standards yet. We are working on increasing capacity first and then slowly adding those additional clients.
My girlfriend is shocked and horrified that we are leaving this kind of money on the table. Her shock diminished when I explained that every day Foliovision leaves millions on the table in Slovakia alone:
Keep reading Focus in Business Means Leaving Money on the Table: Apple
A new order for some advanced Basecamp features came in. I checked the weblog of the client to see where they are coming from and ran into a new term: neo-Taylorism. Taylorism apparently had very negative connotations. My only acquaintance with Taylor is with the sails manufacturer and the association is positive. I decided to go digging and in the process ran into the concepts of:
- scientific management
- human relations movement
- Toyota production system
Running a company is a pain in the neck tremendously challenging.
If you are in the knowledge business, there are two major challenges:
- managing people
- managing process
You are spared the pain of managing inventory. In a sense, time becomes your inventory but it does at least take a third dimension out of the equation, in comparison to auto parts production where you really, really need to manage raw materials and parts.
What's cool about business theory is that it's all been invented before.
Scientific Management: neo-Taylorism
This Taylor is Frederick and he died in 1915, before Henry Ford's factories were built. Frederick Taylor came up with something called Scientific Management. The basic idea was to improve workflow (hey I need some of that) and labour output (work faster!).
The basic idea is that best practice methods should be documented and taught: all workers should produce quality work. A good start. The problem remains that with equal pay, there is no disincentive for workers not to dog it or goldbrick. Taylor called this slow working "soldiering". Many workers call it "getting through the day". I've got a friend like this. Once someone approaches work like this, that person is nearly unemployable at Foliovision or anywhere else where enthusiasm, productivity and quality of work are valued.
Keep reading Neo-Taylorism vs Toyota Production System vs Human Relations Movement for Knowledge Work
As a one time owner of both an OCZ Vertex 2 (34mm NAND) and OWC Mercury Exreme SSD (Other World Computing ripped us off on the return btw, I'd avoid OWC as vigorously as OCZ, it's the same crappy Sandforce 2 technology on the inside and poor excuses on the outside) and a current owner of a Kingston V+ SSD and the buyer of tens of gigabytes of memory every year, I am really interested in real failure rates of this equipment.
While Anand may wax lyrical about OCZ and Sandforce and Jeff Atwood finds SSD performance hot, technology which fails often does not offer performance gains.
Equipment failure rate is a real problem in a company dependent on computers/IT. Not only do you lose money, you lose a lot of time returning/replacing parts and rebuilding systems. A company who makes it hard to return faulty equipment gets banned right away.
- SMC will never see another purchase from Foliovision.
Useless obfuscating Indian tech support who seek only to disqualify returns of networking products which were sold known as broken.
- OWC will never see another purchase from Foliovision.
Poor products, false marketing claims, nearly impossible return conditions, wasting hours of customer time by forcing repeat calls to eventually get even partial refund. Thanks Dan for being a particularly time-waster along with your supervisor Janice.
- Seagate will never see another purchase from Foliovision.
How many drive failures can one stand?
- OCZ will never see another purchase from Foliovision.
Vertex 2 and Agility 2 failure rates. Hours and hours wasted trying to recover from serial failure before giving up and returning. Thank you to our dealer for swapping for Kingston V+.
- Icy Dock will never see another purchase from Foliovision.
Thanks for destroying all my backup drives, guys.
- Fortran will likely never see another purchase from Foliovision (we bought a bunch of their Blue Zen silent power supplies: three have burn out in the last year).
Our IT blacklist is not longer than that. If you value your money and/or peace of mind, I advise avoiding any of the brands above.
Here are some companies whom we have found reliable:
- HP monitors. Especially the IPS series like the HP LP3065 and LP2465.
- Dell monitors.
- IBM Thinkpads.
- Kingston memory and almost anything Kingston.
- Asus motherboards and graphic cards.
- Nvidia graphics technology.
- Zalman quiet fan technology.
- Apple Macbooks and MBP and MacMinis.
- Western Digital hard drives, internal and external.
- Kensington high end pointing devices (Expert Mouse) with bad experiences on low end.
These items aren't directly IT but are usually around the office so they make the list.
- NAD Amplifiers: great sound and functional design.
- Black Diamond backpacks (less satisfied with LowePro which tend to fall apart quickly under wear).
- Manfrotto tripods.
- Pentax SMC lenses (the old metal ones).
- Crumpler computer bags.
What's very funny is when you find out your hunches and personal experiences are borne out by the statistics.
There's a great website in France called Hardware.fr which does a yearly round up of what is working and what is failing. They cover motherboards, power supplies, RAM memory, graphic cards, hard drives and SSD.
Surprise, surprise.
Avoid both OCZ memory and SSD's. I'd avoid OCZ anything after seeing the failure rates for 2010. Here's memory for 2010 (followed by 2010):
- Kingston 0,4% (contre 0,3%)
- Crucial 0,7% (contre 0,9%)
- Corsair 1,6% (contre 1,4%)
- G.Skill 2,0% (contre 2,7%)
- OCZ 7,1% (contre 6,8%)
Here's SSD failure rates for 2010:
- Intel 0,3% (contre 0,6%)
- Kingston 1,2% (contre 2,4%)
- Crucial 1,9% (contre 2,2%)
- Corsair 2,7% (contre 2,2%)
- OCZ 3,5% (contre 2,9%)
Notice that a good company like Kingston tries to recover quickly from a bad year (and picks better OEM suppliers going forward). Here's the early returns on SSD for 2011. OCZ is bad and getting worse with the Sandforce 2 controller:
- 6,7% : OCZ Agility 2 120 GB
- 3,7% : OCZ Agility 2 60 GB
- 3,6% : OCZ Agility 2 40 GB
- 3,5% : OCZ Agility 2 90 GB
- 3,5% : OCZ Vertex 2 240 GB
I think those numbers are still undercounted by those who are actually using the drives (i.e. multiple returns are counted just as a single warranty incident). Asus also rates well at Hardware.fr in the motherboard and graphic card categories.
Read those numbers carefully before going out to make a purchase. You can bring your downtime down to a quarter or less than what it would be if you bought the cheapest/whatever happened to be convenient items. In IT brand is important.
If you don't like downtime and hassle, avoid OWC and OCZ and Seagate at all costs. Storage is an area where failure is particularly taxing of time and energy.
We don't allow Google Chrome to be used at Foliovision.
There's a couple of reason.
Chrome as a browser sends a lot of information back to Google.
Even worse you need to install and leave installed the Google Pack Updater, which is constantly monitoring your computer and sending encrypted date back to Google.
As spyware, Google Pack Application updates is almost unprecedented.
On the other hand, we do allow the use of Chromium and quite like it as an alternative to Safari or Firefox.
The problem is home page of Chromium only offers links to the instructions for building Chromium from scratch. Not fun. Very time consuming, restricted mainly to programmers.

chromium source code link on home page no binaries
There is a nightly build, though, Dorothy. Google keeps moving it around. It used to be here:
http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/
For some unaccountable reason, that URL 404's now (don't Google know about 301 redirects?).

Google Chromium link in search 404
The real download URL for a Mac build is now here:
http://commondatastorage.googleapis.com/chromium-browser-continuous/index.html?path=Mac/
Enjoy a modern, fast, open-source browser without spyware. The open source community is good that way, keeping the spyware out of apps.
News bulletin: alternative download link - http://build.chromium.org/f/chromium/snapshots/Mac/
Your guess is as good as mine which will go dead first.

I was getting very tired of some rather obtuse discussions in the LinkedIn groups and in particular WordPress.
I decided to change my primary address in LinkedIn so this nonsense would end up in my secondary email account (non-time critical items and newsletters).
Still getting endless groups updates on my main email address.
So I decide to remove my main address altogether from LinkedIn.
Still getting endless emails from LinkedIn.
I submit a support ticket.
Member Comment: Alec Kinnear
06/20/2011 05:41
Hi,
I've removed from my account as I couldn't stand the incessant emails from groups anymore.
I'm still getting notifications to this address despite being my primary address now.
Please help stop the emails to
Making the web work for you, Alec
A nice enough support person by the name of Darci offers a polite but vague reply:
LinkedIn Response
06/20/2011 14:53
Hi Alec,
Thank you for contacting us.
I sincerely apologize for the inconvenience this has caused.
Please know that we are fully aware of this issue and have a team of dedicated, highly qualified individuals who are working diligently to resolve this.
I appreciate your patience and support as we attempt to resolve this matter.
Regards,
Darci
LinkedIn Customer Service
When I start to hear about dedicated, highly qualified individuals, I start to get nervous. It makes me think about McDonalds dedicated restaurant crews. So I ask Darcie for a bit more precision:
Member Comment: Alec Kinnear
06/21/2011 08:40
Hello Darci,
Thanks for your email.
When do you expect this issue to be resolved?
I do not have hooked up to LinkedIn in any way now, so effectively you are spamming me.
Making the web work for you, Alec
Apparently vague promises are fine but resolution is not.
LinkedIn Response
06/21/2011 10:23
Hi Alec,
I'm sorry but I do not have a time frame that I can give out. We are working on the issue, and will contact you as soon as we know anything further. I'm sorry for any inconvenience this may cause you.
Regards,
Darci
LinkedIn Customer Service
No time frame is really not okay. LinkedIn has hijacked my primary email address and won't let go:
Member Comment: Alec Kinnear
06/21/2011 11:33
Hi Darci!
No time frame is not acceptable.
Please remove from your servers completely. I do not want any LinkedIn messages to that address at all.
Thanks.
Making the web work for you, Alec
The situation is worse than I thought. LinkedIn will really spam me until the ISP's block their pipes:
On 21 Jun 2011, at 17:23, LinkedIn Customer Support wrote:
Subject: Still receiving LinkedIn emails on after removing it from account
Hi Alec,
I'm sorry but we have a bug in our system at this time that is not releasing email addresses that were entered into it at one time and now removed. We have a team working to resolve the issue as quickly as possible. I'm sorry for the inconvenience this is causing, but there is nothing further I can do at this time. We will contact you as soon as the issue has been resolved.
Regards,
Darci
LinkedIn Customer Service
I'm not happy about sitting around, waiting for LinkedIn to stop spamming me.
Moral of the story
I'm very sorry to have given LinkedIn a primary address in the first place. I recommend you don't.
Where LinkedIn get marks is for having a customer service department who respond to emails at all. That's a big improvement over Google or Facebook.
Now I really know why I'm not on Facebook. I'm sure it's far worse over there if you want to stop the deluge.
Practical Advice Before You Close Your Account
Several readers have written to complain that closing your account doesn't stop the LinkedIn Spam:
I am so upset I put my primary email address on Linkedin (which I didn’t do on Facebook). I joined both of these social websites to keep in touch with actual groups I am an active member of but LI quickly wore out my welcome mat. I’ve tried to remove my welcome mat but LI ignores my closed account still to this day. Hopefully anyone reading this is smarter than I was and takes these warnings to heart and uses a throwaway email account to subscribe if at all. WARNING: You will not be able to unsubscribe no matter what their website states!!!!!
Here's what you must do first, before you close your account.
Be sure to change your email address to one which you can verify and then turn off. Give it a week or two for the new email address to take before cancelliing your account.
Be sure to unsubscribe to email updates from every group you've ever joined. While I know unsubscribing to email updates works, I'm not sure that unsubscribing to an active group before unsubscribing to email updates actually works.
Further Practical Advice on how to get LinkedIn Shut Down as Spammers
There's a service called SpamCop.net. Sign up and report your LinkedIn messages there. If you use Google, Hotmail, MSN, AOL or Yahoo there are huge spam buttons there.
Report every LinkedIn email. While LinkedIn has some corporate protection (as one of the big boys club), if even half the people getting their unwanted emails complain about it, LinkedIn emails will be reclassified as spam and forced to change their policies.
LinkedIn Management and Reid Hoffman
It's a pity LinkedIn management are such wankers. The service would be valuable if they had any respect for users/clients. I don't know if Reid Hoffman has any idea about how much hatred his lazy/deliberate spamming policies would generate on the net. Hoffman was a founding director at Paypal (perhaps the web's most hated company, although Paypal appear to be trying to clean up their act somewhat now, before regulators do it for them), so perhaps no surprise Hoffman has no respect for users.
Hoffman is also responsible for setting up the first round of angel investment in Facebook. Again no surprise about the lack of respect for users. Hoffman again was a first round investor and director at Zynga, well known for spamming Facebook and other users and for scam ads.
Generally Hoffman is a fat rude prick with no respect for users. He has a consistent background of involvement with the net's worst spammers. This is the man who has rough ridden users to $3 billion net worth. Report his spam mercilessly and shut him down.
Who says crime doesn't pay? Unfortunately, crime often leaves its traces on your body and your face.
Building mobile versions of websites was an arcane art for a couple of years. And not all that necessary as only a minority of people had smart phones and even fewer of them were using them to actively browse the web. Over the last year as the devices get better and better, more and more visitors are using their smart phones to visit websites.
If you don't already have a mobile version of your site, it's time to put one in right now. Here's how you do it, from A to Z. If the beginning seems a bit complicated, just push ahead. There's an easy point form summary at the bottom of the article.
If you have even a reasonably busy WordPress site, you need to have a caching solution in place. Without caching, you'll get your site kicked off shared hosting lickety-split or you'll cripple performance on your VPS. Visitors like fast sites and cached sites are two to five times faster than uncached sites. For WordPress, there are three major choices in caching solutions: WP Super Cache, W3 Total Cache and Hyper Cache.
For a mobile site, you need to have a caching solution which will pass through mobile clients quickly and reliably to your mobile version.
Of the three above, by far the most reliable is WP Super Cache. Donncha O Caoimh has been providing reliable code (and an almost unspellable name) for five years now. (Donate here. We did.)

WP Super Cache mostly works.
A real work horse, Super
Cachejust keeps on ticking

Sometimes high performance,
always high maintenance, deploying
W3 Total Cache is like taking the
space shuttle to the grocery store

Hyper Cache seems to work
the new kid on the block,
showing promise. We've
had issues with Hyper Cache
on some of our bare bones
Debian server.
Start by making sure your caching plugin is properly set up. These settings are not the default but are where you want to be. Donncha includes the most compatible and much slower defaults in his plugin (good idea, as new WP users can get some benefits with little risk). Here are Donncha's main instructions to get WP Super Cache to really fly and to reduce your load times for Google (good for SEO):
- Mod_Rewrite. The fastest method is by using Apache mod_rewrite (or whatever similar module your web server supports) to serve "supercached" static html files. This completely bypasses PHP and is extremely quick. If your server is hit by a deluge of traffic it is more likely to cope as the requests are "lighter".
- If you are not using legacy mode caching consider deleting the contents of the "Rejected User Agents" text box and allow search engines to create supercache static files.
- Likewise, preload as many posts as you can and enable "Preload Mode". Garbage collection will still occur but it won't affect the preloaded files. If you don't care about sidebar widgets updating often set the preload interval to 2880 minutes (2 days) so all your posts aren't recached very often.
Now it's time to get ready to set up the mobile version. First you need to make a choice on building your own mobile solution or starting with a mobile plugin. We recommend using a plugin as starting from scratch is a lot of busy work. There's really not all that much room 320 x 240 pixels for creativity (the exception proves the rule guys) so you may as well set up something attractive and standard and business-like. There are a couple of good plugins out there to give you a running start.
Free and slightly unreliable: WP Mobile Pack.

WP Mobile Pack works or broken
Paid and very good but with some issues outside of Apple's i-universe: WP Touch Pro. Here's a WP Touch Pro feature chart (there is/was a free version as well).
You'll want a full list of user agents for which you will serve the mobile version. Next, make sure the list of user agents match in both your mobile plugin and in your cache plugin.
Here's a list to match WP Super Cache's list of mobile user agents which you can copy and paste into the user agent theme preferences in WP Touch Pro.
Mobi
Mobile
MMP
240x320
400X240
AvantGo
BlackBerry
Blazer
Cellphone
Danger
DoCoMo
Elaine/3.0
EudoraWeb
Googlebot-Mobile
hiptop
IEMobile
KYOCERA/WX310K
LG/U990
MIDP-2.
MMEF20
MOT-V
NetFront
Newt
Nintendo Wii
Nitro
Nokia
Opera Mini
Palm
PlayStation Portable
portalmmm
Proxinet
ProxiNet
SHARP-TQ-GX10
SHG-i900
Small
SonyEricsson
Symbian OS
SymbianOS
TS21i-10
UP.Browser
UP.Link
webOS
Windows CE
WinWAP
YahooSeeker/M1A1-R2D2
iPhone
iPod
Android
BlackBerry9530
LG-TU915 Obigo
LGE VX
webOS
Nokia5800
iPhone
iPod
incognito
webmate
Android
dream
CUPCAKE
froyo
BlackBerry9500
BlackBerry9520
BlackBerry9530
BlackBerry9550
BlackBerry 9800
BlackBerry 9780
webOS
s8000
bada
IEMobile/7.0
Googlebot-Mobile
This list doesn't include the WP Super Cache substrings as they are too short and dangerous to use in WP Touch Pro as WP Touch Pro matches substrings throughout the user agent, while WP Super Cache matches substrings against just the beginning of the user agent. Pasting the full list of substrings into WP Touch Pro makes full Safari and Opera display mobile versions (they match on "tosh"). We'll keep working on a better version of mobile agents for WP Touch Pro and post it here.
If there's a problem, all that will happen is that mobile user will get the standard site uncached.
Here's the WP Touch Pro theme preferences where you should paste the user agents above:

WP Touch Pro user agents
There's some discussion about whether to give a full site or the mobile site to an underpowered device which can't really handle the full WP Touch experience.
In principle these weak web browsers like Opera Mini 4 have special mobile modes to deal with standard sites, doing the reformatting themselves. But the reformatting will be easier if they are starting from WP Touch's advanced mobile version.
The difference won't be that great.
Here are some screenshots of WP Touch Pro iPhone version and Opera Mini minified version.

Opera Mini WP Touch Pro version
Not bad for a start if a bit too wide

Opera Mini WP Touch Pro filtered mobile
that's more like it and includes site colours
The minified version of the normal website through Opera's built-in mobile proxy is not much worse but the navigation (not shown) is much more difficult. And you have to rely on the end user to turn on minified versions. Relying on the end user is a fool's game.

Opera Mini full site Opera mobile proxy filter
WP Super Cache handles mobile settings a bit differently than W3 Total Cache and Hyper Cache. WP Super Cache doesn't let you hand in a list of mobile devices but generates it itself and puts it in .htaccess along with the basic rewrite rules. Here's what the list looks like:
RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC] RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC] RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800|iPhone|iPod|incognito|webmate|Android|dream|CUPCAKE|froyo|BlackBerry9500|BlackBerry9520|BlackBerry9530|BlackBerry9550|BlackBerry\ 9800|BlackBerry\ 9780|webOS|s8000|bada|IEMobile/7.0|Googlebot-Mobile).* [NC] RewriteCond %{HTTP_user_agent} !^(w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-).* [NC]
The advantage of this system is that it makes bypassing normal processing ultrafast (the movement happens at an OS level, rather than on invoking PHP).
It also means you as the end user don't get to fiddle endlessly with what devices to include. You'll have to count on Donna to choose the right ones.
Which it seems he does.
As you can see, it's very complete, including iPhones, Androids, Palm, Blackberrys, Palms, Nokias, Symbian.
On the other end though, if you are using WP Touch Pro, you'll have to give it a list of devices. Look out for versions under 2.2. The Skeleton template 1.0.8.1 does not handle blackberrys very well. Skeleton Template 1.2 definitely does, so if you're having trouble, make sure to upgrade WP Touch Pro to the latest version and then update your template.
Both Hyper Cache and WP Super Cache have built in compatibility with WordPress Mobile Pack. If you haven't already jumped on the WP Touch Pro bandwagon, WP Mobile Pack might be worth a try as it's already fully integrated to two of the top cache plugins and free. Unfortunately, WPMP appears to have some compatibility issues and is not kept up to date. You'll have to do some digging of your own to get it to work properly.
Once you are up and running, you'll want to test your settings. Here are the easy tests. Opera has a desktop emulator for their advanced mobile browser and an online java version for Opera Mini.
http://www.opera.com/mobile/demo/
http://dev.opera.com/articles/view/opera-mobile-emulator/
Test for iPhone with Safari by enabling the developer menu and then reassigning user agent. On a Mac, I recommend Keyboard Maestro to set up a hot key on the menu command (usually application menu items can also be done in keyboard section but it's a bit trickier). I've assigned command-U and it really speeds up testing for different user agents. You can also then use Safari to test for Blackberry user agents and other exotica.
Ideally you'd have at least a few real mobile devices with which to doublecheck your site. An iPod Touch is a great inexpensive stand-in for an iPhone/iOS. Opera Mini will install into most devices in parallel with the main browser. Make sure to navigate around to be sure everything is working.
When you know that your mobile versions are making it through you'll want to sit down and have a think about what someone visiting your site on a mobile browser would want to see (insurance calculator, mortgage calculator, listings search, catalogue or weblog posts) and put those front and center. You might even want to remove large sections of your site which won't display well on a mobile device from mobile navigation.
With multiple mobile device formats (think iPad), WP Touch Pro has alternately display models which it handles internally.
So to recap here are the steps.
How to Quickly Build a Great Mobile Version of Your Site
- Put together a list of user agents which you would like to show a mobile version (the longer the merrier, there's no sense in being parsimonious here).
- Set up your cache plugin not to pass through mobile devices (not to show cached full pages). Recommendation: WP Super Cache which comes with baked in list.
- Set up your mobile plugin to serve a mobile version to those same user agents (if you miss a few, no worries). WP Touch Pro recommended.
- Check appearance with Safari in iPhone mode and with Opera Mini online emulator.
- Tweak appearance to match site colours.
- Tweak menu items to show what is important for mobile and hide what is irrelevant for mobile or will not display well.
- Remove mobile plugin branding (branding on commercial plugins/themes is obnoxious: are you listening Brave New Code?).
- Add a large 512 pixel icon for people who bookmark, create automatic apps in Safari. (WP Touch Pro feature).
- Test that mobile versions are being served up to the principal user agents and browsers with Safari.
- Test on whatever real devices you do have.
- Send your client to visit the site on his or her mobile device (remember what I said about adding Blackberry user agents: this is the moment of truth, an astonishing number of clients will have Blackberrys).
- Prepare to do this for all the rest of your clients.
Every site should have a mobile version now. WP Super Cache and WP Touch Pro make it very easy for developers to provide high quality mobile versions at an affordable price. There's no excuse not to offer clients an affordable mobile version of their site.
SubforumTopicsPostsTopicPostsFreshness
Foliopress WYSIWYG is the best advanced WYSIWYG editor for WordPress, supporting javascript, iFrames and a customisable toolbar. We've been building and maintaining it for years, it's perfect for commercial clients as it behaves and looks much like their favorite word processor.
Foliopresss WYIWYG also includes SEO Images, an image manager with built-in advanced SEO features. SEO Images functions as a gallery-lite plugin, easily replacing NextGenGallery for instance.
We have some amazing new features for you in the latest version, including compatibility with WordPress's built in featured image too and WYSIWYG support for Impact Templates.
- WordPress Link to post dialog is integrated into the editor toolbar

Foliopress WYSIWYG WordPress Link to post feature
- Support for Impact Page Template Builder plugin templates
- Better custom field support and image HTML template
- Featured Image support (beta)
How to use Featured Image feature?
It's easy to use, but due to some structural differences in how WordPress and SEO Images (the image manager used in Foliopress WYSIWYG) handle the images, there are some extra conditions to be fulfilled:
WordPress Upload directory has to be the same as Foliopress WYSIWYG/SEO Images upload directory.
If this is not done, then the feature won't appear in this version. In next version, we will try to automate the process.

Foliopress WYSIWYG Featured Image
If your Foliopress WYSIWYG upload directory is /images, this is what you have to use in wp-admin -> Settings -> Media:
WARNING: If you change these settings and you already have some images uploaded with WordPress Media/Image Manager, the images might stop appearing, as WordPress is not storing full URL for the images.
Due to the incomplete paths and its incompatibility with other CMS systems in case you ever move your site, we recommend getting your images out of the WordPress built-in image manager ASAP and keeping them out. SEO Images stores your images and paths in such a way that you could move to any other CMS tomorrow and have all your images show up.
You have to also move the images directory and update all references in posts, widgets and template if you change these paths.
If you'd like our help with moving your images and setting yourself up properly with SEO Images, just fill in a professional support request and we'll take care of you right away.
- If you are running your WordPress from the web root directory:
- Store uploads in this folder: images
- Full URL path to files: (leave empty)
- If your WordPress is located in a subdirectory
- Store uploads in this folder: ../images
- Full URL path to files: /images

Foliopress WYSIWYG Featured Image
More information
Latest Foliopress WYSIWYG Discussions

wordpress 312 wp ecommerce 383
This week I had an interesting conversation with Dan Milward, the marketing guy and co-founder of the WP e-Commerce WordPress shopping cart plugin.
Let's start with the facts. WP eComm is now on version 3.8.4. Currently, the reports in from front line users are: 4 say it works, 12 say it's broken.
Why People Hate WP eCommerce so much
Dan told me that sources inside Automattic had revealed to him that in the past as soon as Instinct Entertainment publish a new version there are five reports of the plugin being broken on current WordPress. His sources then erased that feedback.
This is a very bad sign: when you need insider help to erase negative feedback. Not the first time I've seen this happen at Automattic: Mark Jacquith has had to warn plugin database maintainers off deleting plugins which compete with their friends plugins. Second bad sign: people who hate your plugins enough to wait for a new version to mark it as broken.
Dan manages it. There are three strategies he uses which bring Instinct Entertainment to such grief.
Keep reading WP e-Commerce 3.8 Review: Why WP eComm code is still broken

Seesmic Logo
Every web marketer using social media on a daily basis needs a social media client. You simply can’t log in and out of dozen different Twitter or Facebook accounts manually several times a day. So the concern is not ‘if,’ but ‘which?’
Originally built as a social video sharing service by French entrepreneur Loic Le Meuron, Seesmic purchased Twitter client Twhirl soon after its inception and set its route as an ambitious social media client. After acquiring Ping.fm a year ago, Seesmic’s creators decided to try to climb to the leading position on the social media management market, and the slightly overblown statements on their site try to persuade visitors that they’ve already succeeded. So, what is Seesmic? A good solution for social media management? Maybe. Will it “take your online brand to the next level?” Not so sure about that.
Keep reading Seesmic Social Media Client – Social Cluttering Done Right
In a CMS discussion group I belong to, someone recently asked:
Is there someone with experience with Drupal, Joomla/Mambo and WordPress who can tell what the differences are? What are the strong and weak points?
For better or worse, I am that person. So here's my summary of the advantages and disadvantages of each of the above CMS platforms.
Advantages
- Very clean core code.
- Good project leadership from Acquia.
- Some very good developers available for hire.
- Fewer clowns available for hire (you can either code Drupal or you can't, it's harder to fake it).
- Can be made very server efficient in the right hands (scaleable).
Disadvantages
- Less ready made drop-in plugins. You're going to have to get your hands dirty almost every time.
- More imposing default user interface.
- Fewer developers.
- More expensive developers.
Advantages
- Good menu system.
- Strong static page structure (cf. weblog).
- Built-in membership/community features.
- Long time on the market.
- I'm searching here.
Disadvantages
- Built-in performance pretty sluggish/clunky.
- Horrid built-in URLs.
- Weak weblog section.
- Hard to theme. A Mambo/Joomla site looks like Mambo/Joomla, like it or not.
- Crappy built-in SEO. Leading SEO plugin belongs to a very peculiar developer and is encrypted (have fun repairing the SEO plugin, we reverse engineered and decrypted it for our site to make our changes even after paying for it).
- Nasty, nasty core code. Very difficult to fix broken items.
- Fractured community (never healed after Joomla/Mambo split back in 2006).
- Most good plugins are pay.
- Rather mediocre developers. Anyone who likes to code in Joomla/Mambo in 2011 ought to see a psychiatrist.
- Developer pricing is all over the map as there are many old-school Mambo/Joomla developers still ought there churning out convoluted future-resistant code quite affordably.
WordPress
Advantages
- Huge community.
- Easy to optimise for performance thanks to Donncha O Caoimh and Frederick Townes. Great work guys.
- Easy to theme in a unique way. A WordPress site does not have to look like a WordPress site.
- Great plugin architecture.
- Plugins for everything.
- Lots of great professional developers.
- Fast development cycle. Improvements every year.
- Active leadership from Automattic and founding team. Particular thanks to Mark Jaquith for keeping the community running with less nepotism and more fairness than most collective human endeavour.
Disadvantages
- Fairly weak core code (in comparison to Drupal, but not Joomla!) but core getting better every year.
- Lots of really crap faker developers in the pool who couldn't build a working website to save their mother's life.
- Lots of popular but seriously broken plugins which will cripple your website performance forever and make it nearly impossible for you to cleanly upgrade (NextGen Gallery, I'm looking at you but not just you).
- Really crappy commercial themes which are heavily marketed but compromise your ability to either upgrade or switch themes and compromise performance for the life of your site.
- Weak static page management without adding plugins. Easily fixed with said plugins.
- Too fast an upgrade cycle. You have to keep upgrading your site, whether you like it or not, for security reasons. There are no security releases only new versions. Feel the pain for a commercial site with running a full complement of plugins. Corollary: choose your plugins and plugin developers very, very carefully for cleanliness of code and frequency of update.
Conclusion
For a very large commercial project, I can see a justification for choosing Drupal. On a big project, most of your expense will be custom development anyway - everything has to be optimised and integrated - so you don't much care one way or another about a myriad of plugins which you will probably not use. I still wouldn't make that trade-off: slightly better core code for a vast pool of community contributed code. But it's a defensible position.
Joomla/Mambo should die a violent death. We did our first CMS project in Mambo and last year redeveloped a couple of existing sites in Joomla. Our best developers - very platform agnostic - threatened to quit if I accepted anymore Joomla work. Such crappy, convoluted spaghetti code they'd never seen. And these developers have had ample chance to see the worst side of WordPress.
The only justification for a site in Joomla/Mambo is that it's legacy (i.e. you already did a lot of custom development on it six years ago and don't have the budget to migrate) or that you are part of an international network standardised on Joomla/Mambo and the mothership discourages anyone from leaving the central platform (our client's situation). For everyone else, just migrate out and count your blessing that you got your site out alive. Enjoy the fresh air and clean code of WordPress (or Drupal).
WordPress is the platform of choice in my opinion for the small, medium or large business. Whatever holes you can find in WordPress (editorial management process, page management, ecommerce, membership site) are easily solved with high quality plugins.
The cool part about WordPress is that the core is kept clean so that you aren't forced to load code you don't need if you want a simple weblog. Thus WordPress can be a weblog, a corporate information site, a membership site, a store or an international news network.
We regularly develop advanced real estate sites in WordPress, maintain a very sophisticated insurance site, have developed elaborate furniture rental systems and develop the most delicious cooking sites as well as gorgeous online literary reviews. Not to mention political, news and law sites. All in WordPress.
The danger with WordPress include the overhyped commercial themes which don't solve your problems but pretend to (I'm looking at you DIYthemes.com and Thesis, WooThemes and ElegantThemes). A related danger are the weak developers and hangers on who have infested the huge WordPress community and enthusiastically give bad advice, whether about SEO or gallery plugins. These clowns will happily break your website for pay or into a defective by design commercial theme. Forewarned is forearmed.
Just like any other serious professional endeavour you need steady hands on deck when you want to take your site to the next level if you want to maintain performance, appearance and compatibility. Once you have substantial traffic or need ecommerce, WordPress is no longer a DIY venture for the non-programmer.
We personally recommend people start a new site on WordPress.com unless they are developing for an established business. Once you have an audience or a functioning business, self-hosted WordPress is the way to go. Even the sky is not a limit. There are few sites we could not develop better and faster in WordPress.
As a web development company, we build a lot of sites. Many of the sites are true custom development jobs, starting from TwentyTen or Cutline for the base template files. That's the right way to build a site, as you'll quickly see.
But often our clients can't afford custom development. So we bought developer licenses to WooThemes.com and ElegantThemes.com and thought we were set. While Woo are as a group not very refined and seem to be getting less so every month, ElegantThemes offers many really well-designed themes.
All these paid templates with extensive configuration dialogs (WooThemes, Elegant Themes etc.) usually look nice and are a great alternative if you have little money to spend, little or no template programming skills and you want to be able to tweak how your site looks like.
Not so fast.
Not only do the handy internal configuration tools for "quick customization" give clients every opportunity to break their own sites, they carry a lot of overhead. Your CSS files will be bloated as you are always offering the code for two column, three column and six or seven different colours.
But there's a limit all this configuration options have and you can't get beyond that limit without changing the core files of the template, so if you want to do some serious customization, and not just change the colors, there's nothing good about the configuration screens.
There's a lot of talk about how professional paid themes are in comparison to free themes. It's not what we've found. Cutline, Twenty Ten and Oulipo are all much better coded than any theme we've found at WooThemes or EleganThemes.com. You can't just choose any free theme but a good one looks to be better than a paid theme. There's a couple of reasons. First, a good free theme is not trying to be everything to everyone so most don't suffer featuritis. Second, a free theme is often coded at leisure and only released when it's ready. Paid themes are a commercial product and the more themes a developer can cram out quickly, the more he earns.
Featuritis often means that extra functionality is jammed into the functions file which should be taken care of via plugins. If you add extra functionality via plugins, it's easy to switch themes. If all your custom functionality is in the theme, your website is a prisoner in a pretty gilded cage. We can help you move out, but it's a task.
Here are some concrete case studies of our latest misadventures with paid themes. Read and weep for all the unfortunate site owners who are enduring slow site loads and crashing shared hosting the world over with commercial themes.
When building a site or a plugin, we always check the number of database queries made when displaying the index page, archive page, single post and so on. That helps us discover any bad (by "bad' I mean not necessary) database queries and bad code inside the plugins or templates before a database server goes down because it's overloaded - nothing special on shared hosting environments, it even happens for well optimized and cached sites which have a bad luck of being too popular.
To do this kind of audits use WPDB Profiling plugin for WordPress. It shows you all sorts of information in the site footer and you can turn it on and off as you like.
We built a website with Daily Edition template and when it was all ready to go live, we discovered that it has 85 queries on every page load! It took us a while to figure out where the problem is and it still sounds a bit weird: the number of queries dropped to around 65 after we turned on the "Hide SEO custom fields" option:

Weird Daily Edition Options
How can displaying the SEO custom fields on post edit screens take extra database queries? We use FV All in One SEO Pack plugin for SEO, so we don't have these problems. But who would guess that turning off unused features can speed up your website so much?
The updated version, which was released shortly after we found these issues has around 60 queries, so this problem appears to be fixed. However, there are more issues. Let's go deeper into PHP here:
The Tabbed widget of Daily Edition is taking too much queries. For example, here's the original popular posts code:
$popularposts = "SELECT ID,post_title FROM {$wpdb->prefix}posts
WHERE post_status = 'publish' AND post_type = 'post'
ORDER BY comment_count DESC LIMIT 0,".$pop_posts;
$posts = $wpdb->get_results($popularposts);
if($posts){
foreach($posts as $post){
$post_title = stripslashes($post->post_title);
$guid = get_permalink($post->ID);
...
(display code here)
...
woo_get_image('tiny',35,35,'thumbnail',90,$post->ID,'src',1,0,'','',true,false,false);
...
}
}
That code takes 2 addition database queries for each related post!
Here's how we rewrite the function to avoid that:
- use the WordPress function to get the posts - don't use direct SQL commands on wpdb object if possible
- use global $post
global $post;
$tmp_post = $post;
$myposts = get_posts('showposts='.$pop_posts.'&orderby=comment_count&order=desc');
foreach($myposts as $post) {
...
(display code here)
...
woo_get_image('image',35,35,'thumbnail',90,$post->ID,'src',1,0,'','',true,false,false);
...
}
$post = $tmp_post;
This code takes only 1 query for 1 post and if some of the posts already appear on the page, they are not queried again, thanks to some internal WP caching mechanism. Notice that we store the original $post object in a variable and then put it back.
Going through various templates, you will be probably able to find more glitches like this one.
Delicate News (version 2.0) by Elegant Themes
The template looks great. We do some modifications based on client's requests and everything is fine. It runs on development site with a real set of data copied from the live site, so we should have a good idea about it's performance. The number of database queries is perfectly normal this time.

Delicate News demo template
The problem appears as soon as we take the new site live. There is some inefficient code, as the site runs out of PHP memory. So we quickly troubleshoot the issue, until we found that it's in the template:
Delicate News template tries to use a better count of comments posted to an article than WordPress does and it's running that algorithm each time a post is displayed. On the index page, we display around 10 posts plus this site has a lot of comments - put these two things together and your site goes down like a rock.
Normally WordPress counts number of comments for a post only when a new comment is posted - check out wp_update_comment_count_now in wp-includes/comment.php. Then it stores that in database (wp_posts table, comment_count field). It even provides a plugin hook called wp_update_comment_count.
Here's where the dangerous function is hooking to the standard WordPress template functions:
Line 32 in DelicateNews/includes/functions/comments.php:
if( phpversion() >= '4.4' ) add_filter('get_comments_number', 'comment_count', 0);
Comment out that line and your site will run again:
//if( phpversion() >= '4.4' ) add_filter('get_comments_number', 'comment_count', 0);
So even if you check the number of queries, you are not completely safe. An option to disable a function like this one would be a nice addition to the template configuration screen, or better - a complete rewrite of that function. This is an example of a extra template functionality which does not work as well, at least not in all cases.
We are not saying, that these templates are bad and you should not use them, but if you do, you better check if they are alright, before you use them on some project, as you can't be really 100% sure they work flawlessly in all situations - specially after some tweaks.
Checklist for template checks & optimization
Here are some general steps we follow
- Use WPDB Profiling plugin for WordPress,
- Check out the output of WPDB Profiling and look what takes extra queries - you should be able to see plugin functions
- Make sure you test the template as both logged and non-logged in (with no cache, make sure you enable WPDB Profiling for non-admin users when doing this)
Check following items
- Index page
- Archive page
- Single post
- Single post with a lot of comments
- Page
To isolate the problematic parts you can
- Disable plugins
- Disable sidebar widgets
- Disable whole sidebar
- Disable any unusual part of template (front page posts slider, advanced navigation, ...)

Excerpt from WPDB profiling analysis. Going through this list can save you a lot of trouble.
Here's a sample pingdom.com site load time report on two minimalist sites, one using a non-repaired paid theme, one using a custom theme built on cutline. One takes 20 seconds to load, the other 4 seconds to load, both on clean fast servers. Guess which one is which.

wordpress cutline custom theme load times

wordpress paid themes load time
Recommendation
Where possible avoid paid themes at this point. They are all top-heavy. You are much safer starting with Twenty Ten or Cutline. If you must use one, hire a good developer to clean out the theme before going live.