Well, surprise, you didn’t even see it update… and you got Google Chrome 3 already. I guess you’ll just have to wait for TechCrunch to make an article. I’m pretty sure they’re as much taken by surprise as I am.
HFS+ Read Support for Windows – Now on Snow Leopard
Along with Mac OS X Snow Leopard comes a great surprise for all HFS+ lovers. Apple now includes an HFS+ read-only driver for Windows with Bootcamp. You can only get this if you have a Snow Leopard disc however, but it’s so cheap it might be worth it if you don’t require write functionality.
If you do require write functionality on Windows with HFS+, have a look at MacDrive. It offers a cheap solution for lone PCs in Mac-centric environments.
Now it’s Email Client Wars
The state of CSS support in email clients
MediaTemple’s Twitter account recently linked to a very interesting article on CSS support in email clients.
Now, while every knowledgeable techie in the industry knows email has always been a crappy platform when it comes to content, the results of the research conducted by CampaignMonitor is surprising. On a total of 65 CSS rules, Gmail only supports 33 of those, with 1 with partial or buggy support, and on top of that doesn’t support any Style or Link element in either the Head or the Body.
I mean, what? My favorite email client is actually one of the worse? Maybe not, let’s look at some other stats:
Hotmail supports 43 rules, 10 more than Gmail, and does support Style and Link elements in either the Head or Body (like the majority of recent mail apps). Yahoo Mail is the 2nd most advanced of Web Mail applications, supporting 53 CSS rules. Of course, Yahoo Mail supports the Style and Link elements in the Head and the Body too. Why Gmail’s lack of support for Style/Link elements is worrying is because only one desktop email client lacks this support too, IBM Lotus Notes 6 and 7. Version 7 was released in 2005 with a level of support already well surpassed by Outlook two years earlier, so go figure at how late Gmail is.
Coming in at a surprising 60 rules support, only missing 5 not so important rules (except 1, the e:hover pseudo-selector, supported by both Yahoo Mail and Hotmail but not Gmail), is AOL Web Mail.
And then you have Apple’s foray into the web mail space with Mobile Me, with a competitive support rating in at 52. However, it does not support Style or Link elements directly in the body, despite supporting them in the Head, although this could be seen as an effort to promote more standard HTML and CSS practices in emails by Apple rather than an actual lack of support.
On the desktop side, things are both expected and unexpected. Apple’s integrated OS X Mail app lacks support for only one of the rules, rating in at 64, while Mozilla Thunderbird is the gold standard by supporting it all, not surprising as Thunderbird runs on Mozilla’s Gecko platform, the same thing that powers Firefox. In fact, it is most likely that Thunderbird has an email rendering engine leaps ahead of other clients because of that.
On the unexpected side of the desktop comes Outlook 2007, with less support than 2003, Windows Mail which basically has the exact same rendering engine as Outlook 2003, and probably the most unexpected one, Entourage 2008, Microsoft’s Outlook for Mac per say, which has the exact same level of support than Apple Mail, making it highly suspect of using the same engine. I wonder what’s going to happen to that with Office 2011 for Mac, which Microsoft said will get rid of Entourage and have the first Outlook for Mac.
On the mobile side of things, the landscape is widely different and special. The iPhone is the most advanced, with support than Mobile Me, although not quite on par with Apple Mail, just 3 rules behind. Android Email is far better than Android’s Gmail app, actually coming in second with the Palm Pre not far behind.
Android Gmail comes slightly under its Web-based Desktop Client with 31 supported rules, followed by BlackBerry, which only supports 23 rules, making it the worse email client, for exception of Lotus Notes 6 and 7 that support only 11 rules. Yes, even Windows Mobile 6.5 and the very old Palm Garnet OS have better support, which brings in the question, why is the BlackBerry considered the epitome of enterprise communication? Of course, if you’re in the industry, you know why (there’s plenty of valuable reasons), but still, even more modern BlackBerrys not intended to save you bandwidth, like the Storm, have the same horrible render engine. In my opinion RIM products have just been getting worse over time. I guess being Canadian doesn’t make you competent in technology.
So what’s all this jargon of talk means for you?
Well, whatever situation you’re in, it means email is one of the worst communication material to send any kind of non-raw data. Just looking at Gmail’s growth and Thunderbird’s near non-existent market share shows how unimportant display has been in the email world and how you should maybe think of only sending text in your emails after-all.
Although as a fan of standards support, I would consider going Yahoo Mail Plus instead of using Gmail. But is it worth the effort? Gmail is so useful for so many reasons, and blends so well with Google Docs and stuff, and all of the Yahoo Mail Plus features are free on Gmail.
I respect Yahoo’s effort, but it might not be the right thing to focus on. Still, Yahoo has as almost as much active email users as Hotmail, Gmail and AOL combined, and a lot of these people rely on their actual Yahoo email address to do their daily messaging. In these scenarios, switching mail service is much harder as you have to give up your address. I know what it is, I’m tied to my Gmail address for my daily needs, and switching to Yahoo can be scary, especially since it’s such an unstable company right now. I’m considering switching to a corporate email address for daily use though, which would get me rid of that switching constraint.
One other hardly-covered aspect of that weakness in email is what newer services like Google Wave could bring, or even Twitter or Facebook. The odds are there, although for Google Wave it doesn’t look like it’s going to be any better; pointing at the face Google Wave is a Google product after-all, and Google surprisingly is a horrible company when it comes to HTML standards (just look at your source on Blogger, or Google Docs…)
New Snow Leopard Disc Reporting Behavior
When you boot up Snow Leopard, you might be surprised to find your total disk space bigger than it was before. Your 320 GB hard-drive might have suddenly jumped from a mere 299 to a near full 319. What happened?
No, your drive space didn’t magically get bigger because of an magic trick by Apple, rather, the way the disc size is reported has been changed to fit new data representations standards.
Traditionally, like most companies, Apple used to report the data the wrong way, or the old way, depending on who you talk to. The wrong/old way says that any multiple of the “byte” measure x1000 and up is actually 1024 times its value. For example, 1 KB (Kilobyte) would equal 1024 B (Bytes). However, in the new standards, given confusion with SI units which normally represent 1000 of a given item and not 1024, 1 KB has been rectified to be 1000 B. To illustrate the other measure still widely used in the industry for reasons beyond the scope of this article, a new measure was invented. In the case of the KB, we call this one Kibibyte (KiB).
Some Linux distributions chose to change their measure from KB to KiB, MB to MiB, GB to GiB, etc. and retain the same numbers. Others, like Apple, have chosen to avoid potential user confusion with the added small “i” and change the numbers instead to correctly represent a GB for example, as 1000 MB, and so on. Other manufacturers like Microsoft have yet to change and still use the wrong measures.
What happens to the hard drive is that advertised disc sizes are always in standard SI format GB. 320 GB is thus really 320,000,000,000 B. However, the way your OS, such as Windows, reads it, is typically the wrong way, GB (Giga) as GiB (Gibi), meaning 320,000,000,000 B reduced gives 298 GB, which is in fact 298 GiB. If you ever wondered why the advertised size of your disk was always smaller in real life, that’s the real reason.
Chapeau, Apple, for making it right.
OMG It was about time! Opera changes logo

Oh wow, who saw that coming. In 2009, it just seemed the browser I met with the same dull logo would stay with it forever. Well, lucky us, our docks and task bars will stop being poluted with the crappy red O logo starting Opera 10.
I really like the new O. It still stands out like a sore thumb my Mac’s dock crowd of icons for its rash color and lack of complexities, but alass, a bit like that new Firefox logo nobody saw (yup, they actually changed the colors and depth a bit since 3.5), it’s better, only in this case, way better.
Not withstanding the browser itself, the designers (Ian Hickson I think) at Opera Software are doing a good job with Opera 10. It’s coming out as a neat browser, although the lack of native looks is truly exasperating. Mind you, Apple does a so so job at making its components follow a real standard look, but the delicious generation style is at least more thourough on OS X apps than it is for its Windows XP counterparts.
Customize the Quick List in FileZilla
You know the Quick Connect thing on FileZilla? Is it clogged up? Do you wish you didn’t have to start over and erase everything? Your wish has come true. Follow the instructions bellow. All you need to know is a bit of XML, but it’s so easy it’s not very complicated to figure out.
Windows XP
- Go to C:\Documents and Settings\your_user_name
- Click in the address bar and append the following to the current URL: \Application Data
- It should look like this: C:\Documents and Settings\Pacoup\Application Data
- Double-click on the folder named FileZilla
- Open recentservers.xml with a raw text editor (e.g. Notepad)
- Head over to the XML Step of this guide
Windows Vista & Windows 7
- Go to C:\Users\your_user_name
- Click in the address bar to activate the URL field and append the following to the current URL: \AppData
- It should look like this: C:\Documents and Settings\Pacoup\AppData
- Double-click on the folder named FileZilla
- Open recentservers.xml with a raw text editor (e.g. Notepad)
- Head over to the XML Step of this guide
The XML Step
It’s only a matter of editing the right tags. Simply follow this before and after and you should figure it out. If not, ask your local geek or search Google for some very basic XML tutorials.
Before:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<FileZilla3>
<RecentServers>
<Server>
<Host>your_ftp_host.com</Host>
<Port>21</Port>
<Protocol>0</Protocol>
<Type>0</Type>
<User>your_user_name</User>
<Pass>xxxxxxx</Pass>
<Logontype>1</Logontype>
<TimezoneOffset>0</TimezoneOffset>
<PasvMode>MODE_DEFAULT</PasvMode>
<MaximumMultipleConnections>0</MaximumMultipleConnections>
<EncodingType>Auto</EncodingType>
<BypassProxy>0</BypassProxy>
</Server>
</RecentServers>
</FileZilla3>
After:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<FileZilla3>
<RecentServers>
<Server>
<Host>your_ftp_host.com</Host>
<Port>21</Port>
<Protocol>0</Protocol>
<Type>0</Type>
<User>your_user_name</User>
<Pass>xxxxxxx</Pass>
<Logontype>1</Logontype>
<TimezoneOffset>0</TimezoneOffset>
<PasvMode>MODE_DEFAULT</PasvMode>
<MaximumMultipleConnections>0</MaximumMultipleConnections>
<EncodingType>Auto</EncodingType>
<BypassProxy>0</BypassProxy>
</Server>
<Server>
<Host>your_2nd_ftp_host.com</Host>
<Port>21</Port>
<Protocol>0</Protocol>
<Type>0</Type>
<User>your_user_name</User>
<Pass>xxxxxxx</Pass>
<Logontype>1</Logontype>
<TimezoneOffset>0</TimezoneOffset>
<PasvMode>MODE_DEFAULT</PasvMode>
<MaximumMultipleConnections>0</MaximumMultipleConnections>
<EncodingType>Auto</EncodingType>
<BypassProxy>0</BypassProxy>
</Server>
</RecentServers>
</FileZilla3>
A flower, An alligator; When to use “A” and “An”
“A” and “An” are often confusing for writers of the English language. In terms of meaning, you can rest by knowing both have the exact same meaning, so no one will mistaken what you say or write because you used it wrong. The only thing it is really useful for is ease of pronunciation. It’s made so that the language flows better.
Just pronounce it out loud and you’ll know it looks weird:
- A flower
or
- An flower
Pronouncing the N and then the F feels awkward and unlinked. Just remember this simple rule: there can never be two consonants or vowels one after the other.
An flower and a alligator don’t work because there’s N and F following each other (2 consonants in a row) and A and A following each other (2 vowels in a row).
There’s also the plural trick. Look at the following:
1. “The flowers like the Sun.”
2. “The flower likes the Sun.”
That’s correct.
However, the following isn’t:
3. “The flower like the Sun.”
4. “The flowers likes the Sun.”
Case 3 is actually particular in that it is an incomplete sentence, however not an incorrect form. If the intent was to say the the flower likes (as in loving) the Sun light, then the grammar is wrong, however, by completing the sentence as follows it could be right: “The flower, like the Sun, has a nice yellow color.” A few punctuation differences and voila, it makes sense.
See how without the S at the end of like, the verb becomes the word like (as likeness, likely, likewise, alike). That’s why the S is there.
Case 4 is a major mistake, and an easy one to make because it doesn’t sound entirely wrong. Make sure to never put an S to the verb when the noun is plural.
If you have to have a trick to remember, think that there’s always only one S if it’s a verb.
Back from Vacation
Scala, Twitter and Crashed WebFaction FTP
So, I’m back from vacation today in this beautiful cottage I was at and there’s nothing like waking up to the smell of a shiny new article about Microsoft and Yahoo making a partnership… Great, I missed a lot during those 5 days (couple of hours of reading on TechCrunch that is). Anyway, while listening to this Floss Weekly podcast that featured DHH from 37 Signals, the creator of Ruby on Rails, my interest for Ruby and Rails naturally rose, kind of like back from the dead.
I’d previously given up on Ruby, and I think I’ll be doing exactly the same thing again, while not actually having picked it up again *. Why? This whole Rails thing and DHH’s “FU” humor prompted me to do a bit of research on to where Twitter was with all their Ruby problems. And so, just when I thought a language didn’t really matter anymore and that a database was the only real hog, boy was I proven wrong by this brilliant article Twitter on Scala.
Yes, I did read all the criticism towards this article, but, really, who do you trust most: angry Rails fan or Twitter developers? As for me, I decided I was going to place my bet on the Twitter developers and I am once again throwing Ruby out the window, and at the same time, throwing any dynamic language too. Ironically this blog runs on PHP, but let’s say I never expect it to really have a need for scaling beyond a simple single-core server and WP Super Cache, for which WebFaction provides ample solutions.
Oh, talking about WebFaction, there’s currently an FTP outage on my server there. Hurray, not even a week and I’m already having problems. Ironically my (mt) account’s FTP still works very well, but I can’t say I haven’t seen hiccups there either. Fortunately my sites are in top shape, but it’s already been 37 minutes since I’ve posted a ticket, and with no response and an FTP still down, it’s not cool.
The only critic I would have to make about Scala applies to every other language that’s not out-the-box like PHP or that isn’t tied to an IDE; that is, the installation process (symbolic links to your compiler, etc.) can be rather shady and is very often not explained in books. In fact, to learn it, I’ve had to figure out myself what was going on, both on Windows and Unix systems, which both have very different ways of doing it. Frankly I think Windows’ way is more simple to comprehend albeit less powerful, but really, I’m thinking of making a well-explained tutorial about that.
Edit: WebFaction finally responsded, although a bit late, but the issue has been fixed before they responded. I’m guessing they had more than me notifying them.
* Edit: I actually just did so, I picked up Rails and threw it away again. Despite having learned quite a bit of Ruby, which I did enjoy, I don’t like Rails as usual
phpBB spam no more!
Since our inception of the visual antibot and the question antibot plugin on AMV-Canada’s phpBB board, we’ve completely eliminated the bot problem. Quite simply, since May 4th 2009, we haven’t had ANY bot come through. We’ve even reduced the complexity of the captcha, and eventually disabled it completely, but to no avail, spammers haven’t come back.
Yes, I mentionned the visual antibot, basically an upgrade captcha almost impossible to figure out even for human (puts random pictures in the background, making it REALLY hard to read, we’ve actually had some people complain to us that they couldn’t legitimately register), but we got rid of that. The only thing we have to protect ourselves on top of the default installation is this: The Question Antibot
That thing is holy. Basically it’s question you make up and provide the answer for. Example, a mathematical question. It’s also super easy to set up and change everyday if you want. One big advantage is it putts off just about any bot, because they don’t know what to do with it. And if you have a large traffic site and some body programs the bot to answer the question, just change the question! It’s so efficient you don’t need a captcha.
Unless computers become sentient, I believe this should put off just about any spam bots.
Hit the link: http://www.phpbb.com/community/viewtopic.php?f=69&t=645075&start=0
PHP Particularities: Escaping characters the right way
PHP, like any language has its particularities. One of the them is the inability to understand escaped characters which aren’t in double quotes. So yes, there is a technical difference between a quote and a double quote in a programming language, in PHP at least, if anyone asks.
How does it work? Let’s look at some examples!
$stringData = '<?xml version="1.0" encoding="UTF-8"?> \n SoraGami';
fwrite($fh, $stringData);
So, that PHP script generates an XML file as you can see in our variable $stringData. However I’ve omitted the other code as it isn’t the focus of this article. So, highlighted in blue is the famous escaped character which, in PHP and in all C-insipired languages creates a new line. However, to use it, you must put it inside double quotes (“) and not single quotes (‘). Unfortunately, in the scenario presented here, we needed to put the whole string inside single quotes so that PHP wouldn’t mess itself up with the double quotes inside the XML doctype.
In case you didn’t know, if you have elements with quotes in your string, you can use a combination of double and single quotes to make it work, like this:
' "..." ' " '...' "
Maybe that helped. Anyway, back to our previous example. The way we made it, because \n is within single quotes, it won’t work and appear as text instead. In this case, $stringData would give this:
<?xml version=”1.0″ encoding=”UTF-8″?> \n SoraGami
Unfortunately this is far from what we wanted to achieve, which was to have SoraGami on a new line. We could do the following:
$stringData = "<?xml version='1.0' encoding='UTF-8'?> \n SoraGami";
fwrite($fh, $stringData);
That would work, but in my opinion Single Quotes don’t look like XML. So, instead, you can do it like in two sequences:
$stringData = '<?xml version="1.0" encoding="UTF-8"?>';
fwrite($fh, $stringData);
$stringData = "\n SoraGami";
fwrite($fh, $stringData);
While this works, you might be wondering why the second sequence doesn’t overwrite what we did before. Our PHP $fh variable is written like this:
$fh = fopen($myFile, 'w') or die("can't open file");
‘w’ says to write, but PHP is session-based in the browser, and so as long as we are in the same session and didn’t explicitly fclose() our writing script, PHP is going to append whatever we write to the file. To overwrite, either reload the page (new session) or fclose() the file and make a new fopen() and fwrite().
If you want to append to the file, just changed the ‘w’ parameter for ‘a’. Tizag has a nice tutorial for PHP File Handling that explains further on what we did here.
You might also be wondering why ‘\n’ doesn’t work and “\n” works. The reason is simple, PHP will escape \n regardless of context when inside double quotes. That means if you wrote that:
“The server can be found through Windows on \\nopi”, you would obtain that:
The server can be found through Windows on \ opi
However, since you don’t want PHP to escape the \n in this situation, you would write the following:
‘The server can be found through Windows on \\nopi’, which would give the correct:
The server can be found through Windows on \\nopi