Categories

Twitter

Support

Adium Boxee BBEdit Coda Alfred HandBrake ScreenFlow Caffeine Moom Evernote Pixelmator SecureFiles TextWrangler Transmit Shimo RapidWeaver VLC Dropbox Steam Spotify Acorn VMware Fusion Unison

Wednesday
Feb192014

Internet Explorer Rendering Modes

Over the weekend I started to build a portfolio website, designed to showcase a work project.

The website itself was relatively simple, primarily static content providing an overview of the project and a video wall with some training material.

As the site has minimal content, I decided to follow the current industry trend to create an infinite scroll website. Infinite scroll is definitely not ideal for every scenario, but does offer an efficient way for the user to digest information if you have a linear story (they also look great).

The website was built using HTML5, CSS3 and JS, leveraging the Bootstrap and jQuery. It's obviously mobile responsive (thanks to bootstrap), but has no backend CMS.

As this is a work project it needed to be fully compatible with Internet Explorer (9+) as well Chrome, Firefox and Safari.

In development (localhost) everything looked great! The website rendered beautifully and after some minor workarounds for Internet Explorer, I was ready to migrate the code to our internal development server (Windows Server 2012, IIS 8.0).

This is where the trouble started...

Issue:

Chrome, Firefox and Safari all looked great, however Internet Explorer failed to render the site correctly. This caught me off guard, as everything I had written was client-side code and therefore I couldn't understand why migrating from my local machine to the remote web server would cause an issue.

It turns out Microsoft (in their wisdom) force Internet Explorer to treat local and remote web sites differently, rendering the page using a different compatibility mode. Unfortunately this decision breaks the majority of modern web sites when hosted on a remote web server (e.g. anything other than your local machine).

Solution:

Thankfully, once you understand the issue, the resolution is fairly simple. Essentially you need to overwrite the default Internet Explorer compatibility mode to ensure your website is rendered as you would expect when viewing from a remote web server.

There are two options to achieve this task:

Option One - Meta Tag:

Use a meta tag within your code to force a specific Internet Explorer compatibility mode. The following code snippet should sit directly beneath your "<head>" tag to ensure its effectiveness.

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

The "content"property has multiple options, I would personally recommend using "Edge" which forces each version of Internet Explorer to use its own "standards rendering mode".

However, you can also force Internet Explorer to use a specific rendering mode, for example, you may know your code only works using Internet Explorer 7 standards rendering mode:

  • content="IE=9"
  • content="IE=8"
  • content="IE=7"
  • content="IE=5"

Once complete Internet Explorer should render your website as designed.

Unfortunately the main challenge with this approach is that you must include the meta tag on every page, which is not always feasible. In this scenario the best option is to configure the setting on the web server itself.

Option Two - Meta Switch on IIS:

To configure IIS (7.0+) you need to include a custom "HTTP response header". This can be done by following the steps below:

  1. Click Start, click Administrative Tools, and then click Internet Information Services (IIS) Manager.
  2. In the connections pane, expand the node for the server.
  3. Click the Web site where you want to add the custom HTTP response header.
  4. In the Web site pane, double-click in the section.
  5. Under Actions, click Add.
  6. In the Name box, type "X-UA-Compatible".
  7. In the Value box, type "IE=Edge".
  8. Click OK.

Once complete, all pages served by this IIS website will be rendered by Internet Explorer using your defined setting.

I hope that helps!

Friday
Jan032014

2014 Technology Events

I've updated the Events list to include the 2014 schedule. This covers highlights such as CES (06-JAN), Microsoft BUILD (02-APR), Apple WWDC (10-JUN) and Google IO (25-JUN).

Mobile, tablets, 3D, these are all old news! I think 2014 will be the year of "wearable technology". Expect to see a huge number of wearable devices annouced at CES, as well as later in the year, an update regarding Google Glass and potentially our first look at the long rumour Apple iWatch.

Personally I'm looking forward to Microsoft BUILD, by which point we should have a new Microsoft CEO. This will also be the perfect opportunity for Microsoft to evolve the Windows story, maybe even revealing Windows 9.

I'm going to be very busy during the first few months of 2014, therefore LifeinTECH may get a little neglected, but hopefully I'll be back posting in the March time frame.

Tuesday
Dec312013

LifeinTECH 2013 Review

I have now been writing LifeinTECH for five years and each year (2009, 2010, 2011, 2012) I have posted a summary of my results.

As with previous years, LifeinTECH has remained a personal blog (just me), with no external sponsorship, outside advertisement or focus on SEO.

In a surprise (and worrying) change for 2013, Windows XP returned to the top as the most used operating system visiting LifeinTECH. In previous years this has been dominated by OS X due to my Mac-centric content, but in 2013 my focus shifted to enterprise technology, which may explain the change in result. Unsurprisingly Chrome remained the top browser, with Internet Explorer again failing to make the top three.

Like last year, I have had less time in 2013 to focus on LifeinTECH and therefore my post count declined to just 55 articles. However, even with significantly less content, I have been able to expand my reader base. Hopefully this continues to demonstrates quality over quantity!

I hope to continue to improve LifeinTECH throughout 2014, so be sure to check back in the new year for updates. You can also follow me on TwitterLinkedIn or just subscribe to the LifeinTECH RSS feed.

Finally, thanks to everyone that has read or contributed to the site in 2013 and happy new year!

Wednesday
Nov132013

Pivotal One - Driving the Software Revolution

"Software is eating the world" - Marc Andreessen

As predicted by Marc Andressen, software continues to disrupt a wide variety of industries, covering everything from retail to health care. This shift has resulted in businesses looking towards Platform as a Service (PaaS) to help rapidly develop and scale new applications.

I recently spent the afternoon with Pivotal in San Francisco, who are an independent entity funded by VMware and EMC. The office was hive of energy as the team worked towards the launch of Pivotal One.

Pivotal One is an integrated platform that includes a set of application and data services that run on the Pivotal CF PaaS, powered by Cloud Foundry. The goal of this platform is to enable development teams to rapidly build, update and scale applications in the cloud, allowing enterprises to embrace the software revolution.

At the heart of Pivotal One is Cloud Foundry, which is an open source cloud computing PaaS developed by VMware, released under the terms of the Apache License 2.0.

Like Heroku, Cloud Foundry is a polyglot platform, enabling developers to consistently use a number of different programming languages on a single platform, while removing the inherit challenges and switching costs that generally accompany a change of development language.

Cloud Foundry currently supports the following runtimes/frameworks:

As well as the following services:

  • MySQL - Open-source relational database management system.
  • vFabric Postgres - Open source object-relational database management system.
  • MongoDB - Cross-platform document-oriented database system.
  • Redis - Open-source, networked, in-memory, key-value data store.
  • RabbitMQ - Open source message broker software.

Cloud Foundry can also be deployed to different clouds (e.g. AWS, OpenStack), including behind the corporate firewall on VMware vSphere. This portability is a key differentiator (especially when compared to Heroku), delivering the advantages of PaaS, but on infrastructure of your choice. 

It's this power, flexibility and scalability that makes Pivotal CF the perfect core to enable the broader Pivotal One application and data services. I believe this value proposition is unique in the industry and therefore puts Pivotal in a very strong position.

As depicted above, the Pivotal One services focus on apps, data and analytics. These include:

  • Pivotal HD - The widely adopted enterprise distribution of Apache Hadoop.
  • Pivotal AX - Providing automatic analytic instrumentation.
  • RabbitMQ - The leading open source enterprise messaging system.
  • MySQL Service – Provisioning of multi-tenant, single instance MySQL databases.

Many of the services are already mature and available for use today, providing a strong starting point for Pivotal One. However, I believe this is just the beginning and I expect to see other interesting services being introduced over time, as Pivotal One gains momentum.

Overall I've been very impressed with Pivotal. The company culture is agile at its core and the team are clearly passionate and energised. In my experience this is a rare combination, where you have the right people, given the right environment to do something amazing!

As a result I'm confident that Pivotal One is more than clever marketing, with a real opportunity to disrupt the industry! I'll be watching the progress of Pivotal closely and look forward to seeing how the industry reacts.

Thursday
Nov072013

Microsoft - Kinect 2.0

I recently got the opportunity to check out the new Kinect (bundled with the Xbox One) using a pre-release version of the "Kinect for Windows SDK". Although I don't plan to buy a Kinect for gaming, I can certainly see a lot of advantages to this technology in business, especially the retail sector.

The Microsoft team demonstrated a number of the new capabilities, covering everything from multiple users, fine hand gestures, face tracking and even heart rate monitoring. It was all very impressive and looked great! There were a number of occasions where the framerate dropped (sometimes significantly), however this was likely due to the pre-release software.

In my opinion Kinect is the key device driving Natural User Interface (NUI) design, thanks to its relative low cost and global availability. We have already seen some amazing demos where Kinect is being used in shop windows to entice customers. I believe this has huge potential, for example, fashion retailers could allow customers to virtually try on items and even purchase them before they even enter the store (my kind of shopping).

I believe the best vision of this concept was shown in Minority Report, where "Kinect-like" sensors are used to identify the user and personalise advertisements in shop windows.

With Kinect 2.0 this fiction becomes a reality!

In my opinion the only disappointment is that Microsoft have not found a way to integrate Kinect with their own services. For example, I believe Windows 8 would have been a great opportunity to push the boundaries of NUI, showing how Kinect can enhance the user experience. The same can be said for services such as Skype and Lync, which are perfectly suited for Kinect.

When I asked this question, Microsoft gave a cryptic response, but alluded to the fact that tighter Kinect integration is coming. Unfortunately this is the sort of answer you give when you have no real answer. With that said, whether Microsoft proactively drive Kinect integration (my preference) or they wait for the developer community to do it for them, I'm confident NUI will play an important role in the future.

The new Kinect for Windows SDK is expected to be available soon, after the public release of the Xbox One in November. It's then down to the developers to take advantage of these new capabilities. I can't wait to see what they come up with!