Controlling access protocols to your project’s resources

When we launched Projects we decided to play safe and configured the Web server and access to all repositories over SSL. Some users have expressed interest in Git over SSH, other users have mentioned how SSL is not a requirement to them and would be happy with normal HTTP.

We started working on our server configuration, but decided that we wanted to allow everyone to decide for himself. We configured Projects so that everything is enabled by default, but project owners are free to configure and limit which protocols can be used to access the resources of a project.

So this is how it works, all project Web sites are now accessible both using HTTP and HTTPS. Although the Web server will default to HTTPS, you can simply specify "http://" in front of the URL and switch SSL off. If your network has a proxy, you should see a performance improvement when you don’t use SSL. In general your browser will cache static files such as images, CSS and JavaScript, so you should have a good performance anyway.

Similarly to the Web site, all repositories can now be accessed both via HTTP and HTTPS. If you had issues with Git over HTTPS in the past you can now remove SSL and avoid recompiling your libraries. If you like SSH better, don’t forget to read how to use Git over SSH in Projects. Last but not least, the WebDAV server can now be accessed with or without SSL.

If you are working in the Open Source you probably don’t worry about protecting your files and using HTTP might be a better option than HTTPS. Please note that when authenticating over HTTP, your password will be sent in clear and a man-in-the-middle might still try to steal it.

A project owner can control which protocols are enabled by visiting the Admin tab and then clicking on Protocols. By default they are all enabled. If you are concerned about security, disable HTTP.

This is how it looks in one of my projects, where I have disabled all HTTP access to Git and only allow HTTPS for WebDAV:

Access protocols admin page

As a user you can choose which protocol you want to use when checking out or cloning a repository. To make life easier we changed the source page a little bit. See how now there are two buttons to choose the protocol you want to use. These change based on the repository type and available protocols.

Git clone with SSH Web UI

 

The same applies to the Files section and the WebDAV protocol.

Design and User Experience Library v2.2

Hey there,

We have just released a new version of the Design and User Experience Library with an improved and clarfied structure. What do you think? I personally consider it a lot simpler than the old one. And that’s why I call it "improved" ;)

Something cool we now have there is the Iconography guidelines section. You can find a full set of ready-to-use icons for your Symbian application there. We also have Adobe Illustrator templates available for icon creation. Go and download the icon set and templates, and try them out yourself! A note; I really wanted to have the templates availalbe in some freeware-compatible format as well but the problem we faced was that unfortunately some specific features needed for the templates to work were not supported. Anyway, I hope the guidelines will help if the icon set doesn’t have all icons that you need.

Happy developing :)

Using Git over SSH in Projects

From day one we supported three different repositories in Projects, Git, SVN and Mercurial. All of them worked over HTTPS. A lot of us are used to using Git from the command line and SSH is much more convenient as a protocol and is still very secure. In some cases it also offers better performance.

It took us a little bit to configure properly our servers, proxies and make sure that it was secure. We chose gitosis and although we did not tell anyone we have been testing this for a couple of weeks now and it works GREAT!

If you have Git and SSH you don’t need to do very much, just give us your SSH key and allow a few minutes for our servers to sync and then you are ready to go.

Add your SSH key

On the Projects site, go to My projects (login required, of course).

Click on My projects settings.

My projects

Here you have all your preferences specific to Projects. Click on the SSH keys tab.

ssh key tab

Enter a description of the key, your SSH key and press save. If there is ay error you will see a message in red and the key will not be save. The key MUST be 2048 bytes and not more than 4096. Make sure you upload you public key.

 

 

ssh key

After a few minutes you will be able to clone your Git repository.

This is a screenshot of me cloning a test repository.

clone over ssh

For more information see our updated manual on how to configure Git.

Nokia Reader saves battery

I decided to highlight advantages of push notifications since synchronizing Internet accesses is such a high priority item in smartphone battery life.  Nokia has introduced Notifications API for Qt/QML applications earlier last year and you can find more info of it by browsing earlier posts in this blog.
In Symbian, Nokia news reader (Nokia Reader) is fetching data by using Notifications API. Let’s see the device battery life impacts when using it.

Without Nokia Reader application using Nokia Notificatications

Each feed is polled separately from the client 

If there are 5 of these feeds and every one of them is polled with 10 minute interval, without synchronizing the time of polling… There will be 30 queries to the network every hour. Http polls cause typically the radio to be active for at least 15 seconds. This means that the radio is on 30*15s = 450 seconds every hour.

With Nokia Reader application using Nokia Notificatications

Each feed is polled separately by a feeder service, data is pushed to client, when needed 

Statistics from more than 7000 feeds show that with 10 minute interval, average feeds have a 11% hit ratio and each hit contains
2 updates on average [about 32 updates / day, not evenly distributed]. 5 feeds lead to about 3.3 updates / hour on average. In addition
the TCP connection needs to be kept open with keep alive messages. Typical cellular network allows about 20 minutes of inactivity (= 3 keep alives / hour are needed). Even if the 5 feeds provide more than that on average, news are typically clustered and thus
additional keep alive messages are probably needed. Let’s assume 1,7 of them in average. This means 5 updates/hour, out of which 3 need 15 seconds of active radio and 2 [keep alive messages] need only 10 seconds. This leads radio being active for 65 seconds / hour.

Summary

We’ll have following results by basing up our calculation in to real data collected from our studies.

-    Without push notifications we have radio active 450 seconds/hour
-    With push notifications 65 seconds/hour

In this example of updating 5 news feeds with 10 minute polling interval, using Notifications API instead of polling brought 86% energy savings.

Got interested in Nokia Reader? Go and download in from Nokia Beta labs!

 

 

Symbian style Qt Components on N900

It may not be obvious to everyone, but the current shape of Symbian components on Qt Components gitorious repository is pretty good. Just for kicks, I compiled it in N900 scratchbox and took a screenshot:

Symbian components on N900

No special steps were needed to build the repository, just

git clone git://gitorious.org/qt-components/qt-components.git

cd qt-components

./configure -config symbian3 

make

make install 

And then run  examples/symbian/qmlgallery. Earlier, we packaged "meego" style components for N900, but as the public version still relies on MeeGo Touch libraries, the Symbian set of components could turn out to be a lighter solution. If there is interest, we will package a snapshot of this version as well.