Wednesday, 27 February 2019

Football Simulation Engine v2.1.0, v2.1.2 and v2.2.1

The football simulation engine node module has been available for just over a year now and has a couple of hundred downloads, and an interaction of a fair few people via GitHub. Part of that interaction has led to requests for changes to be made to the modules functions to either make the game easier to control or alter. 

Whilst making the changes other issues were thrown up such as the ball not continuing to move with the players when they were in possession, and in other cases the ball remaining in the players control after it had been kicked. The new versions - specifically version 2.2.1 - resolves these issues and provides a much better and more reliable output.

Refactoring 

The first big change was the removal of the async module. Two reasons for this were that a) it didn’t need it, b) I’ve grown a distaste for dependencies in my NodeJS programs. On top of this there were changes to allow for the latest node version to be used which included using let, const instead of var which good practice dictates and the general removal of promises which were also not necessary. 

General input from https://github.com/dashersw has been instrumental which has included improving error throwing as well as removing repetition. As such the code has been regularly reduced or made easier to understand with game examples now available.

Testing 


Part of my own journey has been to begin looking at Test Driven Development (TDD). Unfortunately, I could only apply it in this module retrospectively but will be adding test cases for all new functionality before I code it in future. 

For now, I have added testing for the three main exported functions and testing of validation of input. This is because it is where users are most likely to get stuck. My new goal is also to raise tests around whatever issues come through. One example is https://github.com/GallagherAiden/footballSimulationEngine/issues/33 where tests were added to validate the “ClosestPlayer” functions.

Adding tests has improved the game, because it has caught a number of interesting ‘perks’ of the code written where tests that should have passed actually failed. Which is good, as it shows TDD in action. 

Finally, part of the testing now includes End to End testing through Match Simulation of varying team ratings which shows expected results for teams of different skills.

New Functionality


After a review of the games being played there were a few obvious changes that could be made. Allowing more tackleswas one such whereby players rarely were able to take the ball off each other before, this has now changed and with it comes an improved risk of players committing fouls. 

The greatest new functionality was to stop the ball moving instantaneously, instead the ball moves over a period of iterations. This includes an x, y and z movement which factors in the height of the ball against the height of another player. This has allowed even greater play by introducing interception of the ball as it moves

Another big new function to the simulation was in the calculation of offside and the beginnings of some simple player marking. Other improvements have been possible with the ball movement change which includes; direction of player movementso players attack in the right direction, and better passing to stop players constantly passing to the keeper.

Finally, the way shots were taken, calculated and checked for so that own goals are awarded to the correct teams and shots occur over time. This has also led to an improvement of the ability for keepers to save shots as the ball enters their area.

Finally, a player fitness parameter has been added however this has no impact on the game currently and is merely additional information for people using the simulation engine as a manger game. This also includes an action parameter for each player which allows the move performed by each player determined by the simulator to be overridden.

Fixes


There have been a number of little fixes such as elimination of incorrect reporting of player possession of the ball. Changes have been made so that the closest player to ball or a position now gives a more accurate output.

Players now move with the ball at their feetwhich was quite a major bug in previous versions.



The changes made have had a massive impact on game play which you can see on the video I created for the latest version.



There are other changes coming in version 3 which looks to make the iteration json read better and make it more accessible. Other possibilities will be the removal of players from game play e.g. by red or yellow cards and the ability for team rating and other skills and fitness to have a greater impact on individual player performance.

I would love to receive feedback and requests for improvement which can be added here: https://github.com/GallagherAiden/footballSimulationEngine/issues
Alternatively you can email me here.

Happy footballing and thank you for downloading and using the module. 

Wednesday, 20 February 2019

A brief history of Banks, Payments and Technology

During a recent frenzy of reading on banking systems, payment types, technology and trade I began to note down what I was learning in the hope of sharing that information with others without the need to jump between lots of different sources. Hopefully it is of some use to someone.

Firsts in trade and banking


Around 10,000 years ago, early human beings began to swap hunter gatherer lifestyles for crop planting and animal husbandry. In the process, a specialisation took place whereby communities began to become very good at certain skill sets; wood cutters, fishers, farmers, miners, hunters and gatherers produced specific goods. Each good had its own demand, and so it became sensible to swap one set of goods for another [1].
Early trading would have been the swapping of the physical goods, whether necessity or luxury items. Historians believe one of the first long distance trades to have been conducted could have been as early as 3000BC with goods from Mesopotamia arriving in the Indus Valley in Pakistan and corresponding traded items being delivered in return [2].
With the extended usage of metal in daily lives, its value for trade in both its raw and final form led to its demand in trade encounters. The Greeks, for example, had no early raw metal access and so traded art, food and services with the Kingdom of Lydia for electrum (a natural alloy of silver and gold) coins. It was this supply of coinage that is believed to have led to widely adopted usage of coins across the ancient world and with this circulation came the need for people who were able to swap sets of coins and able to receive money for safe keeping from proprietors and traders and other banking like functions [3]. 
Bankers in ancient Greece and Rome lent money from temples and exchanged coins from different cities both within and from outside the empire. Investments could be made as capital for loans, which would incur interest at rates of over 6% which could be paid using exchange bills without the need for coins. In Ancient Egypt, the Ptolemaic king’s revenue was collected by an intricate banking system before being paid out as paper transactions [4].
Later, in the time of the independent Italian states bankers - known as Lombard’s within the Banking system of Venice - became the first notorious `bank`, which performed its role for the needs of its government. With each governmental war came a need for cash income whereby the populace was forced to pay into the loan system with cash stored in a chamber of loans. 
Whilst the Venetian chamber ceased with the independent state, the Bank of Amsterdam followed a similar set of practices before the Bank of England - chartered in 1694 - became the first of the modern banks, built also upon the principle of capital for loans of which bank notes were given [5].
Banking systems continued to be adopted until it had gained global usage as a means for storing capital, generating interest, producing loans or receiving capital from others such as wages or rent. Payment methods have traditionally been favoured in cash either through coins or bank notes, although cheque payments - a written order for a payment makers bank to transfer funds to a third party - has been used since the 17th century with the earliest surviving Bank of England cheque written in 1659 [6].
The use of cards for payments has had a long history, in the UK, a financial credit company called Provident began to provide clothing and supply vouchers in 1880 as credit for working-class families who could make repayments on the loan over time [7]. This was followed in 1914 by metal cards known as ‘metal’ which allowed deferred payment for card holders [8] which continued to evolve over the next hundred years to provide wider card access to all markets in both credit and debit form. 

Modern Times

The goal in modern times is still about making trades of one good for another, with work services traded for money - now almost exclusively into a bank account - and then credit in the bank traded for other goods and services. The difference is that now the banking industry, consumers and merchants are pushing for faster, easier, more secure and more reliable payments.
In order to achieve this the banking industry has looked to build technological systems that facilitate growth, make it easier to spend and save money whilst improving payment security to prevent fraud whilst keeping customer engagement through the sentiment analysis.
In the 1920’s, accounting machines, punch cards and typewriters were utilised to improve processing time in repeatable processes whilst simultaneously reducing the cost of employment and accounting errors [9].
Task automation and further operation streamlining continued throughout the 1930’s, 1940’s and into the early 1950’s with cooperation between US and European technology companies during in the WW2 era allowing greater sharing of ideas and innovation with trips across the Atlantic galvanising large banks to adopt ever more sophisticated techniques such as standardisation of documentation across the industry [10].
Centralisation of ‘service factories’ to process even the most trivial of items like coupons gave the banks an infrastructure to cope with the rising middle classes who were most likely to use banking services. Problems emerged from the mid-30s as the weight of the work being performed meant the longevity of the machines were less than expected causing machines to need constant repairs or replacement.
In the UK, Barclays - the biggest UK bank of the time - were looking to demonstrate their ability to innovate with foresight. A new ‘computer centre’ was created in Drummond Street, London to demonstrate their computing prowess, significantly, the Emidec 1100 machine which was ordered for delivery in 1961 [11].
In the branches the Burroughs TC500 were also introduced as systems that allowed customer information to be fed into the main computer system from the branch. It took some time to complete the switch, but it is thought most banks has fully moved to the computer-based systems by early 1970s.
One inspiration for Barclays was a partnership between the Bank of America and the Stanford Research Institute which led to the creation of the Electronic Recording Machine - Accounting (EMRA) in 1955 where the level of involvement the bank had in the design of the computer made it facilitate business needs over scientific needs [12].
Further innovation continued for Barclays after British inventor John Shepherd-Barron proposed an automated teller machine (ATM) to the then Chief General Manager in 1965. The idea - stemming from the inventor arriving one minute after the bank shut - was for a cash dispensing machine that would work similarly to a chocolate dispenser. Barclays liked the concept and installed the first ATM at their Enfield branch in North London on 27th June 1967 [13], [14].
At the same time that the ATM was being designed, Barclays also conceived of the Barclaycard in 1965 through Derek Wilde and James Dale who were managers at the firm. In the UK, the idea of the plastic card for issuing credit was a relatively novel even though the practice of the issuing of credit had been occurring for some time, with some local shops allowing purchases ‘on tick’ - meaning to be delayed until payday [15].
The ability to withdraw cash, anywhere and anytime continued to propel the public view that their cash should be available and spendable anywhere and anytime and with the credit card this was now possible, but the endeavour had no infrastructure, no user base and would take until 1972 before profit could be made. Over the Atlantic the Bank of Delaware issued the first debit card in 1966 for regional use, simply requiring a card and signature - the same as with the credit card. 
Whilst credit cards extend loans to the card holder to be repaid at some set later date, a debit card is the spending of money held by the account holder in their account. In the UK, it took until 1987 for the first debit card to be released, once again the front runners were Barclays through the Visa Delta Card [16].
There were still problems for UK payment makers despite frequent substantial change to the way banks were doing business. For example, each week or month, payments would be made to employees through envelopes of cash, and payment of bills such as rent, gas, electric and paper subscriptions were paid face to face and usually behind a queue of other payers.
To help solve this problem and alleviate the need to pay either face to face or specifically with physical money handed from one person to the next, the Bankers Automated Clearing Services (BACS) was introduced helping to reduce processing time of transaction from weeks and sometimes months.
When Dennis Gladwell’s idea was implemented in 1968, the introduction of Electronic Fund Transfer (EFT) between banks meant payments could be handled via computers, eliminating the need for repetitive writing of transfer notes between banks and thus making the movement of money simpler and quicker [17]. 
Whilst the changes being made were allowing more cash to flow in the rising middle class, and that savings had been made with greater efficiency, the 1970s emerged with just as many new challenges as there had been before. The first was the sheer number of customers now using different card types which were manually initiated and entered into the system - a process that was prone to error and slow to complete.
The solution would end up being a method for quickly relaying the information of a card holder using information stored on the card itself, which would be easily accessible without too much human intervention.
In the early 1960s, IBM Engineer Forrest Parry had seen the benefit of attaching magnetic media to a card such as in high security buildings like CIA offices to track personnel information through the magnetic stripe. Forrest would explain that his wife had suggested ironing the magnetic stripe to the card and with that a technology that would serve billions of dollars and billions of transactions entered the technology world. 
Initially the system was used by transit systems on the London Underground and California’s Bay Area Rapid Transit to match travellers with their tickets, but with further standardisation - helped in part by IBM who did not patent the technology - banks had begun to use the technology, heralding an era of greater technical prominence within the banking system [18].
From the retailer’s perspective, cash registers - in order to count and audit payments - had been in existence since 1879 when Ohio based James Ritty and his brother wanted to limit the ability of employees to steal money when handling saloon payments. Over time, the cash register adopted the LCD screen, magnetic stripe technology and wider computer integration throughout the 1970’s. 
By adapting and adopting each new technology, the cash register transformed into point-of-sale (POS) systems or at least POS compatible systems, which were primed for future use as a method for card holders’ payments to be pushed through to bank backend systems and back to the retailer for confirmation of payment [19].
Whilst retailers and banks had improved technologically, so too had telephonics. Home telephone lines had become more popular and obtainable by the early 1980s, simpler to setup, use and cheaper to have in the home. This brought with it a new way that people could conduct their affairs, more importantly, without leaving the home.
In the early 1980’s a partnership between the East Midlands bank The Nottingham Building Society, Bank of Scotland and British Telecom (BT) allowed home service users to connect a bank terminal to their home network or use their personal home computer through the telephone line and television, which enabled bank customers to transfer money, pay bills and arrange loans [20].
Gradual improvements both in quantity of people who owned home computers, the quality of network connectivity and the number of services that could be performed made online banking the convenient way to bank and thus its number of users progressed to a point where bank face to face stores are seeing a shake up in the way they operate and in some cases closing all together.
As access to cash became easier for customers, so too did it become easier for fraudsters who, by 2004, were costing banks £129.7 million in fraudulent activity. To tackle this the UK made a communal switch to chip & PIN on February 14, 2006 following a similar move in France in 1993 [21].
 Chip & PIN (Personal Identification Number) was not exactly new, with Scottish inventor James Goodfellow patenting the mechanism in 1966 it was already a necessary part of ATM transactions. The concept was simple, a chip was inserted into the card instead of a magnetic stripe and required a four-digit pin in order to access the cards services at the computer terminal.
The system was seen as an improvement on signature-based verification which was easy to forge, leading to a greater prevalence of card cloning and a surge in incidents of driving heavy vehicles through walls which hold ATM’s (ram raids) in the late 2010’s [22]. 
To make modern purchasing quicker and easier, a new method was introduced in 2007 through a partnership by Barclays and the Transport for London in order to offer contactless methods of payments for commuters and purchases across any participating retailers. The service would gain in popularity and by 2017 contactless payments accounted for 30% of all UK transactions [23].
By inserting Radio Frequency Identification capabilities into a card, card readers are able to get customer card data through radio signals, with the primary allowance being for purchases of £10 or under, with occasional verification required by the card holder completing a Chip & PIN transaction to keep security integrity [24].
At the same time as companies were pushing to get online, mobile phones technology was improving, with the adoption of internet connectivity into mobile devices in 1996. From here on out, card users could access internet banking services through their mobile, making transactions possible anywhere with internet connectivity.
Of the types of mobile phone payments, the simplest takes place through a regular browser which may or may not have been adapted for the mobile phone’s usage. Shoppers add items to an online ‘basket’ before making payments by entering their card details on an online web form. The webpage then makes a request of the banks system to initiate a transaction which the user confirms. 
Traditional banking and moving of money were to be challenged throughout this period, giving a real driver for existing financial services. In 1999, a company called PayPal was created that allowed individuals to send money to each other through their mobile phones. By using the mobile as a ‘wallet’, users didn’t need their physical wallet, money or cards on their person and could instead pay merchants and, more importantly, each other directly from their phone.
Increasingly more prevalent is the use of mobile applications to complete transactions for specific companies, where traditional cards details are held in the ‘wallet’. This is also true for the device as a whole, where a ‘wallet’ can hold the users bank details and the phone can be used to make payments using Bluetooth or WIFI technology against the card reading device held by the retailer.
Mobile Applications have also allowed banks to shift away from the terminal/home computer-based telephone line internet banking. Instead the method for accessing bank details, making payments and completing other bank services is now available through Bank provided mobile phone applications. The first of which was made available by the Royal Bank of Scotland in May 2011 [25]. 
Digital wallets continue to gain in popularity, with Apple Pay providing the service on Apple Products such as the iPhone and even the Apple Watch as recently as December 2014. The added benefit being that now mobile phones can use greater security feature such as two factor authentications where a secondary authentication method was required, such as face ID, touch ID or a form of passcode.
Whilst bank users, transactions and cash spending has continued to grow over the decades of technological advancements, there has also been an increase in the amount of scrutiny placed on existing banking systems. New online innovation has allowed financial services to emerge to help handle a user’s money effectively or without charges applied by regular banks. 
One example is the smartphone-based bank service Monzo. Whereas before, bank customer would be required to pay a fee to access their money abroad, using modern technology the company were able to offer the service for free.

The Future of Banking

Through government regulation the competitiveness of the major banks has continued to be questioned. In the EU, regulations meant that APIs needed to become available to allow third parties to perform banking functions for bank customers. This dramatic shift mandated in the UK from 2018 meant that customers would be able to access all their different bank accounts data from a single access point such as a mobile application [26].
Whilst this approach is looking to address competitiveness in the market, the financial crash of 2007 has continued to cause a reduction in the number of smaller independent banks available for customers to switch to, with over half of independent banks in the US disappearing over the last 50 years [27].
In this case, if the number of banks is decreasing and the volume of transactions increasing it is easy to see why bank competitiveness is being questioned and why regulations like the Payment Service Directive (PSD2) which envisions easy switching of account types, mortgages and saving funds from a third party is seen as a massive benefit to banking customers. 
What is becoming increasingly obvious is that banks and technology companies do not and perhaps have never been too different. The innovation technology can bring has a dramatic advantage on the banking system through ease of making payments or receiving payment for services or goods. 

The Crystal Ball

Whilst researching I had a couple of thoughts on how the way we handle and deal with money, banks and payments might changes. Below are a few of the thoughts I had, please feel free to comment with your own ideas for the future or harangue me for my own stupid ones...

In the next few years, it seems unlikely that anything but a face scan, voice identification or fingerprint will be required to do our shopping, even less so will there be a need to enter card details into your own device. 

Money management will soon move away from individuals with mortgages, savings accounts and investment all handled by an application which finds and switches to the best deals to get the best monetary return for the end user.

It's also possible that payments for rent, water, gas and electric could be further abtracted away so that the money never truly enters the account holders account, but instead is deposited directly to the end target.

----------------------------------------------------------------------------------------------------

References:

  1. Lannoye, V. (2015). The History of Money for Understanding Economics. 2nd ed. CreateSpace Independent Publishing Platform.
  2. Ahmed, M. (2014). Ancient Pakistan - an Archaeological History. 1st ed. Amazon.
  3. Seaford, R. (2004). Money and the Early Greek Mind. 1st ed. Cambridge: Cambridge University Press.
  4. Adkins, L. and Adkins, R. (1998). Handbook to Life in Ancient Rome. OUP USA.
  5. Hildreth, R. (1840). Banks, Banking, and Paper Currencies. Whipple & Damrell.
  6. Flinders, K. (2009). Cheque is 350 years old today, lingering death expected. [online] ComputerWeekly.com. Available at: https://www.computerweekly.com/news/2240088409/Cheque-is-350-years-old-today-lingering-death-expected [Accessed 20 Feb. 2019].
  7. Provident Careers Site. (2018). About Provident - Provident Careers Site. [online] Available at: https://providentcareers.co.uk/about-provident/ [Accessed 20 Feb. 2019].
  8. Parker, D. (2015). A Brief History of Payments. [PDF] Available at: https://www.polymathconsulting.com/Cache/Downloads/A-Brief-History-of-Payments-from-Polymath-Consulting.pdf [Accessed 20 Feb. 2019].
  9. Archives & Histoire BNP Paribas. (2019). Chronology | Archives & Histoire BNP Paribas. [online] Available at: https://history.bnpparibas/chronology/ [Accessed 20 Feb. 2019].
  10. Bonin, H. (2004). The development of accounting machines in French banks from the 1920s to the 1960s. Accounting, Business & Financial History, [online] 14(3). Available at: http://boninhub.free.fr/files/documents/machines%20%E9lectrocomptables%20I%20anglaisRABF100108.pdf [Accessed 20 Feb. 2019].
  11. Emidec.org.uk. (n.d.). EMIDEC 1100 computer. [online] Available at: http://www.emidec.org.uk/emihme.htm [Accessed 20 Feb. 2019].
  12. About Bank of America. (2019). Bank of America revolutionizes banking industry from Bank of America. [online] Available at: https://about.bankofamerica.com/en-us/our-story/bank-of-america-revolutionizes-industry.html [Accessed 20 Feb. 2019].
  13. Telegraph (2017). The story behind the world's first cashpoint. [online] Available at: https://www.telegraph.co.uk/personal-banking/current-accounts/story-behind-worlds-first-cashpoint/ [Accessed 20 Feb. 2019].
  14. BBC (2007). The man who invented the cash machine. [online] Available at: http://news.bbc.co.uk/1/hi/business/6230194.stm [Accessed 20 Feb. 2019].
  15. RONSON, J. (2016). Barclaycard: 50 years of plastic money – the story from the Archives – Archives Hub Blog. [online] Blog.archiveshub.jisc.ac.uk. Available at: https://blog.archiveshub.jisc.ac.uk/2016/05/31/barclaycard-50-years-of-plastic-money-the-story-from-the-archives/ [Accessed 20 Feb. 2019].
  16. WOJCIECHOWSKA, I. (2017). How debit cards stack up. [online] Fin. Available at: https://fin.plaid.com/articles/how-debit-cards-stack-up [Accessed 20 Feb. 2019].
  17. G, A. (2016). Honey, who moved my money? A Brief History of Direct Debit. [online] Elementary. Available at: https://www.chargebee.com/elementary/what-is-direct-debit/ [Accessed 20 Feb. 2019].
  18. Ibm.com. (2019). IBM100 - Magnetic Stripe Technology. [online] Available at: https://www.ibm.com/ibm/history/ibm100/us/en/icons/magnetic/ [Accessed 20 Feb. 2019].
  19. Merchantproexpress.com. (2017). A Brief History of POS Systems. [online] Available at: https://www.merchantproexpress.com/news/a-brief-history-of-pos-systems [Accessed 20 Feb. 2019].
  20. FEDER, B. (2019). BRITISH MOVE FAST IN HOME BANKING. NY Times. [online] Available at: https://www.nytimes.com/1984/01/02/business/british-move-fast-in-home-banking.html [Accessed 20 Feb. 2019].
  21. 10 Years of Chip & PIN: 2006 to 2016. (2019). [PDF] www.theukcardsassociation.org.uk. Available at: http://www.theukcardsassociation.org.uk/wm_documents/10%20Years%20of%20Chip%20%20PIN%20report%20%282%29.pdf [Accessed 20 Feb. 2019].
  22. Staffordshire Live (2019). Shocking figures reveal high number of ram raids devastating shopkeepers. [online] Available at: https://www.staffordshire-live.co.uk/news/local-news/shocking-figures-reveal-high-number-753815 [Accessed 20 Feb. 2019].
  23. Card Expenditure Statistics. (2017). [PDF] www.theukcardsassociation.org.uk. Available at: http://www.theukcardsassociation.org.uk/wm_documents/Card%20Expenditure%20Report%20-%20April%202017.pdf [Accessed 20 Feb. 2019].
  24. newsroom.barclays.com. (2007). Barclaycard OnePulse leads the way to a futuristic London with unique three-in-one credit card. [online] Available at: https://newsroom.barclays.com/r/1225/barclaycard_onepulse_leads_the_way_to_a_futuristic_london [Accessed 20 Feb. 2019].
  25. Rbs.com. (2019). Banking app, 2011. [online] Available at: https://www.rbs.com/heritage/rbs-history-in-100-objects/history-in-100-themes/going-the-extra-mile/banking-app-2011.html [Accessed 20 Feb. 2019].
  26. PwC. (2019). PSD2 – a game changing regulation. [online] Available at: https://www.pwc.co.uk/industries/banking-capital-markets/insights/psd2-a-game-changing-regulation.html [Accessed 20 Feb. 2019].
  27. McCord, R., Simpson Prescott, E. and Sablik, T. (2015). Explaining the Decline in the Number of Banks since the Great Recession. [ebook] FEDERAL RESERVE BANK OF RICHMOND. Available at: https://www.richmondfed.org/~/media/richmondfedorg/publications/research/economic_brief/2015/pdf/eb_15-03.pdf [Accessed 20 Feb. 2019].