UK General Election 2017

I think this election boils down to one question:

Do you believe that nothing can be done and vote for a government that does as little as possible and allows the worst excesses of capitalism to continue to enslave us?

or

Do you believe something can be done and vote for an interventionist government that attempts to curb the excesses of capitalism and tries to make the country a happier place to live?

Decide what you believe in and vote accordingly.

Advertisements

BreakthePaywall New Releases

It’s been a busy week at BreakthePaywall the browser app from IslandEarth that enables you to easily circumvent paywalls such as wsj.com and ft.com that implement search indexing and social media workarounds.

The wsj.com site recently announced that they are stopping the use of Google One Click Free – this allows their site to be indexed for searching purposes and in return allows people who search for their articles on Googles search engine to view the articles without having to pay. However, they are still allowing social media links such as Facebook.com to have free access. This is interesting – a possible turning point in the history of the internet, Google is now not all powerful, perhaps Facebook is now the dominant force?

So this prompted us to update the BreakthePaywall utility for Internet Explorer – 2.1.0 is now available for use in IE on Windows XP and above including Windows 10. If you are using the new Microsoft Edge browser under Windows 10 then we have submitted an extension for certification so hopefully available soon.

In addition we also updated the Opera browser version to 1.0.0.3. This is available for download from the BreakthePaywall website. This is the same add-on that we had for the Google Chrome browser which was taken down by Google last year – we have re-submitted the Chrome version under the name ‘BTPW’ and it has been accepted and is available from the Chrome store – just search for BTPW.

Firefox also now uses the same browser engine as Chrome and Opera (MS Edge also uses the same engine but with the usual MS oddities) so we also ported the add-on to a Firefox version which is available from the Firefox add-on store. Again just search for BTPW.

So we now have a version of BreakthePaywall for all major browsers with MS Edge coming soon.

SQL Native Client and ODBC

We still use OLE DB throughout our Microsoft products – Data connections from website applications, SQL SSIS etc. And it seems Microsoft still encourages its use – default choices in many cases. There are other data connection choices – ODBC, ADO.NET. But we have always found OLE DB to be the recommended technology by developers for compatibility with all functionality, speed and ease of use.

The OLE DB drivers were always included in the SQL Native Client package which also contained ODBC drivers and you needed to install it on the SQL server and match up your connection strings with the correct version you were using.

I was starting to evaluate SQL 2016 and was looking for the latest SQL Native client update for that version. It became a big surprise when I learnt that the native client driver has not been updated since the release of SQL 2012 and that Microsoft announced in 2011 (just before the release of SQL 2012) that they were deprecating OLE DB in 2018, that no new versions would be released and were recommending the use of ODBC instead:

https://blogs.msdn.microsoft.com/sqlnativeclient/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access/

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e696d0ac-f8e2-4b19-8a08-7a357d3d780f/microsoft-is-aligning-with-odbc-for-native-relational-data-access-faq?forum=sqldataaccess

So, you may find that in future OS and IIS versions the OLE DB connection is broken. I decided a comprehensive review of all the drivers available needed to be performed, the results of which you will find listed below. You will notice that there has been 3 new releases of the ODBC drivers now named ‘Microsoft ODBC Driver for SQL Server’.

The main problem that I have found is with nText and Nvarchar(max) fields – you should be using Nvarchar(max) as Ntext was deprecated in SQL 2005. But even then none of the ODBC drivers (except the vintage SQL 2000 driver using Driver={SQL Server}) will read large blob type data in nText/Nvarchar(max) type fields – you just get blank. So the only way around this is to use OLEDB driver (SQLNCLI) or limit the field to nvarchar(4000) which is the max length you can set (nvarchar(max) is blob type storage which can store up to 2GB). This was one incompatibility that we found – there may well be more!

So, let me re-iterate, Microsoft have dropped OLE DB in their latest driver releases, they recommend you use ODBC instead but ODBC does not work with all SQL functionality! I did pose a stack overflow question which didn’t come up with any viable solutions:

http://stackoverflow.com/questions/38608879/oledb-odbc-ntext-and-nvarcharmax

But we have also noticed that the default in SQL 2016 SSIS is to use OLE DB! In fact it took us a while to work out that ODBC has been included – you have to choose other options. Also, if you go to any conference where SSIS is being discussed they will all be using OLE DB, or ADO.NET when using multiple parameters as it is more manageable, certainly not
ODBC.

We also asked Microsoft execs about the situation at the same conferences and their typical response was, and i’m paraphrasing, ‘well we announced it is deprecated but there is such a huge base of customers using it that we don’t see it dissapearing anytime soon’. Indeed the main thrust of their deprecation announcement seems to be to do with SQL Azure – I have no experience with Azure but it sounds like you can only use ODBC with Azure and therefore, they are getting on premises people to change over to ODBC because that will make migrating to Azure much easier – of course in Microsoft’s eyes everyone will migrate to Azure so the issue over OLE DB becomes academic to them.

Anyway, we decided to stick with OLE DB in Native client rather than having to test everything with the latest ODBC driver as it looks like there will be no problem when we upgrade to SQL 2016 with continuing to use OLE DB.

SQL Native Client:

The SQL Native Client installs both 32bit and 64bit OLE DB and ODBC drivers.

The versions that are currently available are:

SQL Native Client V9 (SQL 2005):

OLEDB Provider code: SQLNCLI
OLEDB User/Password connection string:

objname.Open "Provider=SQLNCLI;Data Source=ServerIP;Failover Partner=MirrorServerIP;Initial Catalog=YourDatabase;User ID=Username;Password=Password;"

OLEDB Trusted Connection connection string:

objname.Open "Provider=SQLNCLI;Data Source=ServerIP;Failover Partner=MirrorServerIP;Initial Catalog=YourDatabase;Trusted_Connection=yes;"

ODBC Driver code: {SQL Native Client}

ODBC User/Password connection string:

objname.Open "Driver={SQL Native Client};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;User ID=Username;Password=Passwor"

ODBC Trusted Connection connection string:

objname.Open "Driver={SQL Native Client};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;Trusted_Connection=yes;"

 

SQL Native Client V10 (SQL 2008):

OLEDB Provider code: SQLNCLI10
OLEDB User/Password connection string:

objname.Open "Provider=SQLNCLI10;Data Source=ServerIP;Failover Partner=MirrorServerIP;Initial Catalog=YourDatabase;User ID=Username;Password=Password;"

OLEDB Trusted Connection connection string:

objname.Open "Provider=SQLNCLI10;Data Source=ServerIP;Failover Partner=MirrorServerIP;Initial Catalog=YourDatabase;Trusted_Connection=yes;"

ODBC Driver code: {SQL Server Native Client 10.0}

ODBC User/Password connection string:

objname.Open "{SQL Server Native Client 10.0};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;User ID=Username;Password=Password;"

ODBC Trusted Connection connection string:

objname.Open "{SQL Server Native Client 10.0};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;Trusted_Connection=yes;"

 

SQL Native Client V11 (SQL 2012):

Download Location: https://support.microsoft.com/en-us/kb/2726013
OLEDB Provider code: SQLNCLI11
OLEDB User/Password connection string:

objname.Open "Provider=SQLNCLI11;Data Source=ServerIP;Failover Partner=MirrorServerIP;Initial Catalog=YourDatabase;User ID=Username;Password=Password;"

OLEDB Trusted Connection connection string:

objname.Open "Provider=SQLNCLI11;Data Source=ServerIP;Failover Partner=MirrorServerIP;Initial Catalog=YourDatabase;Trusted_Connection=yes;"

ODBC Driver code: {SQL Server Native Client 11.0}

ODBC User/Password connection string:

objname.Open "{SQL Server Native Client 11.0};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;User ID=Username;Password=Password;"

ODBC Trusted Connection connection string:

objname.Open "{SQL Server Native Client 11.0};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;Trusted_Connection=yes;"

 

Microsoft ODBC Drivers:

Microsoft ODBC Driver 11 for SQL Server:

Download path: https://www.microsoft.com/en-gb/download/details.aspx?id=36434
OLEDB Provider code: n/a
With this version Microsoft dropped OLEDB support
This version appears to be a driver wrapper to enable new functionality (like connecting to Azure DBs) you can then supply the underlying driver or use the ODBC driver that comes with it (Unfortunately you can’t use the old OLE DB driver).
So, in order to use Microsoft ODBC Driver 11 with SQL Native Client V11 you would need to install both Microsoft ODBC Driver 11 for SQL Server AND SQL Native Client V11 and use the following connection strings:

Provider code: MSDASQL
ODBC Driver code: {SQL Server Native Client 11.0}

ODBC User/Password connection string:

objname.Open "Provider=MSDASQL;Driver={SQL Server Native Client 11.0};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;User ID=Username;Password=Password;"

ODBC Trusted Connection connection string:

objname.Open "Provider=MSDASQL;Driver={SQL Server Native Client 11.0};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;Trusted_Connection=yes;"

But you would be better off using the driver that comes with it (I hesitate to use the word native driver – that would confuse things even further!). These are the connection strings to use if you just want to use Microsoft ODBC Driver 11 for SQL Server:

Provider code: MSDASQL
ODBC Driver code: {ODBC Driver 11 for SQL Server}

ODBC User/Password connection string:

objname.Open "Provider=MSDASQL;Driver={ODBC Driver 11 for SQL Server};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;User ID=Username;Password=Password;"

ODBC Trusted Connection connection string:

objname.Open "Provider=MSDASQL;Driver={ODBC Driver 11 for SQL Server};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;Trusted_Connection=yes;"

 

Microsoft ODBC Driver 13 for SQL Server:

Released 25th July 2016

Download path: https://www.microsoft.com/en-us/download/details.aspx?id=50420

This added support for SQL 2016.

Provider code: MSDASQL
ODBC Driver code: {ODBC Driver 13 for SQL Server}

ODBC User/Password connection string:

objname.Open "Provider=MSDASQL;Driver={ODBC Driver 13 for SQL Server};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;User ID=Username;Password=Password;"

ODBC Trusted Connection connection string:

objname.Open "Provider=MSDASQL;Driver={ODBC Driver 13 for SQL Server};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;Trusted_Connection=yes;"

 

Microsoft ODBC Driver 13.1 for SQL Server:

Released 1st August 2016

Download path: https://www.microsoft.com/en-us/download/details.aspx?id=50420

This added functionality for always encrypted connections.
See: https://msdn.microsoft.com/en-us/library/jj730314(v=sql.1).aspx

Provider code: MSDASQL
ODBC Driver code: {ODBC Driver 13 for SQL Server}

ODBC User/Password connection string:

objname.Open "Provider=MSDASQL;Driver={ODBC Driver 13 for SQL Server};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;User ID=Username;Password=Password;"

ODBC Trusted Connection connection string:

objname.Open "Provider=MSDASQL;Driver={ODBC Driver 13 for SQL Server};Server=ServerIP;Failover Partner=MirrorServerIP;Database=YourDatabase;Trusted_Connection=yes;"

 

In all cases we are connecting to an SQL 2012 server with database mirroring. Strings may be different for other scenarios. A good website for connection strings is:
https://www.connectionstrings.com/sql-server/
Although they are not up to date with MSDASQL connections at time of writing.

Note: Certain keywords seem interchangeable between drivers e.g. ‘Failover Partner’ and ‘Failover_Partner’; ‘Trusted_Connection’ and ‘Integrated_Security’

Download videos from You Tube for offline viewing

Another useful add-on for Firefox is a utility for downloading videos from you tube.

Like many, my commute to work doesn’t always include a good wi-fi connection or a decent mobile signal and I just hate that buffering that goes on when streaming videos. So downloading for offline access is essential.

YouTube does not supply a download facility but luckily it doesn’t seem too difficult to add that functionality going by the plethora of add-ons that are available to do just that!

I had to trawl through quite a few – some rubbish, some ok – before finding the perfect one:

https://addons.mozilla.org/en-gb/firefox/addon/download-youtube/

And it’s Github page:

https://github.com/gantt/downloadyoutube

It’s really simple to use. Once installed it adds a Download button to any YouTube page:

youtube_download.png

Click on the button and you will get a choice of videos to download in terms of quality e.g. 1080P, 720P, 360P etc, in MP4 format. You can then choose where to download the file with a standard Save As dialog.

Be warned that YouTube are testing and rolling out a new interface in which this add-on does not work. I’m sure the developers will update to the new interface at some point but in the meantime switch to the YouTube classic interface instead.

Firefox ad-blocking with uBlock Origin

Another thing I like to have setup in my browsers is ad-blocking.

I don’t really mind advertisements on web pages as my brain is now pretty much programmed to ignore them after 20 years of web browsing (that’s the entire time web adverts have been about I think!). But obtrusive popups and the like I detest.

I also find many sites so clogged full of utter rubbish adverts that the page does not load – the contents not usually worth waiting for anyway but it does take a while for your browser to sort it all out sometimes.

I don’t mind websites making money from adverts but it is now the case that end users/potential customers need some kind of control over them.

And that’s where uBlock origin, a Firefox add-on, is very useful, if not essential.

This add-on could be described as a ‘browser firewall’ but in many users eyes that implies it is complicated to use, gets in the way and/or slows things down – none of those assumptions is true. uBlock Origin is very easy to use, is fast and does not slow web pages down – in fact it speeds them up – and is so unobtrusive you forget it’s there.

uBlock Origin can be added from the Firefox store. Here’s the direct link: https://addons.mozilla.org/en-GB/firefox/addon/ublock-origin/?src=search

Don’t get confused with Ublock which was a previous version which has since been forked by the original developer into uBlock Origin. The add-on is open source and here is the github page: https://github.com/gorhill/uBlock. You may notice that it also works with the Chromium engine – So there is an add-on for Opera as well: https://addons.opera.com/en-gb/extensions/details/ublock/?display=en#main. Or you could add it to Google Chrome if you really want to use that browser (you probably know my feelings on that by now!).

And here’s the Wikipedia page: https://en.wikipedia.org/wiki/UBlock_Origin

uBlock Origin is simple to install and you can just leave it to do what it does without getting into the detailed settings but those settings and information on what it is doing are all there if you wish to delve in. It adds an icon to the top right of the Firefox browser with the uBlock Origin logo: ublock_origin_icon

Simply put, once installed, if you load a web page you will start seeing numbers appearing over this icon – that’s showing how much crap uBlock origin is blocking. For example simply visiting the wordpress.com web site produces this: ublock_origin_icon_nos. Yep, 66 requests blocked.

You can click on the icon and it will show this by default:

ublock_origin_initial

In fact the number of requests went up to 72 while I was getting that image.

Clicking on the + next to the requests blocked or the domain connected produces an expanded dialog:

ublock_origin_expanded

Up to 79 blocks now!

This interface looks a bit daunting but is really simple to understand and use.

You will see listed the third party domains that the page has requested things from. Green next to the domain indicates items were not blocked, red means all requests were blocked and yellow indicates some requests were blocked.

uBlock origin uses a range of thrid party ad blocking lists to decide what to block and what not to by default.

Notice that you also get the 1st party domain information – in this case wordpress.com which it is not blocking.

In most cases you can continue with the defaults but you can set things to how you want in great detail by using this interface. If you hover your mouse over the columns next to the domains you will notice some green and red boxes appear. So you can choose red to block that domain or green to unblock – the first column denotes settings for this site only, the second column denotes settings globally for all sites you visit.

ublock_origin_expanded_colours

In the above image I am hovering over the facebook.net entry which I can block by selecting red for the wordpress.com site that I am visiting. All these choices are remembered by the add-on.

The plusses and minuses in the second column denote how much is being blocked or not – one plus means between 1 and 9 requests were allowed, 2 pluses between 10 and 100 and three pluses over 100. Minuses denote what is blocked in the the same way.

You can quickly see how you can finely tune your browsing experience but be wary if you are not sure what you are doing. For example blocking fonts.googleapis.com may render the website unusable as it will be using a completely different font to what you expect or blocking facebook.net may mean a widget that the site is using for extra functionality cannot be used.

By far the most useful option is the blue on/off button:

ublock_origin_blue_button

Clicking this will unblock everything for a site. So if you visit a site that you like and support and you want to allow them to track your usage and serve up adverts so that they get revenue just visit the site and hit the blue button. This is whitelisting and you can view a list of the sites you have whitelisted within the uBlock origin settings which can be located at the gear icon in the top left of the dialog: ublock_origin_settings_button

Goto the whitelist tab:

ublock_origin_settings_whitelist

It’s quite fun to test this all out in realtime. You can logon to facebook and see that uBlock origin is now blcoking all the ads in amongst your normal postings, click on the blue icon and refresh and those adverts all come flooding back. (remember to switch blocking back on unless you want facebook to get even more money of course!).

As mentioned because uBlock origin is blocking all this stuff, web pages will load much quicker – this is certainly my experience. I now find that if I am on a machine without uBlock origin installed I really notice how slow some websites are.

SearX for Anonymous Search

If you have read my past posts on search engines you would have realised that I am always looking to use a search engine other than Google search – well anything other than Google in everything I do!

In the past I have recommended Scroogle which unfortuately died in 2012, ixquick.com a European based search engine, duckduckgo.com which is still going and growing in strength and most recently privatesearch.io which also seems to have disappeared although the excellent sister site privacytools.io is still going – they have great advice on which software and services to use to be as private as possible (and move away from Google).

All these services have one thing in common, they anonymize your searching to mitigate against your personal life being tracked. Results are not produced by profiling the user (tracking), every user will get the same search results when entering the same search terms.

Scroogle used a hack into Google’s search engine but suffered from being reliant on Google not changing their API to thwart this kind of third party service.

Duckduckgo relies on Bing, Yahoo and crowdsourced sites like Wikipedia for it’s search results.

Privatesearch.io did something similar but also used Google for results.

Not sure what happened to Privatesearch.io but it was based on the opensource asciimoo/Searx project: https://github.com/asciimoo/searx. This works in a similar way to the other engines – anonymizes your search and uses Yahoo, Bing and Google (it shows which search engine the results have come from and also uses many other sources). It is completely open source and there is a thriving community – https://twitter.com/Searx_engine – where many people have created their own search engine sites for general search or for specific search criteria: http://stats.searx.oe5tpo.com/ This link will list all the current Searx sites available (and whether they are up – note the down signal for privatesearch.io). The one I use the most is the general Searx.me site.

searx.png

 

ixquick.com is still going, and it has somehow acquired the domain startpage.com. It is owned by a commercial outfit – Surfboard Holdings B.V. in the Netherlands. It has had much more written about it and many awards and plaudits associated with it: https://en.wikipedia.org/wiki/Ixquick. It’s based in Europe and adheres to European privacy rules plus a lot more. The only drawback is that it is a little slow.

startpage

What I found with all these engines was that results were very much steered towards the USA – I’m in the UK so I wanted results more relevant to my local area. Searx.me does offer preferences where you can change the country to United Kingdom and I found that the results are very good using this engine. Ixquick also now has the ability to change preferences to UK English and even has a ‘Pages from the UK’ button automatically appearing (I assume that changes according to which country you are in) and I have found the results very relevant.

So what would I recommend now?

At this time I would definitely recommend startpage.com from ixquick as your default search engine but if speed is important and you like the idea of using an opensource solution rather than commercial then go with SearX – that’s what I use.

Note: when saving preferences they are usually saved in a cookie. If you delete cookies on exiting your browser have a look at the selectivecookiedelete add-on for Firefox detailed in a previous post: My Firefox settings – retaining some cookies whilst deleting everything else on exit

 

IslandEarth moves to Wordpress

You may have noticed that the IslandEarth website has changed. This is because we have now moved to WordPress.com

We were previously with Squarespace.com but the costs they charge started to become prohibitive.

I hadn’t even considered WordPress when I began looking around for alternative providers due to bad experiences in the past. But that was over 5 years ago – a millennium in IT terms!

The only reason I started looking at WordPress again was that the means of getting your old blog posts from one provider to another always involved using a WordPress formatted file as the intermediary mechanism. I tried that on a few hosting sites without much success – dates would be reset to today’s date, images would not be brought in etc.

Then I realised that WordPress was offering the same functionality, if not better, than the paid for hosting companies I was looking at. So I took the plunge and was pleasantly surprised at the simplicity of using WordPress and the functionality it has to offer. Just looked at the stats today and they are well presented as well.

It was by no means perfect importing my blog posts from the old site – some images did not transfer DNS A records to point at the WordPress server IPs: 192.0.78.24 and 192.0.78.25

So far so good and I highly recommend using WordPress.com not just for Blog style sites but ordinary websites as well.