Author Archives : Rob Sanders

About Rob Sanders

IT Professional and TOGAF 9 certified architect with over 16 years experience, 16 in commercial software development and 9 years in IT consulting. Check out the "About Rob" page for more information.

Review: Olixar Qi-Tone Alarm Clock Bluetooth Qi Charging Speaker

In recent years, we’ve seen some outstanding developments in mobile telephony.  One such innovation has been the introduction of Qi (inductive power standard) wireless charging.  For the most part, the majority of modern mobile handsets (except iPhones!) now include Qi wireless charging as standard.  For most others there are phone cases available which support Qi.

Assuming you have native support or use a case, the next problem to solve is how you charge your device?  Enter the Olixar Qi-Tone Alarm Clock.  There are a few wireless charging options on the market, but is there room to integrate more features?  The answer is quite simply, of course!

Let’s take a closer look.

IMG_1453 IMG_1455

The Olixar fundamentally doesn’t require too many cables – wireless! – so what’s included is fairly minimal.  There’s a power cable with multiple plug support (very handy) as well as an audio cable and an instruction book.  The device is quite easy to operate, but the instructions are clear if you need to refer to them.

IMG_1455e IMG_1456 IMG_1458

The alarm itself is nicely weighted and feels very solid.  The time display (when unpowered) is only barely visible, it looks like a solid block of wood which is a nice aesthetic.  This is something which would look great on a desk or in a workplace setting, but equally not out of place on a bedside table.


The alarm is more than just a clock and thermostat.  It features Bluetooth connectivity and has fairly impressive sound quality for built-in speakers.  Then there’s the wireless Qi charging capability to top it all off. 

The audio jack cable also provides a capability to plug in an external audio source, if you don’t have a Bluetooth option.  There’s also a built in microphone so you can engage with complete hands free teleconferencing,

Finishing touches

We’ve covered off the inclusions, the looks and the features but the real touch is seeing the unit powered on.  The display shines through the front of the device and looks amazing.  Don’t take my word for it:

IMG_1459 IMG_1465

The device is also quite child friendly, as demonstrated in the second photo, above.  The unit features touch sensitive controls on the top of the device which is used to enable/disable Bluetooth, snooze the alarm and adjust volume levels.


Finally – the alarm.  The alarm is quite surprising, it simulates an old fashioned alarm clock ring.  The only quibble with the unit is that to disable the alarm, you must press one of the four buttons on the rear of the unit.  This is slightly inconvenient if you place it in a location which is hard to access the back of the device.


This is a nicely finished wooden alarm clock with some very intelligent features.  If you have a Qi or Qi-enabled device, you’d have to be tempted to look at this device for the home or the workplace.  Even if you lack a Qi-device, the bluetooth connectivity and other features make it a fine addition to your desk.

You can find many more interesting accessories from the great range at MobileZap.

Late April Update

I’ve been a bit remiss lately of not getting some more articles out here on Sanders Technology.  It’s not for a lack of inspiration – I’ve been doing a fair bit of work lately which would be blog-worthy, but have just been snowed under getting a fairly substantial maiden release into Production.

This one is a beauty – over six months of planning and execution:

  • Rolled out over 5 logical environments (Development, Test, UAT, Training and Production)
  • Implemented internal PKI to secure endpoints, with external CA signed certificates for external facing applicances
  • WS-Fed and SAML 2.0 web applications (relying parties)
  • Migration of over 30,000 existing users to Active Directory
  • Standing up an external AD FS 3.0 service for federation
  • Bespoke MVC 5 portal (WS-Fed relying party)
  • CORS integration between a legacy site (Domino 9) and new (MVC 5)
  • Tunnelling integration to Dynamics CRM 2013 (courtesy of internal WebAPI wrapper web services using the XRM services)
  • Implementation and use of Mass Transit and MSMQ for ESB style message routing and processing
  • Message translation down to services used to synchronise Notes from CRM
  • Implemented Octopus Deploy to manage releases, configuration and environment
  • Introduced a private NuGet repository to allow separate solutions to manage common assemblies/dependencies
  • Documented the whole thing with copious amounts of documentation, including:
    • System security plans
    • High level solution design
    • Environment design
    • DR recovery plan for Mass Transit
  • Co-ordinated/conducted load and performance testing
    • Internal and external load testing
    • External testing via Azure
    • Internal testing via Visual Studio 2013 load test + load agents
  • Hardened the environment for penetration testing

..and those are just the highlights.  We launched officially yesterday to existing users with minimal issues.

Stay tuned for more articles soon.

Server Name Indication (SNI) – a journey

Today I went on an unusual journey, and it involved paying the price for configuring Microsoft’s web server (specifically, IIS 8.0 and 8.5) with scant regard for why it works the way it does.  Let me start at the beginning..

As of Internet Information Services (IIS) 8.0 (Windows Server 2012) and continuing in the latest version, 8.5 (Windows Server 2012 R2) there is now support for “Server Name Indication”, or SNI.  IIS allows you to set this value when configuring HTTPS site bindings on websites, as per below:


“Require Server Name Indication” or “make IIS support multiple SSL/TLS certificates” as I used to call it is a feature of IIS which allows you to bind different digital certificates to different websites within IIS using the same IP address.

Prior to IIS 8.0, you could only bind a single certificate to an individual IP address which you could only bind to one website, due to the way that handshaking worked at the time.  From Wikipedia:

Server Name Indication (SNI) is an extension to the TLS computer networking protocol[1] by which a client indicates which hostname it is attempting to connect to at the start of the handshaking process.

This allows a server to present multiple certificates on the same IP address and TCP port number and hence allows multiple secure (HTTPS) websites (or any other Service over TLS) to be served off the same IP address without requiring all those sites to use the same certificate. It is the conceptual equivalent to HTTP/1.1 name-based virtual hosting, but for HTTPS.

Now there’s a caveat with SNI, and one which I did not truly appreciate until today – some older “legacy” browsers, applications and libraries do not support SNI.

No support for SNI

The following combinations do not implement SNI (from Wikipedia again):

Client side
Server side
  • Qt client side up to 4.7
  • Mozilla NSS server side
  • Java before 1.7
  • Python 2.x (except 2.7.9), 3.0, 3.1 (ssl, urllib[2] and httplib modules)

This begs the painful question..

What happens when something which does not support SNI tries to call a website or web service which relies on SNI – such as websites hosted within IIS?

Consider what happens when a client which supports SNI makes a request of IIS 8.0 or 8.5:


Because the site name indicator is supplied, IIS is able to locate the correct certificate for the named site and return it as part of the TLS handshake (prior to receiving HTTPS headers).  If no named site is found, it will resort to the default certificate/HTTPS binding if there is one – note: you should have a default certificate set!

Now, let’s compare that with what would happen when SNI is not supported by the client:

Note: this assumes the default website has the default https/443 bound to it.

Because the initial TLS handshake does not include the server name indicator (the name of the requested site) IIS will default to returning whatever’s bound by default.  This will likely not match the certificate expected!

Some symptoms of clients not supporting SNI:

  • Certificate mismatch (requested URI doesn’t match certificate common name) – default certificate is returned
  • Intended website has no requests logged (but HTTP requests are logged – assuming a http binding is also used!)
  • Intended request is logged against the default site instead of the intended site

One potential solution

If most of your sites use the same domain, you can assign a wildcard certificate to be the default for https/443 binding.  When the non-SNI request arrives, the wildcard will match and then the subsequent HTTPS headers will result in the correct website being accessed:


I’m not sure if the sites would have to use the same wildcard certificate or not – this is currently being tested.

Another option

..could be to place a network load balancing (NLB) appliance in front of your webserver, if it supports HTTPS/SSL/TLS offloading.  This way, traffic coming from the NLB would actually be HTTP, not HTTPS.  This is obviously far less secure as the HTTPS traffic would terminate on the load balancer, but it does solve the problem in theory.


Well that was a fun find.  The moral of the story is.. take time to understand why certain settings “make things work”, or else chances are you’ll find out the hard way.  I hope this article helped someone out there.