Installation and update systems for Windows. Part 1: The history of LiveChat application

LiveChat desktop application for Windows took many shapes and forms over the years, but regardless of its features and appearance, two of its tasks are common for practically all desktop applications: installation and update. In this series of blog posts, I will describe installation and update systems that the LiveChat application used before and uses now. This will also show you how the application itself changed with time.

What is SPF – Sender Policy Framework

Spoofing is a type of a computer attack in which the attacker pretends to be someone else. In particular, email spoofing is an attack in which the attacker sends an email with a fake "From:" field. You can compare it to sending a traditional mail with forged return address.

If you are using one of the popular email services such as Gmail or Yahoo, you don't need to worry about that. These providers keep security on the high level. But if you are just the owner of an internet domain, you should be aware of the spoofing vulnerability (even if you don't send emails on your own).

Setting cookies to subdomains in JavaScript

We've recently faced a problem of setting a cookie from to all subdomains in a * domain.

The solution seemed pretty straightforward: just set a wildcard cookie to (note that the first character is a dot). However, we had to determine the target domain (the actual value of “”) automatically because our code is fired on tens of thousands of different domains.

And here came the problem: the list of Top-Level Domains.

How to create better reports

A report is probably the most common way of displaying data within any substantial business environments. Unfortunately a lot of reports we come across are simply dull and visually unpleasant. Say no to reports in PDF format! We cannot neglect the power of traditional plain PDF form, although we should not feel excused from being creative and resolute. There is no need to stay idle when technology allows us to experiment a little. We asked ourselves the following questions: Shall we make the reader download a separate file? How many of them decide not to? Are there any solid reasons to bear with closed format limitations? And finally: can we create a new quality of report by designing it in a well-known form of a website? How to create better reports?

How we connect our apps to dev environments

One of the most annoying drawbacks of developing desktop and mobile apps is the inability to switch between dev and production environments. When a client tells us about a problem with the app, our developers can’t reproduce the problem using the same app that is used by the customer. Fortunately, we found a neat solution. We hard-code dev & production servers’ addresses inside the app that is released to customers. Then, depending on the platform, we use one of the tricks that tells the app to connect to the dev environment.