Homepage
Friday, May 7th, 2010
In January we helped Mark Levison's Agile Pain Relife consulting make a very successful Typepad to Wordpress transition. Behind the scenes there is a very interesting design case study, we'd like to share.
The main aim was to move the content from Typepad webblog to his new business domain. Mark's company focuses on the business of "relieving software development pain". He came to us with a great domain and a catchy name for this business: Agile Pain Relief Consulting comes from.
Mark chose the WooTuits theme, which we thought was a great fit. He didn't ask any significant modifications. The challenge was to adapt it to Mark's consulting firm's business goals. At Foliovision, when we talk about customising a template it goes far beyond simple changes like background colour or the size of the font. We start with a template but seek to end with a unique site which look like a custom design.
We firmly believe that getting one's logo and branding right is the starting point for a successful design. Mark didn't have a budget for the logo work so we agreed to do a new logo ourselves which Mark would purchase if he liked it.

The original logo
The original logo was saying the company name in simple black bold Times font without any other adjustments. Our concept was to focus on the "pain relief" element of company's business name.
We wanted to create strong, iconic branding capitalising on the billions of dollars already spent by pharmaceutical companies on pain relief imagery.
Here is our first good attempt.

Redesigning the original pill
This logo show the creative way of redesigning existing brand identity. Why to have the pills lying around your logo, when they can help tell the message straight by forming well known sign of the medical cross? Why to use serif font when simple, sans serif, modern looking typeface can communicate your brand values more clearly?

Creative redesign
But we still wanted to get to something stronger. After a trying many things we suddenly realised that AGILE is exactly five letters just like the word BAYER and their famous original pain relief pill: the simple aspirin.
Here's what we came up with:

Bayer aspirin pill idea
Since the logos were done rapidly, to as concepts, we used the existing Bayer aspirin pill. After acceptance we planned to do the 3D imaging necessary to get a convincing scalable version of the pill for both print and web with AGILE instead of BAYER.
Our client Mark liked the Bayer aspirin pill idea.
Unfortunately he was unable to find the resources for redoing the pill and the logo remains a concept only for now. Mark went with a homemade logo:

Self-made solution
Alas, homemade logos are often not as effective at presenting one's brand as a designer version. We are really sad that we were not able to complete this project for Mark.
Mark told us he doesn't think logos or design are a substantial reason that a client would choose a supplier or not. We disagree on that question. A logo is not a substitute for good service or product, but a complement. In our experience, A convincing logo will help with:
- media relations
- getting a better price
- closing the deal
Hopefully a good project will come Mark's way this year and we can finish the job for Agile Pain Relief Consulting.
What are your thoughts on the important of a good logo?
Business |
Tuesday, May 4th, 2010
WP Spam Free is a great antispam solution for Wordpress. But if you ever checked your site loading speed in any of the site speed loading tests (we like to use Web Inspector in Safari), you surely noticed that the WP Spam Free's wpsf-js.php JavaScript file is taking too long to load. And no caching plugin will stop that if you want to have working comments.

WP Spam Free Loading - check out the wpsf-js.php item
The reason is that this plugin uses a unique random cookie to protect your blog from spam. And to generate the cookie name and value in the JavaScript file it includes all the Wordpress code on every page load - thus slowing down the execution of your site's PHP code.
However there's a new experimental option in WP Spam Free which turns of this JavaScript while keeping the cookie anti-spam protection in. Here's how to turn it on
- Open your WP Spam Free Settings page.
- Add this to the location bar and press enter:
&showHiddenOptions=on
- This is what the location bar address will look like:
..../wp-admin/options-general.php?page=wp-spamfree/
wp-spamfree.php&showHiddenOptions=on
- You will have this extra option:

WP Spam Free - Hidden option
Now you will notice that the JavaScript for WP Spam Free is no longer loading. Let's give this option a try and find out how effective is WP Spam Free without the classic JavaScript cookie protection. Hopefully in new version of this plugin it will be tested and fully operational.
Right now, we are adding some anti-spam features to our comment moderation plugin Thoughtful Comments which will use zero extra resources and your server load won't be affected by it.
WordPress |
Friday, April 23rd, 2010
One of our client recently had an annoying comment posted on his site. Even more annoyingly, the commenter had posted a fake email and clicked Subscribe to Comments. Now this client runs a pretty busy client section: 200 comments per post is not uncommon.
Result of the fake address passing: over 200 bounced emails in his inbox. Richard tried to remove the commenter's subscription in the admin section of Mark Jaquith's Subscribe to Comments (WP Plugins). It didn't work.
We tried to block the user from receiving any comments. Didn't work.
Clearly there is an issue between Wordpress Subscribe to Comments and Wordpress 2.9. Easy enough to fix. But we have about five popular plugins right now in active development and adopting another step-child would take us away from our existing work.
What did work for stopping the bounced emails, we simply removing the commenter's address from the email.

Wordpress Subscribe to Comments Admin options:
These are the ones which don't work in Wordpress 2.9
unsubscribe and block - they are still working in Gurken
After that we did a bit of looking around and a fellow by the name of Martin Spuetz has written a fork called Gurken Subscribe to Comments (WP Plugins). What's important is that Gurken Subcribe to Comments is fully compatible with Mark's version which means that installation is just a question of disabling one and enabling the other and at some future date it would be possible to switch back again.
Gurken Subscribe to Comments admin section does work, allowing commenters to be unsubscribed or blocked. It has another big advantage: which is double opt-in. A user has to accept being subscribed to comments.
How can double opt-in help?
- A fake email will only bounce once, not 200 times.
- A real email which is being routed into someone's spam bin will only go once.
- If someone subscribe's with someone else's email, s/he will only be disturbed once.
I don't know when Mark is planning to update Subscribe to Comments, but a big thank you to Martin Spuetz. As usual with German plugin authors, the code is excellent but the documentation is all in German. Fortunately Martin and I both speak German, so there is a whole new world of plugins out there waiting for us.
We're also trying Sergey Müller's Antispam Bee (WP Plugins) in place of WP Spam Free, as even with our custom modifications on a busy site WP Spam Free puts a heavy load on servers. Here's the excellent German documentation. Here's the English documentation. Wait, there isn't any.
WordPress |
Friday, April 16th, 2010
Shared environments for hosting are more vulnerable then dedicated. Using web based file manager creates even more security issues. In Foliovision we allow SEO Images (our web based file manager) to access only one directory. Now there is a question which permissions you want to have on this directory.
Not using fast CGI on PHP (PHP is running as apache extension)
777:
| Pros |
Cons |
| Files and directories are manageable through FTP and SEO Images simultaneously |
This directory is even more vulnerable since any server user is able to write to it |
755:
| Pros |
Cons |
| Only apache user (usually named httpd) is able to write to this directory, which enhances the security |
Files are not manageable through FTP |
If you are using PHP in CGI mode (Installed as CGI binary) you can leave the permissions set to 755, because the CGI application is the same user as FTP. Also using a web based file manager that operates through FTP will solve permissions issues, but typing the FTP password over and over again is uncomfortable. Storing the FTP password on the server is a great security risk.
WordPress |
Wednesday, April 7th, 2010
The biggest disadvantage of our WYSIWYG editor for Wordpress was the incompatibility of built-in image uploader/manager tool with Safari.
We are very happy to introduce the latest version - 0.9.10 - which contains a new version of KFM and thus works in Safari. That's a good news for all the fellow Mac users. If you experience any problems, just drop us a comment and we will try to fix it in next release.
Another features of the new version:
- Image management tool now allows multiple file uploads via built-in Flash uploader
- Plain text editing option for posts (if want to have a full control over the post HTML)
- Wpautop and wptexturize are disabled on posts edited with Foliopress WYSIWYG - makes sure your posts have the cleanest and untouched HTML possible
WordPress |
Friday, March 26th, 2010
We want to have nice pictures in our posts. So do You. Good composition, colors and focus are by all means necessary. But there's at least one more step between picture in your camera and picture on your web - resizing. Either on your computer in your own image editor, or on the server using image processor designed for that purpose, or on both.
In this article we will look at the quality of the server-side processing of the pictures when they are being resized. There are two tools for image handling running under php. First is build-in php image processor called GD. Second tool is ImageMagick which needs to be additionally installed on the server.
Focus on Details
If you want really nice pictures, details matter. Details are the magic that makes the picture look extraordinary good. We examined how GD and ImageMagick behave when it comes to details. With GD we don't have many ways how to affect the result, but with ImageMagick we have the choice of filters and sharpening options. Look at the following portrait and notice the difference. You can see that the GD picture looks somehow blurry while the ImageMagick looks more sharp and preserves details.

GD, 32kB
|

ImageMagick, 63kB
|

Photoshop, 58kB
|
Details in the following example are even more disturbing in the case of GD. You can clearly see not even the blurriness, but also ugly artifacts around the windows - the set of lines formed by windows is really distracted in the GD case.

GD, 29kB
|

ImageMagick, 65kB
|

Photoshop, 56kB
|
As you probably already have noticed, the ImageMagick files are significantly bigger than the files produced by GD. This is the price we are paying for keeping the details. In comparison, Photoshop has slightly smaller files than ImageMagick.
The last example might be not so obvious. We resized the original picture only to 50% of it's size and cropped part of the face:
If you look very carefully you can see the small differences around eyebrows, eyelashes and in the center of the eye.
Sharpening
Another feature provided by ImageMagick is sharpening, while GD does not offer this option. Sharpening is applied during the resizing process, by default no sharpening is used. We already noticed that even this option is turned off, the pictures processed by ImageMagick look more sharp then the ones from GD. Here we offer a closer look at the effect of different sharpening values:

ImageMagick, no sharpening (=1)
|

ImageMagick, sharpening=0.9
|

ImageMagick, sharpening=0.8
|

ImageMagick, sharpening=0.5
|
We can see that slight sharpening (0.9) as used in the top left picture might be sometimes handy, but care should be taken to not use this parameter in extreme values as ugly artifacts come along this process - see the area around eyes or hair in the bottom left picture.
Conclusion
We care about how our pictures look, and so should You. In this comparison we showed that ImageMagick behaves much better when it comes to details and we think that ImageMagick should be used instead of GD whenever possible. We are willing to pay the price of bigger files in favor or preserving details.
Technical note
In this comparison we used the compression quality equal to 100% to not get any form of distraction from the compression algorithms. The filter used in ImageMagick for the resize was the Lanczos filter.
Wanna try it yourself? Here are our test images: building.jpg and girl.jpg
WordPress |
Wednesday, March 24th, 2010
I should preface this article by saying that of the social networks, we like LinkedIn best. They don't try to get ahold of information about you they shouldn't have and they give the account owner very good granular control of what appears in his or her account. On the other hand, sometimes one wants to close an account. And it should be easy.
How can one quickly and easily delete one's LinkedIn account? It turns out nohow.
First, it’s almost impossible to do it without seeking out very detailed documentation. Fortunately you have arrived at the right place.
The received wisdom is that you have to open up a customer support ticket to close your LinkedIn account. That’s no longer the case. Possibly thanks to the direct pressure that celebrity programmer (can a programmer be a celebrity?) David Heinemeier Hansson brought to bear:
In the second round of Heinemeier Hansson’s LinkedIn let me go hell, Heinemeier Hansson wrote:
But two people from LinkedIn has now been in touch and hopefully we can work this out. I’ll try my best to get the quit-account operation to be automatic, not manual. That’s the big problem.
But it’s still not easy.
You have to search for the cancel function deep in the help profiles. What brings it up is “delete profile” here – http://linkedin.custhelp.com/
Once you are there here are the instructions:
Close an account and remove your profile from LinkedIn by completing the following steps:
Log into the account you wish to close.
Click on ‘Account & Settings’ found at the top of the home page.
Click on ‘Close Your Account’ under Personal Information.
Select a reason for closing your account.
Click on ‘Continue’.
Members should only have one LinkedIn account. Multiple accounts can prevent the ability to accept an Invitation. Closing additional accounts should resolve this dilemma. Prior to closing any secondary accounts:
Inventory all connections and identify any that may be missing from the primary account you wish to keep.
Send Invitations to those connections missing from the primary account.
Update any profile information that maybe on other account profiles.
Note: Once the account is closed, a user will no longer have access to the account or the contact information. If an account is closed in error, it can be reopened by contacting Customer Service. LinkedIn will be happy to re-open your account if you can provide a confirmed primary or secondary email address tied to that account. However, LinkedIn does not have the ability to restore any pending invitations or sent recommendations on a re-opened account.
Not so easy. If you are managing any groups you have to delete those too.
You have to go through about six screens to get this done.
One of my clients has multiple profiles. The emails that those profiles were created under are long gone. Let’s see how long it takes LinkedIn to actually respond.
Update: out of three duplicate profiles:
- I found the email and removed the account
- Wonder of wonders LinkedIn removed this one based on my ticket (logged in as my client from his main account)
- This one (a Private profile but certainly my client) is still there.
God help you if you actually sign up for their paid service. Apparently they will not allow you allow to terminate at all in that case. One poor sod had to cancel his credit card to get off paid LinkedIn:
I tried to cancel my $20/month subscription with LinkedIn. They never responded to emails and charged me for months until I finally found a way to stop the billing. Seriously this worked.
Cancel or report your credit card lost or stolen with the number you used for LinkedIn. no new charges occurred after that. And my account was finally set back to the basic status no more $20 fees.
What’s worse, for a business which takes money for its services, LinkedIn does not answer its telephone. Here’s the number in case you need it: if anyone comes across an extension which actually works you can post it and I will send anyone who subscribes here that info. Posting it on the open web would probably lead to the extension being disabled within a few weeks.
Speaking of which, LinkedIn’s pricing is absurd – $400/year for an address book. That’s one pricey piece of software. We pay $100/month for our online accounting package and something similar for project management but there are ten to forty users using those services day in and day out.
Epilogue
With the help of a senior customer service manager (I think the head of the whole shooting works) we were finally able to get some duplicate accounts deleted/merged. It was far too painful and took a matter of weeks. It necessitated giving false information to LinkedIn (if we didn't give false information they wouldn't help us), even though they knew the information was false.
In fairness to LinkedIn, there are people manning support and in extreme cases they are reachable. Which is better than Google (only place you can contact is AdWords, as they are taking your money) and probably Facebook (Facebook is so invasive we won't use it at all).
Internet Marketing |
Friday, March 19th, 2010
We use a Wordpress plugin called Amazon Showcase Wordpress Plugin to put books from Amazon on some of our client's sites. Well, we used to, until recently.
This plugin produces ridiculously long Amazon links for Amazon Affiliate Program (which let's you make money advertising Amazon products):
http://www.amazon.com/Sleep-Over-Artist-Fiction-Thomas-Beller/dp/0393321711%3FSubscriptionId%3D(Access-Key-ID-here)%26tag%3Dfoliovision-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0393321711
There are parts of this long URL which seem to be pretty easy to understand and they seem important and there are some part which seem to be redundant.
After reading some articles on this topic we decided to create a quick tool to generating these Amazon Affiliate Links. The basic idea comes from this nice article from 2008 and even nicer from 2009.
Check out our tool here:
http://foliovision.com/seo-tools/marketing/amazon-affiliate-link-generator
Other thing which bugs us about the Amazon Showcase Wordpress Plugin is that it's not caching the images. The images are always loading from Amazon servers - slowing down your page load.
That's why we are working on our own Amazon plugin which we may release on wordpress.com when it's ready (it will have nice URLs and will store the images locally, among other cool features).
Internet Marketing, WordPress |
Wednesday, March 17th, 2010
Many sites whose new posts were previously indexed in one day have found themselves waiting 7 day to have their posts indexed. If you are depending on AdSense revenues for visitors clicking on topical recent posts, this is a big problem. I'd imagine that would be about a 60% income drop for your site overnight.
What's causing this issue?
Longtime rogue SEO Michael Martinez is bandying about the theory that the issue is using Wordpress SEO plugins. And running around every forum in town shouting it from the rooftops.
Let me reiterate my opposition to the use of "All In One" and other SEO plugins - they are not helping any blogs with search engine optimization. They are bells and whistles, busy working gadgets....
A typical default Wordpress installation does a perfectly fine job of allowing you to configure your page titles, URLs, and content. You don't need to embed "Keywords" in meta tags and your autogenerated descriptions will be no better than whatever a search engine would provide (and the search engines will ignore meta descriptions in many queries anyway)....
There is a LOT of confusion over what you need to do with a Wordpress blog. The less you burden it with so-called "SEO friendly" features, the less likely you'll screw up your site in the search results.
If you don't know enough about search engine optimization to do it yourself, then you're really in over your head when you depend on a theme or plugin to make the decisions for you.
Installing an SEO plugin will not damage your SEO.
- Having custom handwritten descriptions can increase your clickthrough 50% or more.
- Including a good short keywords section with the 5 or 6 top tags for your post can help with Yahoo still.
- Writing a second structured title for search can really help (your article header should be written for the reader and not for search, i.e. with wordplay and puns and spin and short forms are good. Like a newspaper headline but the page title must include keywords)
So an SEO plugin can really help your SEO with minimal time and trouble.
Where Michael Martinez is quite likely right is that telling Google not to index whole sections of your website (archives, category and tag pages) and autogenerating metadescriptions is unproductive at best and dangerous at worst.
Semper Fi's All in One SEO (Semper Fi are not the original author, Uberdose is) does set all these things wrong out of the box. Very aggressive no-index, no-follow settings. So it is dangerous.
With FV All in One SEO, we took the opposite approach. The defaults are very conservative.
- No-index is turned off.
- No-follow is turned off.
- Dangerous choices are hidden in advanced options out of the way of the beginner user.
We don't even rewrite your titles by default as a good Wordpress theme should handle titles on its own.
Here's what our option screen looks like:

FV All One SEO for Wordpress options: All the advanced voodoo is hidden and out of the way:
Default options do not include any no-index or no-follow nonsense.
Do not encourage your children play with knives either.
And here is the meat and potatoes of the interface: custom titles and custom metadescription.

FV All in One SEO post interface: We count the characters for you and even offer
useful rollover tool tips for your client or for a beginner user. The goal:
Making SEO easy for both you and your client
What Martinez is ignoring is that may sites not using Wordpress are waiting on indexing now too. So rather than ranting about Wordpress SEO plugins, Martinez should be on the war path against no-index, no-follow, risky use of robots.txt and autogenerated content.
And Michael, if you want to offer the benefits of advanced SEO for Wordpress without the risks, you can safely offer FV All in One SEO.
SEO |
Friday, March 12th, 2010
MenuMeters is a superb tool for those who use their computers heavily.
While you are multitasking you are instantly alerted to issues in uploading, memory leaks and paging, caches being permanently to disk, core processes or user projects getting stuck.
Frankly the cost of the instant info is having a fair amount of your menu bar taken up with the four indicators.

OS X MenuMeters Raging Menace
So on my most recent two Snow Leopard installs I tried to get by without MenuMeters. Bliss in simplicity. Higher productivity.
No such luck. Without instant visual feedback, your computer will bog down on a broken Internet connection or a runaway process, slowing one down more than the milliseconds to see where the issues are.
When you notice a problem, MenuMeters helps you dig deeper very quickly. Under the connection section you can instantly open up Network Utility, Network Preferences or Internet Connect.
Under the memory pie chart, you can see full details of what is happening with your memory.

MenuMeters disk usage
Under the processor indicators, you have the option of opening Activity Monitor or Console. Console is your best friend for quickly finding malfunctioning software, often from the nominally most reliable sources i.e. HP Print and Scan drivers. Most issues are clearly logged there). So having a directly link to it is great.
Normal mortals may not need this but if you are typically running 15 plus apps with lots of open browser tabs and open browsers (you know who you are), you should have this.
MenuMeters is truly well thought out software which helps one do one's work better and faster. The kind of software which makes owning an Apple computer a better experience.
IT |
Tuesday, March 9th, 2010
For reasons unknown, Apple makes it really difficult to move around one's iTunes library.
Just moving the library to another hard drive will result in all the files being disconnected. Unlike Aperture or Final Cut Pro, there is no automated path fix. If you want to correct the paths you have to do it file by file.
There's also a hidden function inside iTunes which is really deadly (I believe it comes turned on by default) to reorder your library. If you do that, compilation albums will often be broken into the individual song. Each in their individual artist folder.
Basically if you let iTunes loose on your library, you will entirely lose Finder organisation. Guess what? Then you will be fully dependent on iTunes as no finder based album play system (the excellent Vox for instance) will work well anymore. So there is method to the madness.
Even the songs which don't have correct metatags will all get dumped in a large virtual graveyard instead of being left in their date or album structure.
Assuming that you were clever or cautious enough to turn off allowing iTunes to organise your library, you don't want to let Apple get their grasping hands on your library now when you move it with consolidation or anything else.
There is a work around which requires getting your hands dirty but indicates just how easy it would be for Apple to get it right.

iTunes library files
- Quit iTunes.
- Go into your iTunes library (probably ~/Music/iTunes) Once you are there, backup the iTunes xml and database files.
- Open up the iTunes XML (use a serious text editor like TextWrangler/BBedit or Smultron, we are talking about 10 to 20 MB of XML data for a six to twenty thousand song library)
- Do a find and replace in the iTunes xml file to update all of the song locations. They are stored as simple paths like: file://localhost/Volumes/MusicHall/MusicMovies/Music/
- Save and close the iTunes XML
- Now open the iTunes Library file in a text editor, delete everything, and save. If you don't delete the data inside the library, iTunes will prefer the data from the database and erase your XML file (be careful with this one it happened to me the first time and deleted my special hand made XML file. I didn't have the right backup: in this case, delete the new iTunes Library and iTunes Music Library XML, put the original iTunes Library back in, regenerate the XML and start again and make sure to delete the data inside the iTunes Library but leaving the file in place).
- Reopen iTunes: the library will be rebuild from the xml.
All your files should be in place now, including metadata. Apparently the date added will be changed to the current date but that's a small loss.
Why Apple must make basic maintenance so difficult, I have no idea. If it weren't for the internet (the base of this hint came from Metafilter), it wouldn't be much fun owning a Mac anymore, as it would be impossible to run it as a free machine.
One of my principle grips about iTunes is that it stores album art in a database, as well as all your song ratings, instead of in the original files as well. Earlier versions of Aperture were criticised for the same thing, but pro users were refusing to use Aperture because of the data lock-in. Apple can get away with a lot more with a free app which is obligatory for all those iPod and iPhone owners.
IT |
Tuesday, March 2nd, 2010

Whatever happened to the CDDB and to FreeDB?
CDDB evolved into Gracenote. It looked like they were losing their stranglehold when Roxio moved to FreeDB in 2000. A closed settlement resulted in Roxio moving to Gracenote full time. I hope they were clever enough to get free stock in Gracenote for the pleasure.
The next death knell (although no one knew how important it was at the time) for FreeDB was that Apple went with Gracenote and then disabled any ability for users to submit to FreeDB (for a couple of years it was possible to use the FreeDB servers instead by monkeying around in one's hosts file, but it was a pretty techy solution). Without iTunes or Roxio's Toast, FreeDB was cut off from any oxygen in the Apple ecosphere.
Gracenote was recently sold to Sony for $260 million. The venture capitalists and the thugs at Gracenote managed to get something for their trouble.
In the meantime in about 2006, the FreeDB had a melt-down between the project owner and the lead developers. In the meantime, the horribly named Musicbrainz hit the scene with a music recognition algorithm. Terribly complicated, terribly slow. Apparently it works. But there is no easy way to submit data.

MusicBrainz
My inspiration here? There isn't a single tagging client I can find for OS X which will allow me to upload to either FreeDB or Musicbrainz!
There should be a client (free) which will grab the Gracenote/CDDB info which iTunes collects and resubmit it to both FreeDB and Musicbrainz. iTunes can't do something like that as part of its own license but the new client can.
If Gracenote wants to shut this client down, it begins as open-source and goes offshore. The client should include a manual option so that not all of the data is polluted. The client should allow itself to identify itself as alternative software (to make sure that the database recipient can't be faulted for accepting the external data).
Personally, I'd resubmit all my music info to Musicbrainz and FreeDB if this app existed. And I know a hundred more who would do so as well. Litigation is likely to drop off at this point, as the aggressive thieves at Gracenote have been paid out now.
I can't imagine Sony wants to go whacking through the bushes, snatching at end users.
The CDDB story is one of the best examples I've seen of how human beings can turn any act of grace (pardon the pun) into loathsome slavery.
This sad saga worries me as it suggests that Apple is more than prepared to turn our computers into corporate property. For the moment, OS X is very free and my data is my own, but frankly the rumours of DRM on the iPad for ebooks worry me.
If Apple thinks its core audience (hey remember us, we're the guys who kept you alive through that huge trough at the time of the clones) will put up with proprietary data formats and heavy DRM, they are very wrong.
In the meantime, I want a client to let me submit track and album info to FreeDB and Musicbrainz.
Business, IT |
Thursday, February 25th, 2010
Apple Mail is the email client I use as it looks good and has a great search function. But it doesn't matter if you use Apple Mail or something else, if you don’t want your every move tracked, you have to prevent your email client from loading external images. On OS X, I use Apple Mail and the way I block external images is with Little Snitch.
The way to do it is to block all connections except the ones you allow.

deny all connections Apple Mail Little Snitch
But for some services you do want to see the external images.
In my case one service for which I do want images though is Basecamp. 37signals finally upgraded their email notifications to html and they look a whole lot better and are arguably functionally better as well – as the presentation of information is clearer.

Basecamp html email notifications
So how do I get the thumbnails in Basecamp?
If you’re on OS X with Little Snitch and Basecamp, unblock:
- asset3.37img.com
- asset2.basecamphq.com
If these two don’t work, what you need to do is open the source of the email (in Mail command-option-U). Unfortunately 37signals chose to use Base 64 encoding for the html part (absolutely no need to do so).
You want to copy the part of the document that comes after this:
--mimepart_4b8295ce1ce1d_4f231be02701438a6 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: Base64 Content-Disposition: inline
and before this:
--mimepart_4b8295ce1ce1d_4f231be02701438a6--
and then take it to ToastedSpam’s Base64 Decoder and plug it in.
You’ll now have plain html and you just have to search for asset or img in the html. Add those domains to Little Snitch to allow connections in Mail.

Allow Mail connections asset Basecamp HQ
If there are any other html emails for which you would like the images, you can use a similar technique to allow their images. Keep in mind most newsletters have a link to allow you to open the email in a browser which is a quicker and easier solution.
IT |
Monday, February 15th, 2010
- WYSIWYG style configuration now resides in plugin options.
Easier configuration - no need to edit your CSS file to make your editor true WYSIWYG. Don't worry, your old configuration will still work.
- Image management tool now appears with the right year/month/ directory opened.
Your blog contributors won't upload images into your root image directory anymore.
- All uploaded images above certain height and width (check out plugin options) are sized down to fit into it.
Well, this won't handle those insane 5000 x 3000 px images some people try to put into their posts (as it's just too big for the PHP memory), but at least it takes care of the oversized 2000 px wide images which won't fit on your screen when opened. The default setting is 960 px of either width or height.
- Works on sites with secured wp-config.
- Insert FV Wordpress Flowplayer button added.
Let's you use our popular video plugin with ease.
- Pasting dialog receives focus when it appears.
- Dreamhost JSON glitch fixed.
Head on to our Foliopress WYSIWYG plugin page or Wordpress.org.
WordPress |
Saturday, February 6th, 2010
A lot of our plugins use embedded shortcodes inside square brackets.
Our embedded shortcodes look something like this:
[command parameter=something value=number]
The reason we use square brackets is that square brackets parse just fine in WYSIWYG editors including our own Foliopress WYSIWYG.
We've had a lot of simple questions about how to use our FV Wordpress Flowplayer. I couldn't understand why. The instructions are pretty straightforward.
It turns out that the shortcodes were being parsed and showing the result instead of the code people should be using. How anybody managed to get the plugin working without the short codes is a bit of mystery to me. But they did. Wow can people be ingenious sometimes.
So once I'd found the error, we weren't much better off. I couldn't get the square brackets to stop parsing. With angled brackets it's not so difficult. One just escapes them like this:
< >
But there is no such escape for square brackets (or rather the escape still gets parsed by our plugins).
It turns out that the shortcode won't trigger even if there is a non-breaking space: .
But that is no real solution as it means that we are telling our users to insert a space or weird character where there is none. No, we needed a real invisible character to disable execution of the shortcode but leave no visible trace in the html.
After much poking around, I finally found one: ­ That's the soft hyphen character.
So I can boldly post commands like this:
[flowplayer src=example.flv, width=400, height=300]
Which would otherwise result in this:
Clearly showing an empty movie box isn't going to teach a visitor much about how to place an flv in his or her own post.
The long term solution is to code our plugins not to parse what is inside code tags. But in the meantime, soft hyphens can save you in a pinch from having embedded shortcodes execute when they shouldn't.
Alternate techniques (all in use on this site)
- use javascript to write the opening square bracket): not bad but I'd rather put in an invisible character than face fragile javascript in half a dozen tutorials
- use sniplets to hold the documentation (as sniplets don't get parsed a second time but just inserted).
Downsides: unwieldy as you have to go over to sniplets to edit or change tutorials each time. Not easily moved between CMS's or even sites. Plugin dependent.
More readable source code without a javascript code parser
While I was at it, I decided to turn all code into a nice dark green to be more readable and made it a few pixels larger too. Previously code on Foliovision was an elegant but slightly difficult to read medium gray.
WordPress |