Identity Theft

Recently I have been the victim of Identity Theft.

In October and November last year there were a total of 57 attempt to take out financial services in my name. So far two of these have succeeded in obtaining money.

Both of them were payday loan companies. I have reported the identity theft to Action Fraud. Both companies would openly talk to me about the loans and have recorded them as fraudulent.

I have signed up to a credit file checking service to allow me to see what the current state is. I will need to keep this up for a couple of months.

However neither of them have made any attempt to check that I am who I say I am. I have been sent the pdf bank statement used as part of the identification by one of the companies. Other than giving them publicly available information about myself (name, date of birth and address) no attempt has been made to validate who I am.

It can be hard to get a company to talk to you about fraud. Firms should really have an email address that can be used to report this. For example one of the finance checks went to Sky Mobile. I cannot find a means of talking to them without becoming a customer.

GDPR requests seem to be the only way to get a company to talk to them.

Programming Phoenix Chapter 12

This chapter adds an OTP application to the demo.

This is the first chapter where I have found some typos
info_sys/application.ex needs the following to work:

alias InfoSys.Counter

Without that the app won’t start.

You also need to be careful with the examples. The name of the files are sometimes incorrect (although the listed path is right). Sometimes it asks you to edit a file in Rumbl when it actually means InfoSys.

There are also a lot of mistakes in the supervisor demos. Sometimes aliases are missed (as above) and sometimes it refers to the wrong project.

Again working though Programming Phoenix (part 2)

I have continued working through the Programming Phoenix book.

https://github.com/chriseyre2000/rumbl

Currently I am at the end of Chapter 10.
This has introduced using websockets in Phoenix to interact with the page.
The application allows annotations to be made to a video that playback in real time.

I am having some trouble with the actual Youtube API since it now complains about cookies not being on the main site. I intend to finish working through the book and return to fix this issue.

Chapter 11 is about refactoring the application to use an Umbrella Application. This will split the Rumbl and RumblWeb applications apart. Having a real demo of refactoring is useful.

Kafkaesque Support from Barclaycard

I am currently trying to get a problem resolved with Barclaycard.

A few years ago a fraudster tried to steal my Barclaycard using the Barclaycard call centre. The first time triggered the fraud protection and my card was blocked. That time I added a password for changes to my account.

A month later the same thing happened and the call centre allowed the change despite the requirement of the password (it was not guessed, just sidestepped). The fraud team again caught the problem and blocked the card. It was during the conversations that I had with the fraud department that convinced me that they really did not understand security. They were about to read out an address line attached to the account before I had verified myself (I stopped them). A month later that would have been a GDPR violation.

It required a distinct call the next day to close down my Barclaycard as whilst blocked no action can be taken (all calls related to a blocked card get routed to the fraud department and they don’t deal with card closures).

Some years later I have found that Barclaycard had sent the address that they knew was fraudulent to a Credit Agency as a “confirmed address”. This is something that only Barclaycard can correct. I called the support number and was put eventually got through to the fraud detection team. I asked that the invalid address be removed.

A month later nothing had changed. I had no confirmation of my first communication and had started to be billed for the credit checking service that I am now using.

This is when I looked up the email address of the CEO of Barclaycard to make my complaint. They did get back to me the same day with a reference number and asked for my availability to take a call. I gave a few hours that day and most of the following.

There was no call back 2 days later, so I chased via Twitter. Now I find that the availability details were for the next 5 days!

It’s now a week from the email so I chased up via twitter. This time I am told that a letter has been sent and given the phone number that the letter asks me to call. The first time the call was lost after 15 mins. The second time it rang for 2 hours.

Again I chased via twitter. This time I was told that a specialist case handler has been assigned, but may not be able to get back to me until next week! Apparently the people at the number I have been given would not be able to help me anyway!

This is slowly turning into a Kafkaesque nightmare. What is the point of sending a letter with a phone number that:

  • Won’t be answered in under 2 hours
  • Won’t be able to help anyway.

I have so far been waiting (in total) for 3 hours for the calls to be answered, and now I find that they can’t help yet.

Hopefully I will get a call next week.

Referencing other module in Elixir

There are several different ways of referencing a function in another module.

The direct:

MyModule.SubModule.hello

You can also alias the module so that a shorter name can be used:

alias MyModule.SubModule
Submodule.hello

You can import a module so that all the functions are treated as local to this module:

import MyModule.SubModule
hello

You can require a module so that you can use the macros defined in that module.

You can use a module to run the __using__ function from that module in your context.

These don’t have to be at the top of the module, you can use them within a function to restrict scope (not so sure about using __using__ this way…).

These also have parameterized versions so that you can choose what to import (only some, exclude some, rename them).

This can make them seem complex …