Installing the Ancestry.co.uk Enhanced Image Viewer application on Windows 7 (x64)

This content is 15 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A couple of weeks back, I started to investigate my family tree. Spurred on my a combination of recent personal events I switched the half-hearted attempt that I’d made at genesreunited.co.uk over to ancestry.co.uk and the 14 day trial was enough to convince me that it was a good tool for researching my family history.

Transferring my tree was easy enough – there is a de facto file format used by genealogists called GEDCOM and both sites supported it, but as I got stuck into researching the tree I found that I was having difficulty installing the Enhanced Image Viewer ActiveX control that Ancestry uses to display certain documents. To be fair to Ancestry, I run Windows 7 (not yet generally available) – but they only officially support IE7 (IE8 has been around for a while yet) and push people towards Firefox if they are having problems. Firefox is OK, but installing a new browser just to access one feature on a website is also a little extreme. I was sure there was a way… and eventually (with Ancestry’s help), I got there.

My problem was that (using 32-bit Internet Explorer) I could access a page that wanted to load the Enhanced Image Viewer and I could download and run the installer; however setup failed stating that:

Setup failed – contact customer support

Windows then detected a problem with the installation but, following advice on the Ancestry website I told it that the installation was successful and it allows me to continue. After returning to Ancestry, I was presented with a message stating that:

The Enhanced Image Viewer is not installed on this machine. For the best experience, please click here to download the Enhanced Image Viewer or click here to view this image using the Basic Image Viewer.

The Basic Image Viewer seems to work OK but the very existence of an “enhanced” viewer suggests that there is something there that I’m missing (and this is a subscription website after all)!

So, here’s what I tried that didn’t work:

  1. Enabling the ActiveX control using Internet Explorer to manage add-ins (it wasn’t there to enable).
  2. Manually downloading and installing the Enhanced Image viewer (failed to register).
  3. Manually uninstalling the Enhanced Viewer (it was not there as it never successfully installed).

In the end, I broke all good security practices by logging on as administrator (instead of running the installer as an administrator), and turning off UAC, after which the viewer installed as it should. Clearly this application was very badly developed (it seems not to follow any modern application development standards) but at least I got it installed!

One final word of warning – and this one is non-technical – researching your family tree can quickly become addictive (my wife refers to it as my latest “time Hoover”).

Come in [Internet Explorer] number 6, your time is up

This content is 15 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Bring Down IE6As from this evening, anyone who visits this website using Microsoft Internet Explorer (IE) 6 or earlier will be greeted with a message advising them that their browser is outdated and suggesting options for an upgrade. I thought long and hard about this (just as I have thought about blocking anyone who uses an ad blocker) and, for a long time, I was of the view that it’s not up to me to dictate the web browsers that people use to access my site but, more recently, I’ve been convinced that legacy versions of Internet Explorer are holding back web development, or at the very least increasing the cost of developing for the web due to the need to integrate various hacks to address browser quirks. With the release of Internet Explorer 8 and many corporates starting to look at moving from Windows XP to Windows 7, I expect to see Internet Explorer 6 usage dropping off quickly in the next 12-18 months and it’s probably time to “encourage” people to update their browser even sooner.

I know that Internet Explorer 6 is still widely used in the enterprise (including at the company where I work) and many corporates have application support issues that preclude movement to a later browser but that’s why the move from XP to 7 on the desktop will be key – as organisations carry out application remediation for their desktop applications, they will also be looking at the intranet. Meanwhile, on the Internet, we’re seeing large sites such as YouTube dropping IE6 support and, whilst YouTube is owned by Google (whose motives are hardly altruistic), as more sites drop support for IE6, the movement to more modern alternatives is likely to increase. In fact, I just checked the analytics on this site and IE only accounts for 45% of my visitors (closely followed by Firefox with 39%, Safari with 8%, Google Chrome with just under 6% and Opera with less than 2%). Of the IE visitors, 46.5% run IE8, 37.5% run IE7 and just 16% run IE6. Effectively IE6 is already a minority browser on my site, although the stats for less technical websites are likely to show fewer users at the cutting edge.

The code I’m using to advise users is adapted from the IE6 No More site and the logo on this page relates to a recent article in .net Magazine.

I’m not saying that you can only view this site if you have a modern browser. That would be arrogant and reminiscent of the late 1990s when it was commonplace to see notices that said something like “this site is written for Netscape Navigator 4 with a screen resolution of 800×600”. It’s just that, these days, we have web standards and even Microsoft browsers support them.

My aim is to support all screen sizes from mobile devices, through netbooks (1024×576) up to multi-monitor and large displays (like my 1680×1050 and 2048×768 displays) and all modern (standards-compliant) web browsers on all operating systems. That’s a lot of testing and I’m just one guy so, if and when I get around to redeveloping this site using a recent version of WordPress, it will use semantically correct XHTML and there will be no hacks for legacy browsers.

If you’re running something recent (i.e. the currently released browser from Apple, Google, Microsoft or Mozilla) then your experience should be fine. Anything else and, as they say, your mileage may vary.

Yet more confusion on Windows 7 E Edition

This content is 15 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Various portions of the IT press are reporting that Windows 7 E Edition has been killed off. I sincerely hope so – it’s always been a daft idea created to satisfy bureaucrats in Brussels and the creators or a certain minority web browser that appears to be fighting a battle in the courts after its business model has failed – but I’m yet to be convinced that E Edition is completely dead.

On Friday, Microsoft issued an announcement about the inclusion of a browser selection ballot screen for European Windows users (note that this affects XP, Vista as well as 7). There are still some unanswered questions though:

  • How will it be determined that this is a European installation of Windows? IP address (unreliable)? Product SKU (in which case E Edition is still required)? Regional settings?
  • Will this just apply to EU member states? What about the rest of the EMEA region (Microsoft views Europe as EMEA – not just the EU) or even European countries that are not members of the EU (e.g. Switzerland)?
  • Will this even satisfy the regulators? The EU Competition Commission has not fully approved Microsoft’s proposal and Opera (who brought the case to the courts) are reported to be unhappy about the use of icons to represent browsers. Apparently Internet Explorer’s E icon is synonymous with the Internet for many users (does that make it iconic!) and Opera would prefer an alternative solution (well, Opera comes after Apple Safari, Google Chrome, Microsoft Internet Explorer and Mozilla Firefox whether you base the order on the alphabet or on market share… so I don’t know what would please them – a random selection of browsers perhaps? Please no!)

The dominance of Internet Explorer does not seem to have hurt Mozilla, Apple, or Google in gaining market share with their web browsers but it seems Opera still wants more – they want Microsoft to apply the same solution on a global basis (as well as Apple and Ubuntu!).

Maybe Microsoft will offer further concessions to the courts – I can’t help thinking that they have other things to worry about right now and their actions to date are designed to show that Microsoft has changed and, in doing so, to remove the danger of various anti-trust rulings. But has anyone considered that the potential impact of the browser wars is not really good for consumers? Competition is healthy. Web standards are to be applauded. Interfering in commercial markets because someone cried foul when no-one wanted their product should not be encouraged, however good the product may be.

So, is Windows 7 E Edition dead? Probably, but the key statement in Microsoft’s press release is this:

“We’ve been open both with the Commission and with our customers and partners that if the ballot screen proposal is not accepted for some reason, then we will have to consider alternative paths, including the reintroduction of a Windows 7 E version in Europe”

For those of us working on global Windows 7 solutions there are still some questions unanswered, and the 7E uncertainty may continue for a while yet.

Windows 7 E Edition update (and some ideas for downloading a browser from the command line)

This content is 15 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

After the Windows 7 announcements and late night blogging I was pretty burned out so I took a day off at the end of last week. As it happened, that was when Microsoft finally came out and made a statement about the whole European mess. Based on this latest statement, a ballot screen idea is definitely on the table and, if accepted, there will be no need for an E Edition without a web browser – Europe can have the same editions as the rest of the world (almost – I imagine there will still be legal requirement for N edition as that relates to a different, and equally pointless, legal case).

Ironically, Opera, who started this whole nonsense, will probably lose out. As Microsoft’s James O’Neill tweeted back to Mary Jo Foley (whose blog post on Microsoft’s decision to offer European users a browser choice in Windows 7 covers all the details):

“@maryjofoley If a ballot screen is alphabetical with opera last (after Apple, Google, and Mozilla) you can bet they’ll go crying back.”

[jamesone on Twitter]

“@maryjofoley Also – how many browsers on the ballot ? I don’t think opera is in the top 3 by share”

[jamesone on Twitter]

James is often pretty forthright in his views – and he works for Microsoft – but he’s spot on here. For what it’s worth, I think that most users will download Microsoft Windows Internet Explorer (IE) – because it’s from Microsoft, who make the operating system they will have just purchased – or Mozilla Firefox (for those who would prefer a third-party browser). Apple Safari, Google Chrome, Opera, etc. will remain also-rans, whatever their merits (of course, Safari will continue to dominate on OS X and Chrome will be integral to Google’s new Linux distro).

Even if you do get hold of E Edition (i.e. a copy of Windows without Internet Exploder built in), there are a number of workarounds posted, like Rafael Rivera’s suggestion of exploiting Windows Media Player to download a browser. Rafael is a smart guy but there’s a much simpler way – ftp.exe (the command line FTP client in Windows) – or, for that matter, FTP site access from Explorer. Actually, I put a port of wget onto many of my systems so that would even give me command line HTTP access to pull down a browser. The smartest idea I saw was using mshta.exe to access a website (e.g. mshta http://www.markwilson.co.uk/). I haven’t checked to see if that executable is still present when Internet Explorer is uninstalled (I doubt it), but it sounds like a nice command to know about anyway.

[Update: It looks like XP and Vista users will also get presented with a ballot screen – not sure how Microsoft Update will determine that we are in Europe though… IP address? Product SKU?]

Microsoft surrenders to the bureaucrats in Brussels

This content is 16 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few days back I commented about the madness that is going on in Europe with the European Commission taking up the case of a minority web browser company and making life difficult for Microsoft in the courts.

Let’s get this straight: Opera may be a fine browser but, as far as I can tell, almost no-one uses it on the desktop. Part of the reason for this is that, long after most other browsers became free, Opera were still charging users so they failed to capitalise when Firefox grew its market share at the expense of Internet Explorer. Basically, Opera’s business strategy failed… so they went to court and other minority browser vendors piled in (e.g. Google).

As a result of componentisation of Windows, Microsoft gave us the ability to uninstall Internet Explorer from Windows 7 but that wasn’t enough for the bureaucrats in Brussels so now, in order to avoid costly delays in shipping Windows 7 as a result of legal action, Microsoft has decided to offer an E edition of Windows 7 in Europe, without Internet Explorer.

As I wrote last week:

“Personally, I would like to install Windows quickly with the least possible user interaction. Then, once the base operating system is installed, I’d like to select roles/features (as I do for Windows Server 2008) and install any third party software that I choose – independently of the Windows setup routine. If we have to have something to please the minority browsers (Opera, Chrome, Safari, etc.) then Windows already lets me choose search providers, media players, mail clients, etc. – why not use the same mechanism for browsers?”

Instead, I have multiple Windows versions for multiple markets. Thanks to the EU I have one version of Windows 7 in Europe and another for the rest of the world (what’s not clear is whether I can still buy the normal version in Europe, should I choose to do so). Gee, thanks. I’m glad to see my taxes are being used to tackle the real issues of the day… like financial meltdown, rising unemployment, global warming, world poverty…

It seems that, if I have a company with a product that no-one wants, I can go to the European Commission and have them stop the large, successful, companies from competing with me. Presumably Apple will stop shipping Safari with OS X and Linux distros in Europe will come without Firefox, etc.? No. I thought not.

The Pirate Party takes 7% of the vote in Sweden… meanwhile the European Commission wants Windows users to vote for their browser!

This content is 16 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Last Friday saw the election of representatives to the European Parliament (MEPs) and the results were out today. Whilst this might not have the global impact of President Obama’s election in the United States, for the 375 million of us that live in the 27 EU member states (sorry, sovereign nations), it is pretty significant because, according to the eurosceptics, 75% of our national laws are passed down from Europe.

Here in the UK, minority parties faired well – partly as a protest against our own incumbent (or should that be incompetent?) Government and partly as a result of the proportional representation system that is used for the European elections. Whilst the UK Green party narrowly missed out on a third seat in South East England (but the far right British National Party gained significant support in the North of England…), it’s the result in Sweden that has perplexed me the most – 7.1% of Swedish voters said “yes” to the Pirate Party – formed in response to copyright laws and the impact of the Pirate Bay filesharing network!

Now, I’ve been very careful not to express any political views in this post but, with a new Parliament in place, it seems to me that now is the time to sort out the idiots in Europe who are pushing ahead with yet more action against Microsoft for bundling Internet Explorer in Windows (hey guys – you’re too late – the damage was done 10 years ago, the American Courts did very little about it, and Internet Explorer has credible competition in the shape of Firefox today). It seems that Microsoft’s componentisation of Windows and provision for the removal of Internet Explorer 8 is not enough for the European Commission – they want users to vote for their browser of choice when installing Windows!

Personally, I would like to install Windows quickly with the least possible user interaction. Then, once the base operating system is installed, I’d like to select roles/features (as I do for Windows Server 2008) and install any third party software that I choose – independently of the Windows setup routine. If we have to have something to please the minority browsers (Opera, Chrome, Safari, etc.) then Windows already lets me choose search providers, media players, mail clients, etc. – why not use the same mechanism for browsers? There’s more about this madness over on Mary Jo Foley’s All About Microsoft blog but I really do wish that my taxes (which pay for Neelie Kroes and her organisation to bring about action like this) were being used more effectively…

Don’t write off Internet Explorer just yet (and how to make sure your website renders correctly with Internet Explorer 8)

This content is 16 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Microsoft Windows Internet Explorer 8 logoI’ve had a few communications from Microsoft this week attempting to hammer home the point that Internet Explorer (IE) 8 was released last week. My personal view is that many technical users switched to alternative browsers during the time when “Internet Exploder” was, frankly, not that great (a deliberate understatement) and that it will take a long time for them to return (if, indeed, they ever do); however the majority of consumers and enterprises are still using IE for two reasons:

  • It ships with Windows.
  • They see no need to upgrade/switch browsers (unless Windows Update does it for them).

There are of course those who will highlight IE’s problems (for example, that it accounts for a significant number of the security updates produced for Windows) but, in fairness, competing products have similar issues and in some ways I’d rather be running a popular browser that others will find the holes in and the vendor will (hopefully) fix (of course, the same argument is often levied as a reason to run open source applications).

I would like to point out though that Internet Explorer 8 is a huge step forward for Microsoft – both in terms of standards compliance and when looking at its feature set and these days I rarely run anything other than a native browser (IE on Windows, Safari on Mac) because the return of the browser wars has really helped operating systems to raise their game when it comes to browser functionality. IE8 works for me – and whilst there may be tons of add-ins for Firefox, it’s those add-ins that can make the browser unstable too. Similarly, Google Chrome is great for running Google Apps as though they were desktop applications but I fall back to IE when a website fails to render in an alternative browser. And Opera (one of the competitors currently winding up the European Union to drag Microsoft through the courts again in a battle which does little-or-nothing for end users and costs us all a load of money) – they are little more than a distraction, as can be seen in my webstats for March:

Browser Percentage of traffic
Microsoft Internet Explorer 47.26%
Mozilla Firefox 39.24%
Apple Safari 6.33%
Google Chrome 3.91%
Opera 1.90%

If I look at the IE versions in use though, almost 70% are on IE7, around 10% are on IE8, and 21% of my IE visitors (so around 10% of my overall traffic) are still running IE6. My stats are probably skewed due to the number of technical readers (who often run the latest and greatest or the more obscure technologies) but it seems that IE6 is finally becoming a minority browser (and I had just 9 visits from other versions of IE last month).

It seems to me that, for most web developers, there really is little reason not to adhere to web standards and those IE hacks to sort out transparent PNGs, rendering issues and a miscellany of other “quirks” will soon become a thing of the past. Even so, there are still a significant volume of users running older browsers, so we can’t cut loose entirely (IE6 users accounted for over 12% of this site’s revenue last month… that might not be a lot of money but there is a saying that “if you look after the pennies, the pounds will look after themselves“) and, if redeveloping your site to tell it not to run loads of IE hacks is too big a project (or if you still want to direct IE8 to view your site in a particular manner), I saw a document today that details the metatags that can be used:

Internet Explorer 8 ships with multiple rendering modes that may be set by using the X-UA-Compatible header. Web developers can use the ‘meta tag’ to instruct Internet Explorer 8 to render content using a specific mode – to ensure legacy code and applications work properly. The ‘meta tag’ can be included as an HTTP response header for a server-wide solution or on a page by page basis. At the page level instructing the browser to render using the IE7 mode, the ‘meta tag’ would look like:

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

More than just IE7 mode
The following chart lists the available modes and values for the ‘meta tag’:

Compatibility Mode Value Render Behavior
IE=5 “Quirks” mode
IE=7 Internet Explorer 7 Strict mode
IE=EmulateIE7 Use the !DOCTYPE declaration to determine mode:

  • Quirks mode !DOCTYPEs result in Quirks mode
  • Standards mode !DOCTYPEs result in Internet Explorer 7 Strict mode
IE=8 Internet Explorer 8 Standards mode
IE=EmulateIE8 Use the !DOCTYPE declaration to determine mode:

  • Quirks mode !DOCTYPEs result in Quirks mode
  • Standards mode !DOCTYPEs result in Internet Explorer 8 Standards mode
IE=edge Uses latest standards that Internet Explorer 8 and any future versions of the browser support. Not recommended for production sites.

Browser competition is great news – if it hadn’t been for Firefox, Microsoft would not have kick-started Internet Explorer development – but I think that, for the majority of users, Internet Explorer 8 is worth a look. Meanwhile, for many web developers with sites that don’t render correctly in IE8 (like mine!) the chances are that a single line of code in the <head> section of your (X)HTML will fix it – you can find out more (including fully-functioning demonstrations and code samples) at the IE8 developer demonstration website.

Microsoft releases Windows Internet Explorer 8

This content is 16 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Microsoft Windows Internet Explorer 8 logoAt this week’s MIX09 conference, Microsoft announced the availability of Internet Explorer 8, which features new tools and better support for web standards (full details are available in Microsoft’s Windows Internet Explorer 8 fact sheet). I’ve been using IE8 on my main computer for a few months now and, although far too many sites need to run in compatibility mode (including this one… which is supposed to be standards compliant), it seems to be a vast improvement on earlier versions of IE (and I’m looking forward to the day when I no longer need to support the various quirks of IE6).

Rather than just repeating news that’s available all over the web, I wanted to highlight some resources that are available relating to IE8:

For those running the Windows 7 beta, it’s worth noting that the version of IE8 included in the Windows 7 beta is not the same as the version available for earlier operating systems (it includes Windows 7-specific features). I don’t have any specific information for Windows 7 users, but would expect the Windows 7 release candidate to include the final version of IE 8 (with the additional Windows 7 functionality).

Internet Explorer 8 is available for download from the Microsoft website.

Trusting a self-signed certificate in Windows

This content is 16 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

All good SSL certificates should come from a well-known certification authority – right? Not necessarily (as Alun Jones explains in defence of the self-signed certificate).

I have a number of devices at home that I access over HTTPS and for which the certificates are not signed by Verisign, Thawte, or any of the other common providers. And, whilst I could get a free or inexpensive certificate for these devices, why bother when only I need to access them – and I do trust the self-signed cert!

A case in point is the administration page for my NetGear ReadyNAS – this post describes how I got around it with Internet Explorer (IE) but the principle is the same for any self-signed certificate.

First of all, I added the address to my trusted sites list. As the ReadyNAS FAQ describes, this is necessary on Windows Vista in order to present the option to install the certificate and the same applies on my Windows Server 2008 system. Adding the site to the trusted sites list won’t stop IE from blocking navigation though, telling me that:

There is a problem with this website’s security certificate.

The security certificate presented by this website was not issued by a trusted certificate authority.

Security certificates problems may indicate an attempt to fool you or intercept any data you send to the server.

We recommend that you close this webpage and do not continue to this website.

Fair enough – but I do trust this site, so I clicked the link to continue to the website regardless of Microsoft’s warning. So, IE gave me another security warning:

Security Warning

The current webpage is trying to open a site in your Trusted sites list. Do you want to allow this?

Current site: res://ieframe.dll
Trusted site: https://
mydeviceurl

Thank you IE… but yes, that’s why I clicked the link (I know, we have to protect users from themselves sometimes… but the chances are that they won’t understand this second warning and will just click the yes button anyway). After clicking yes to acknowledge the warning (which was a conscious choice!) I could authenticate and access the website.

Two warnings every time I access a site is an inconvenience, so I viewed the certificate details and clicked the button to install the certificate (if the button is not visible, check the status bar to see that IE has recognised the site as from the Trusted Sites security zone). This will launch the Certificate Import Wizard but it’s not sufficient to select the defaults – the certificate must be placed in the Trusted Root Certification Authorities store, which will present another warning:

Security Warning

You are about to install a certificate from a certification authority (CA) claiming to represent:

mydeviceurl

Windows cannot validate that the certificate is actually from “certificateissuer“. You should confirm its origin by contacting “certificateissuer“. The following number will assist you in this process:

Thumbprint (sha1): thumbprint

Warning:

If you install this root certificate, Windows will automatically trust any certificate issued by this CA. Installing a certificate with an unconfirmed thumbprint is a security risk. If you click “Yes” you acknowledge this risk.

Do you want to install this certificate?

Yes please! After successfully importing the certificate and restarting my browser, I could go straight to the page I wanted with no warnings – just the expected authentication prompt.

Incidentally, although I used Internet Explorer (version 8 beta) to work through this, once the certificate is in the store, then all browsers any browser that uses the certificate store in Windows should act in the same manner (the certificate store is not browser-specific some browsers, e.g. Firefox, implement their own certificate store). To test this, I fired up Google Chrome and it was able to access the site I had just trusted with no issue but if I went to another, untrusted, address with a self-signed certfiicate (e.g. my wireless access point), Chrome told me that:

The site’s security certificate is not trusted!

You attempted to reach mydeviceurl but the server presented a certificate issued by an entity that is not trusted by your computer’s operating system. This may mean that the server has generated its own security credentials, which Google Chrome cannot rely on for identity information, or an attacker may be trying to intercept your communications. You should not proceed, especially if you have never seen this warning before for this site.

Chrome also has some excellent text at a link labelled “help me understand” which clearly explains the problem. Unfortunately, although Chrome exposes Windows certificate management (in the options, on the under the hood page, under security), it doesn’t allow addition a site to the trusted sites zone (which is an IE concept) – and that means the option to install the cerficate is not available in Chrome. In imagine it’s similar in Firefox or Opera (or Safari – although I’m not sure who would actually want to run Safari on Windows).

Before signing off, I’ll mention that problems may also occur if the certificate is signed with invalid details – for example the certificate on my wireless access point applies to another URL (www.netgear.com) and, as that’s not the address I use to access the device, that certificate will still be invalid. The only way around a problem like this is to install another, valid, certificate (self-signed or otherwise).

Installation error for Google Chrome

This content is 16 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I’m not going to review Google Chrome – there’s plenty of people doing that all over the Internet at the moment; however I did run across an interesting error whilst trying to install it on a Windows Server 2008 (x64) computer today. I downloaded the installer from Internet Explorer 8 beta 2 and after downloading, I elected to run the installer. UAC was not invoked (it would normally be expected for an executable with the word setup in the filename) but installation failed with the following error:

Error 1625 when installing Google Chrome

I retried the installation with Administrator privileges and it succeeded, suggesting that this error was caused by insufficient permissions.