Archive for the ‘Excalibur’ Category

Some critique by GreekWebWatch

Wednesday, December 3rd, 2008

We recently received some press coverage on Zino by the popular Greek blog GreekWebWatch, a blog concerning news on the Greek Internet. Here’s our official response.

The Vilundo Chat Protocol

Wednesday, October 8th, 2008

A while ago, we developed a simple chat protocol to-be-used for Zino. It’s still not in use, but we decided it would be a good idea to publish the specification so that other people could use it. It’s available under Creative Commons.

The Vilundo Chat Protocol Specification

A Brief History of Comments

Wednesday, October 1st, 2008

A quick first try to draw the commenting system of http://www.zino.gr

Commenting

Commenting

Kamibu Workroom

Wednesday, September 17th, 2008

Kamibu Workroom

Frontend optimizations

Sunday, June 15th, 2008

In Excalibur Phoenix one aspect we are giving major attention to is frontend.

In contrast to Excalibur Reloaded (the previous version) we try not only to provide a user-friendly interface but we also want it to be as fast as possible for the client. The latter is mostly a need that came up as more and more users started using Zino. Furthermore, through the process of optimization we learn new techniques we weren’t keen with, that extend by far our knowledge especially on the way the browsers render a page and the lower level mechanisms that play a major part when there is a greater need for speed (the term is stolen from Google Blog :P ). So I want to write a few lines for some optimizations we started implementing in the new version.

1) Lessen HTTP requests

One of the most important aspects is to lessen the HTTP requests that are needed for a page to show properly. Till now, our pages had icons, images, many stylesheets and scripts. Each of those needed a separate HTTP request in order to download since all these files were separated. For example, we used to have the stylesheet for the user profile on a different file from the one for the frontpage. What we do now, is combine all the scripts in one file, all the stylsheets in another and so we use just two separate files for all our styling and javascript. Another thing we did is known with the term “spriting”. We combined all of our background images into one bigger image file. Everytime we need to show an icon, we use this image we created as a source and through the background-position we specify exactly which icon we want to be visible. Those are the most common and effective ways we are currently using in Phoenix

2) Cache content

Another way of reducing HTTP requests and the weight of downloading for the client is to use caching. More specifically caching with far-future headers set. To make things a bit clearer if the browser has cached some of the needed components he has to check whether those are valid according to the Last-Modified header in the response. If the component hasn’t been modified there is no need to download it, so the size of the download decreases. Though a request has been made, that could have been avoided if we used an Expires header. When we set an expires header, we are actually telling the browser to use the components in its cache till a specified date. Until this expiry date the browser uses its cached content without the need to ask for modification of the content. This is more useful with static data such as javascript, stylesheets and icons.

3) Minification

In projects where great amount of javascript is in use, minifying the code makes a lot sense. With the term minification we mean the elimination of spaces, line breaks and comments from the original code. In other words all unnecessary stuff is removed in order to lessen the size of the data the client will download. This technique can also be used for stylesheets but is not so effective. Stylesheets optimization is a bit more complex, as you can get the most of it if you find duplicate rules for elements and remove them. Some developers go a step further with obfuscation but I believe it’s not worth. In obfuscation variable and function names are changed automatically to shorter ones, in order to reduce even more the size. Another reason for using obfuscation is to make the code unreadable to others. Implementing this technique is not as simple as minification and using it should be examined carefully as bugs are likely to appear because of core function name substitution.

4) Gzipping content

One last technique worth mentioning is to use gzip compression. The use of this technique is pretty obvious. Compression reduces download sizes leading to faster downstreaming times for the client. Gzipping is supported by almost all modern browsers so it doesn’t need further browser compatibility thoughts. This technique is more effective when combined with the others described. Minification combined with gzip compression decreases significantly the size of the content. To use it though the web server should be configured properly.

Last but not least few simple things to look after are: avoiding duplicate script inclusion, loading stylesheets at the beginning of the document, scripts at the bottom and sometimes clever content preloading that will be needed later on, while the user is interacting with other parts of the page.

BASH coolness by dionyziz + kostis90gr

Sunday, December 16th, 2007

As dionyziz said below,Zino is our new name. To do that conversion, though, some hacks were needed.Mostly stuff like that:

for i in $( find -iname "*.js" ! -path "*svn*" ); do
    sed -e 's/static.chit-chat.gr/static.zino.gr/g' $i > $i-temp;
    mv -f $i-temp $i;
done

Zino

Sunday, December 9th, 2007

Zino is the new name for Chit-Chat. This is just one of the many changes we’re planning for the future. Currently, it’s just a name change, but it’s going to be much more for the community as we progress.

Check out this cool video, a screencast of a “watch tail access.log” from our lighttpd access logs captured by Christian:

http://www.youtube.com/watch?v=l-wEfoRlwVg

Chit-Chat Phoenix Preview

Monday, November 26th, 2007

Here’s a small preview of what we’ve been working on:

cc-phoenix.png

Video support on Chit-Chat

Sunday, November 25th, 2007

Chit-Chat now allows embedding video in comments, userspace, articles (securely!).

Here’s how:

(more…)

Plans on Excalibur Phoenix

Sunday, November 11th, 2007

Lately, we’ve been working on our new Excalibur (chit-chat) milestone codename Phoenix. It involves a brand new interface, much easier to use, and is more community-oriented.

Check out one of our sketches:

phoenix-paper-frontpage-loggedout.jpg