Saturday 25 October 2014

Off topic: change of EHIC card regulations from July 1st 2014

"Nothing personal, it's just business."
Otto Biederman

I do apologize for the off topic, but I feel obliged to share a surprise change of the EHIC card rules that was introduced without a lot of announcement in the news (I usually watch BBC Breakfast and Evening news and I do not remember such thing announced/discussed).

The new rules are explained here: NHS web site. The essence is:

  • If you visit another EEA country where that country requires its own citizens to pay a patient contribution, you will also need to pay for this.
  • You will no longer be able to claim reimbursement for this payment when you return to the UK for treatment received after July 1 2014.
  • Your EHIC still entitles you to receive medical treatment that becomes necessary during your trip, and you will be treated on the same basis as a resident of the country you are visiting.

In the past, if your EHIC card was issued in the UK, you would expect reimbursement of your expenses paid for standard (state) medical treatment received in an EEA country. After July 1 2014 you need to pay yourself for everything that a citizen of this country has to pay.

I visited Bulgaria and I broke my leg by accident. I was admitted into a hospital and I received a good treatment - no complaints. My EHIC card was accepted without problems and the main expenses (non-planned surgery operation at the same night) were covered.

But I had to pay for "expensive materials" - metal planks to join the broken bones (no other choice according to the doctor) - relatively expensive - and for each night spent at the hospital (very small amount).

At the hospital nobody knew the exact rules and I was advised to translate all invoices for the additional expenses and other related documents (in Bulgaria they are in Bulgarian language) in order to claim them in the UK. Save your money - translate just the Epicrisis and the Incapacity of work certificate...

How to avoid paying from your pocket:

Buy travel insurance


An additional income for the insurance companies, but as a result you would be able to claim your expenses.

Just business, nothing personal...


Thursday 14 August 2014

Useless? Delphi IOUtils.pas

I am a computer programmer and my preferred programming tool is Delphi.

But I cannot get in terms with the newer versions of it - 2010, XE2, XE6 (the company I work for owns Delphi 3, 5, 7, 2007, 2010, XE2, XE6).

I have the feeling that part of the code provided is written to test the fellow programmer's skills and patience. It looks OK for a hobbyist jobs, but cannot be used for serious work. The main reason for this is the assumption of the coders that this code would run on God's computer - fast as a light, with ocean of RAM and very intelligent memory manager. The code supplied has to be changed (via class inheritance or helpers) in order to become usable according my requirements...

There are many such places in Delphi and today I am writing about IOUtils.pas

IOUtils.pas was introduced in Delphi 2010 - 7 Delphi versions ago. Initially I thought that it is very useful thing. But spending some time playing with it (Delphi 2010), I decided that it is useless and returned to the good old FindFirst/FindNext/FindClose. Tonight I decided to give it another chance. But I was bitterly disappointed again.
  • All functions return dynamic array of strings that contain just the file names. If you need more information (File Size for example) - you need to call other methods, passing the file name as parameter.
  • GetFiles methods that match pattern use MatchesMask function for each file name to be checked. The problem is that this function creates and destroys TMask object on each call. Creating TMask object once and using its Matches(filename) method made the program to run 50 times faster. And there is no way to check against several patterns.
  • There is no easy way to control and monitor the progress of many procedures and functions, if you need them to run in a separate thread. Example: TDirectory.GetFileSystemEntries. The only way to filter the file names returned is to use Predicate function, passed as parameter. Very powerful feature, because I can do all necessary checks (even against list of masks) and I can fill my data structure with all information I need - size, attributes and times. But in this case I do not need the dynamic array of file names returned. I can avoid it by setting the predicate to return false, but that is just work around... And this predicate cannot be used to report progress of a thread, because it cannot be called through Synchronize. And if there was a way - I would not like to Synchronize for each file...
There is TFile.Move function. But its name is misleading. It does not move the file (a direct call to windows API function MoveFile(source, destination)). It copies the file into the destination and then deletes the original. Why??? 

The reason I needed to move files was the side effect of the recent (12 August 2014) MS Windows 7 update (Thank you, MS!) - it is described here: Delphi 2007 cannot start, because EditorLineEnds.ttr is locked by System. Up to now the only way around the problem (if I want to keep the installed Windows updates) is to move the EditorLineEnds.ttr file out of AppData\Temp folder before Delphi 2007 starts. I wrote little utility that checks whether there is such file in AppData\Temp and if it is there - it moves it under a new name into different folder (adding sequential number to the file name). These files remain locked during the current Windows session even after moving/renaming them - if I reboot - I can delete them. The attempt to use TFile.Move copied the file into the new folder, but failed to delete the original, because it was locked by Windows...

At the end - I left IOUtils and implemented small (20 lines code, no threads used) tool that uses FindFirst/FindNext to find out the max number added already to the file name and MoveFile Windows API function to move the file into different folder under new name.

you can't teach an old dog new tricks

Disclaimer: All brand names and trademarks mentioned above belong to their owners. All facts are correct to my best knowledge on 14 August 2014. No attempt is made to advertise or anti advertise any company. All opinions are personal and do not involve anybody else except me.

Sunday 13 July 2014

MS Office 2010 - huge profits for some

In April 2014 Microsoft stopped support of Windows Server 2003 and as a side effect MS Exchange Server 2003. It was a "Death Foretold", and we could prepare long time ago. But there is a small p r o b l e m that makes it harder to withstand:

MS Outlook 2013 refuses to connect to MS Exchange 2003 server. You would say - Microsoft is within its rights - it is difficult to keep backwards compatibility for so long time and I accept it. But just give me a chance to continue buying MS Outlook 2010, that works happily with MS Exchange Server 2003.

Unfortunately I cannot buy MS Outlook 2010 anymore from Microsoft (at least online)! If I am wrong - please give me a link!

See what are the prices of MS Outlook 2010 licenses at Amazon Market space:

And it is not only MS Outlook. Nowadays MS Office 2010 licenses are 2.5 times more expensive than MS Office 2013:
If the images are difficult to read - just go to www.amazon.co.uk and search for MS Office 2010 Home and Business...

Fact:
Some sellers are making huge profits by putting old (unused) MS Office 2010 licenses on the market.

The worst thing is that despite the high price, you never know whether you would be able to activate the product - some sellers just disappear from Amazon marked space after making several sales. Amazon is kind enough to take responsibility and offer a refund, but I need the MS Office 2010 licenses, not the money!

MS Office 2010 can be downloaded still, if there is a valid product key. Funny enough, the link is not published - Google is on help. It is through http://office.microsoft.com/ and it looks like MS Store - the price is 0.00 and it offers to add a media (DVD) for small additional amount. Why such links are not made to sell new licenses for MS Office 2010 or MS Outlook 2010?

Disclaimer: All brand names and trademarks mentioned above belong to their owners. All facts are correct on 10 July 2014. No attempt is made to advertise or anti advertise any company. All opinions are personal and do not involve anybody else except me.

Friday 11 July 2014

Welcome

Welcome to yet another blog for computer programming and IT related matters.

I intend to put some:

  • notes about stuff I am playing with (programming, not games)
  • ideas that could be useful, if implemented
  • comments about trends and events in Computer Science and IT industry
  • other maters I am interested in

Posts will not be regular, but in next several weeks I will put some things that have accumulated. Watch the space.

I will not advertise any brands or companies. Whatever I say - it is my personal opinion based on my experience or thoughts. It could be not as commonly accepted, but it is mine - please respect it. I will respect yours.

All brands and trademarks mentioned by me belong to their owners.

Let's go!