A beautiful Black Tick

When creating documents, tables and presentations, I am often looking for a simple symbol to express a ‘tick’ as in ‘this is okay’ or ‘this is supported’.

Especially the Microsoft Office applications (Word, PowerPoint, …) do not seem to provide such a tick symbol in an easily accessible locations (I couldn’t find it yet).

Luckily, there is openclipart.org, an amazing collection of public domain symbols, icons and other vector graphic images. There is a beautiful green tick available on this platform. I have modified this symbol to be in black color. You can download it below and use it to your heart’s delight:

Big

Image

 

Any Size

Follow this link

https://docs.google.com/drawings/d/1P7f3ZLdrpIMQY8LlyO6BtqYBQPdbXMxVO-MEKPjdGBY/pub?w=400

And change the ‘?w=400’ to the size you desire. For instance, ‘?w=200’ for a 200px version.

Be sure to go to openclipart.org and leave a Flattr etc. for the creator of the green tick, Kliponius.

 

Links of the Week (weekly)

Interesting links discovered this week:

Deploy Maven Project with Netbeans

Problem

You would like to deploy a Java Maven project you are developing using the Netbeans IDE to your Maven repository.

Solution

Right click on your project in the Netbeans ‘Projects’ view and select the Custom / Goals … in the drop down menu as shown below.

Type ‘deploy’ in the field ‘Goals’ in the following dialog. Then, click Ok and your project should be deployed!

Links of the Week (weekly)

Posted from Diigo. The rest of my favorite links are here.

Why Netty cannot serve multiple SSL domains from one IP

Background

Due to some issues with a transparent proxy apparently employed by Vodafone New Zealand, a signed SSL certificate had to be added to the REST server in the Appjangle cloud in order to serve resources ‘protected’ from Vodafone’s caching efforts.

One REST server in the Appjangle cloud can serve more than one domain … but this appears to be troublesome to achieve using SSL.

Problem

You would like to serve content through HTTPS from two domains from one IP address using Netty. For example:

https://mydomain1.com

and https://mydomain2.com

both should be served from a Netty server running on the IP 184.2.23.1.

Analysis

It is relatively easy to host multiple HTTP hosts on one IP address. One can implement a SimpleChannelUpstreamHandler arranged in a pipeline after a HttpRequestDecoder. The SimpleChannelUpstramHandler can then separate requests based on the HOST value of the incoming HttpRequests.

For SSL, this is not possible, since the SslHandler is usually defined at the very beginning of a Netty pipeline. This is an inherent requirement of the SSL protocol, which protects communication with an IP address and not with a domain.

It is therefore not possible to ‘unwrap’ the incoming encoded message and retrieve its HOST value, since this can only be done AFTER the SSL connection is established.

Note: This is not an inherent problem of Netty but caused by the JDK’s SSL implementation.

Solution

One possible solution would be to use Server Name Indication – an extension to the SSL protocol to allow for ‘virtual hosts’ over SSL. However, this is extension not necessarily supported by all available HTTP clients. Moreover, it does not appear that Netty/Java currently support Server Name Indication.

Therefore, the best option at present appears to use one dedicated IP address for every HTTPS host you want to use.

Also note that JDK 7 adds support for Server Name Indication, so if you are running on this platform, you could explore if you can configure Netty to support it.

Links of the Week (weekly)

Posted from Diigo. The rest of my favorite links are here.