Category Archives: Diffrence

pop-imap

The difference between POP and IMAP

When you download your email to your local devices (desktop/mobile phone) you will almost always be using one of two ancient email protocols. Either POP (aka POP3) or IMAP. The way you choose to download your email, which protocol you pick, has important consequences for how your email works.

POP

In simple terms when you connect with POP you are downloading a copy of all your email to your local device. Every device you connect to your email server will get its own copy of the email. So for example if you delete an email on your desktop it is deleted only on the desktop, it is not also deleted on your mobile phone.

Similarly if you create a folder on your PC and move emails into it, this move is happening on your PC only, not across all devices. This is because all the emails, and folders, just exist on your local device.

It’s important when downloading emails via POP that you leave a copy of the email on the server for some time (e.g. 10 days). You can ask the server to delete emails immediately after download but if you do this then you will not be able to download emails to more than one device. For example if you download the email on your PC first it will then be deleted on the server and your mobile phone will never get a chance to download it.

It’s also important that you do delete emails on the server eventually rather than leave them on the server forever – as otherwise your email server will eventually fill up all available space and you won’t be able to receive new emails. Even though Webfuel email accounts offer a very generous 25GB of storage, this will eventually fill up given the volume and size of modern email.

IMAP

When you connect to an email server via IMAP your local device is showing you what is on the server, rather than downloading the emails locally. So any changes you make are happening on the server. If you delete an email it is deleting it on the server. If you move an email into a folder this is happening on the server.

Because of this all your devices always see the same emails, and the same folders. Also the act of keeping your mailbox clean on your device (e.g. deleting old / irrelevant emails) should also keep the amount of storage you are using on the server under control.

POP or IMAP?

So which protocol should you use? Well really it depends on how you want to work, and what you are used to. The important thing is to understand there is a distinction, and what the implications of each option are.

POP in general is simpler to understand because you will only every see changes on the device you make those changes on. But for people who regularly use multiple devices IMAP can be less work to maintain, for example you only ever need to delete an irrelevant email once.

One of the common issues we see with email is customers not understanding there is a difference in these protocols, and often using both across different devices. It is possible to mix protocols but doing so makes it even harder to reason about what your mailbox is doing, and harder to keep mailbox sizes under control. Unless you really understand what you are doing connecting one device with POP and another with IMAP is almost always a mistake.

Animation: CSS vs. Javascript

animation-css_versus_javascript

Animation is a design tool which does not directly impact content but instead is used for visual cues and transitions from one UI element to another. For web design, animation is used to polish an already completed product. CSS and Javascript are two animation tools and both have pros and cons when it comes to functionality, overhead, and performance.

Functionality

In terms of functionality, CSS and Javascript are fairly similar. Both are able to do very impressive animations but it becomes more of a question of what exactly the animation needs to do. Animating using CSS is known as a declarative approach while Javascript is imperative. What this means is in CSS you must specify specifically what has to happen, while in Javascript you are able to programmatically define the animation.This means you have more control over an animation when using Javascript. For example, playing a complicated animation in reverse would be difficult in CSS as you would need to specify additional transition properties on every piece of the animation.

Overhead

Javascript and CSS have a key difference, which is overhead. CSS is the same in every development environment and it is simple to learn and fairly straightforward. Javascript, on the other hand, is almost the opposite. Although basic Javascript has animation functionality, most animation is done through an additional library such as GSAP or velocity.js. Developers who are familiar with one library may not be familiar with another, meaning much development time must be spent on training. Additionally, many development environments may be using another Javascript library such as JQuery for non-animation development, which will lead to conflicts as many Javascript libraries are not compatible. Therefore, when developing it is important to consider the overhead cost of Javascript libraries.

Performance

Performance is another important consideration, especially if developing on mobile platforms. CSS has fairly good performance as it offloads animation logic onto the browser itself. This lets the browser optimize DOM interaction and memory consumption and most importantly, uses the GPU to improve performance. On the other hand, Javascript performance can range from reasonably faster to much slower than CSS. Javascript performance depends on the library used and puts the burden on the developer to optimize. For example, JQuery is a commonly used library but is notorious for slow animation performance because it is not designed with animation in mind. Also, adding Javascript libraries creates more overhead and can increase page load times especially for mobile devices. There are lightweight libraries out there specifically for this issue, but lightweight libraries also have less functionality. As mentioned before, you may have to optimize performance which is completely dependent on the library being used. Using CSS or Javascript for animation is highly dependent on what you are trying to do. Javascript can be very powerful but is completely unnecessary if all you are doing is something like fading in a pop up window. Most of the time just using CSS is enough, but complicated animations can be difficult to do without using Javascript. If you decide to use Javascript, make sure to pick a suitable library which does not conflict with other libraries you may already be using.