06 Jun 2010When I use great registrars or hosting services, I say so, and loudly. From all those that I have tested, there is no better registrar than Gandi and no better hosting service than Dreamhost.
But when I encounter really lousy services, I won't hide to say so too.
Arsys is one of them. It's a franco-german-spanish registrar. I just needed to change the DNS server of a domain on it, and even that was impossible.
When I tried to put Dreamhost NS servers in the form and submit it, I was greeted with a bold red error message telling me that an error occured and asking me to try again later.
I did try again later, just to receive the exact same error message.
I wouldn't have to leave Arsys default NS servers if at least they allowed me to configure A, CNAME and MX records as I wanted but unfortunatly, none of this is available.
I tried to contact their support service, to tell them my problem, but here again I was faced with an error message on a blank page (in spanish this time) telling me that the server encountered a problem and that I needed to contact an administrator (sic)
So I tried to find a contact page on their public site, and after some 404 errors finally found an email address.
I send them a email telling them about my problems. They answer stating that if I have any problem, I should use their contact form to contact hostmaster@arsys.fr. I tried, and this time it worked.
It's been 4 days, and I haven't heard from them yet. In the meantime, I choose to quit this registrar and moved the domain to Gandi.
What is the most strange is that when you google them you got lot of praises about their wonderful customer service... After having tested it, I just don't buy it.
04 Jun 2010I'll finally have to migrate mails from one IMAP server to another because of a change in the hosting provider of one of my clients.
Let me first do a quick review of my current config :
I have an IMAP server on a not-so-reliable host. I need to move all the mailboxes to a brand new Dreamhost server.
The current host use horde/imp as its webmail, but Dreamhost is running under Squirel Mail.
How to do that ?
When I first contacted Dreamhost to ask them the better way to copy the content of my old IMAP server to their new one, they told me that IMAP to IMAP transfer was unfortunatly not possible.
After some digging I found a little linux tool called imapsyncthat was developped to synchronize two IMAP servers. As I only wanted to copy content from one server to an empty one, I guess it should work.
And it does.
Installing the tool
First of all, you really need to have a Linux machine. I'm sorry for all Windows and Mac users out there, but this solution will only work with Linux.
Obviously, you'll first have to download and install it.
I'm a newbie linux user, and don't use it at its full potential. It means that I rely a lot on the UI, I don't know most of the more basics commands.
So, I don't know the correct procedure to install something, I always use the Synaptic Packager Manager UI. I just have to type imapsync, check its checkbox and start the install.
I guess you, more experienced linux user, would know how to do that anyway.
Running the command
Once it's installed, you'll just have to run one command. But before typing it, you have make sure that you have all the required informations.
You'll need the server name, login and pass of both the source and destination account.
In my case I had previously reset all the password to newly generated one on the source server, then created the same email (with same password) on the destination server.
For the source server name, you shouldn't have any problem finding it. It usually is something like mail.domain.com.
But for the destination server, that's a little more tricky. As I haven't yet changed DNS, I have a Dreamhost server but no domain name pointing to it. So I can't use mail.domain.com there.
I had to go my Dreamhost DNS panel (clicking on DNS under the name of my domain in Manage domain) and check for the IP address associated with the mail A entry.
Once you have all this, create a file (name it pass) which contain the password of your account (or pass1and pass2if source and destination password aren't the same). This is done so you won't type in clear text the password of your accounts, or they could be found in the history files.
Once it's done, just run the following command
imapsync --host1 mail.domain.com --user1 contact@domain.com --passfile1 /path/to/pass1 --host2 208.97.XXX.XXX --user2 contact@domain.com --passfile2 /path/to/pass2 --noauthmd5
It is not an instant process, actually in can be quite long. One of the mailbox I had to move had more than 20.000 mails in the sent folder and about 40.000 in the received one. It took me almost 18h to complete.
03 Jun 2010You surely know that displaying an email address as plain text in a website today is a sure way to get your mailbox full of viagra, rolex and poker ads in no time.
Spammer have bots running all day long, crawling through hundred of thousands of pages, grabbing everything that looks like something@somewhere.com.
Existing way of protecting your email address
The safest way is to not display it in the first place. Nothing beats that. But if you really need to be contacted through email, here are some of the possible alternative.
Using a contact form instead.
That's what I'm doing on this site.
This way I don't have to display my address, I let my server script send the email for me.
Unfortunatly, it means that you have to protect your contact form against spam now. How to do that is not the scope of this post, however.
Using an image
Instead of writing your email as plain text, you can use an image inside which your email is written. Spam bots can't read images (well, they could but they won't bother when there is still so many clear email they can grab without worrying about images).
Unfortunatly it has two drawbacks. First, you force your reader to type your email as they can't copy/paste it. This lead to possible typos, and more importantly will frustrate your user.
Secondly, people browsing without images (yes, that does exists, either because they have a slow connection, browsing through an old mobile phone or using a text reader) won't be able to contact you.
Spelling it aloud
One of the better way is still to appeal to the human brain and telling your user what your email is, like "my name, at, my domain dot com" or "tim@nowhere.com where you have to change nowhere to pixelastic".
I've even seen someone using the very long form of : "tee ee em at pee hi ex ee el ah ess tee hi see dot see oh em". Sure, spammer won't get that, but the truth is, not many user won't either.
The drawback of this method is the same as the previous one, you force your user to type your address.
Ain't there an easiest way ?
Would'nt it be better if we hadn't to worry about that. If there was a way that all our reader would read the email, click on it and send us a mail ? While being protected from spam bots ?
Well, there have been attempt to do that, using various server side and client side techniques. Unfortunatly, all of them failed for at least one type of users.
Encrypting email using unicode
One can encrypt any string in Unicode using server script language. It will turn every character into an entity like .. Your browser will stil understand it correctly, and display it as the corresponding value.
We could assume that bots won't understand it, but I have no data to back that up. It would be trivial for an harvest bot to parse email using unicode, so I won't recommend it.
Using CSS to display the mail
Modern browser, with great CSS support can help in this process with the use of generated content and the :after pseudo class.
Let's look at the following code :
<span class="email" rel="@pixelastic.com">tim</span>
span.email[rel]:after {
content: attr(rel);
}
You just put your username in the span, and the domain name in the relattribute and let CSS display it as one single email address.
But you need a browser with a correct CSS support to do that, otherwise you will only see the user part, which is not really useful.
Using an HTTP redirect
This one is a clever one that I haven't seen used a lot. Instead of making a link to a mailto:, you make the link go to a mail.php page that will only contain one php statement :
header('Location: mailto:user@domain.com');
I'm not sure of the browser support of this, however. And it still won't solve the problem of displaying your email address.
Adding HTML noise
You can add HTML comments (<!-- -->), or useless elements (<span />) all around your email adress. They won't get processed by your browser that will still display it as normal, but it will most likely make the spam bot choke.
Unfortunatly, you can't use them in the href="mailto:" section of your link, so it is not a perfect fit either. But still, that's a good start.
Using Javascript to populate the email
The principle behind this one is that Javascript will write the email adress for you in the code. As most spam bots won't have Javascript enabled (again, I don't have source to back that up but I assume so), they won't be able to see it.
Just write your email address in a Javascript file, maybe in several different variables that you'll merge to create the final one. The more obfuscated your code is, the harder it will be for the spammer to add its logic to its bot.
Conclusion
There isn't one perfect solution yet. But maybe, merging several of them we could bypass the weaknesses to create something that really handle all the situations.
I have some ideas in the back of my head actually, I'll try to make something with them and post it here.
I'm pretty sure starting with an obfuscated HTML source (but still correctlt displaying), then adding an obfuscated Javascript layer to create the mailto: link is the way to go.
This would mean a better user experience for users with Javascript, but that's ok, that's what Javascript is for.
01 Jun 2010The form inputs of this site all have a border-radius and a background-color. Unfortunatly, the latest Opera version just don't like that (9.5 works like a charm).
When you apply the following rules to an input element, Opera will discard your background color and render it as transparent instead.
input {
border-radius:5px;
border:none;
background:#375a5e;
}
All three rules causes the bug. Remove one of them and the bug disappear.
Solution
At first I thought that I could just as well remove the border-radius rule and I won't have any more bugs. But a slightly decreased user experience for my Opera readers.
Then I'll try to come up with a better solution. One can add a background- image instead of a background-color. Odd enough, this won't trigger the bug.
But I wanted to avoid that, that's one more useless request to the server and it's far more easier to change a color code in a css file that to edit an image file.
The solution I choose was to not set a border:none; but to simulate it by adding invisible border. That would add 1px around the input element, so we'll limit it by only adding the border on one of the sides. Adding it on the right side seemed to be the more convenient method.
So here's my updated code :
input {
border-radius:5px;
border:none;
border-right:1px solid rgba(0,0,0,0);
background:#375a5e;
}
31 May 2010I just uploaded the new version of the website. The old one was severely needing a fresh new look, so here it is.
As I want to showcase my skills as a web developer I didn't want a website with a too awesome design, so I decided to do it all by myself. I'm quite happy with the result.
The "Work" page is still in progress, images from the old site aren't yet available and I haven't yet tested it with IE.
I've added a comment section (a feature that was lacking from the previous site). I plan to translate the site in French to have something fully bilingual, but that too is a work in progress.
If you ever spot a bug, just drop a comment, I'm hunting them right now.