MF Global went bankrupt in November 2011.
I was working there at the time.
I am still getting letters informing me of details of the ongoing bankruptcy in 2025.
Random outpourings of a software developer
MF Global went bankrupt in November 2011.
I was working there at the time.
I am still getting letters informing me of details of the ongoing bankruptcy in 2025.
These are the companies that help other companies know if a customer is who they say they are and are creditworthy.
When a company reports a payment the data is updated fairly quickly, typically within days.
Correcting mistakes takes significantly longer. I have been subject to a fraudulent credit card application. One of the three credit agencies is dragging their feet on correcting the data. The promise is 2 months to resolve the issue. It is taking significantly longer than that.
Unless you are a paying customer of the agency they won’t even discuss problems with the data that they hold.
In Hinduism, the “creator, destroyer, and preserver” gods are Brahma (creator), Vishnu (preserver), and Shiva (destroyer), collectively known as the Trimurti, representing the three primary aspects of the divine in Hindu belief.
Explanation:
Brahma:
The creator god, often depicted with four heads symbolizing his ability to see in all directions.
Vishnu:
The preserver god, responsible for maintaining balance and order in the universe.
Shiva:
The destroyer god, associated with transformation and the cyclical nature of life, destruction being necessary for new creation.
Software development is very focused on the creator part. Preserver covers maintance. We don’t talk much about the destroyer.
I did once worked with a developer that took the approach that unit tests were the preserver and anything that did not break a unit test was subject to deletion. This works well in high code coverage cases.
Once I saw a codebase that had been built by copy paste have 2/3 of the code deleted. We were maintaining miltiple copies of various things. The compiler was able to help find unreachable code. Its amazing how productive you become after
At all levels of a system we should know what a component is used for. Find something that is sponsoring it being kept around. These will form chains so we can eventually link it to a user need. If a component does not have a useful purpose then it can be deleted. This is much easier to maintain if you are using outside in design.
Dora (not not that one) is an attempt by the EU to reduce risk in the financial industry from IT systems.
This follows other transformational legislation such as S-Ox (which does not even mention IT) and GDPR (no you do not need to ask permission for required cookies, 3rd party cookie can’t be required…)
It mandates required practices and reporting of incidents to regulators. The aim is laudable but the act itself is clumsy. It has been written by lawyers without a deep understanding of technology. No developer would have called it DORA!
However it does contain some good concepts:
You must have a robust process for incidents and major ones require reporting to regulators.
You must back up all critical data.
You must understand your own systems.
You must perform security analysis and manage updating of known issues.
The specific one that I want to discuss is the no deprecated libraries.
Introducing this can be problematic especially in the Javascript/Typescript ecosystem.
Javascript has very fine grained packages and each has dependencies on others. Looking at the react starter kit once I found 10k packages! Given that number you are almost guarenteed to find one that has been deprecated/upgraded in any week.
This gets worse when you find packages that need to be aligned, but don’t raise warnings when they get out of step.
Typescript also provides the illusion of type safety. This means you need to convince the compiler that everything is fine, yet at runtime it may still explode.
One safe option is if the library is redundant. Deletion is a good option.
Some items require another library to be upgraded as a plugin is now no longer needed.
The complex one I am working on is an internal code generation compiler. The next version of the compiler does not need the typescript helper tool. The downside is that the tool has been rewritten across the major upgrade and includes breaking changes and external dependency upgrades.
It may be worth having a “not a problem” list for certain deprecations. That has to count as managed.
I am now studying the Ask Framework using the beta pragprog book
My hope is that this will be another great addition to the Elixir toolbox in the same way Oban, Absinthe and Commanded have been.
It’s a clever idea providing a bootstrap git repo with the starting point for the project. This allows problems to be fixed early and does not waste pages of the book on spurious setup.
So far I have found my asdf setup did not include nodejs so needed this:asdf plugin-add nodejs
Asdf setup of erlang can be slow, especially if you don’t have an asdf managed version of the build.
You may need to leave the machine to update for a while.
I prefer to dockerise my db: Here is the docker-compose.yml
version: "3"
services:
db:
image: "postgres:11"
environment:
- POSTGRES_PASSWORD=postgres
container_name: "my_postgres"
ports:
- "54320:5432"
volumes:
- my_dbdata:/var/lib/postgresql/data
volumes:
my_dbdata: {}
This does require adding port: 54320, to the dev config
Late last year I was the victim of identity theft (again).
Apparently this is not actually a crime!
Someone had attempted to take out two credit cards in my name.
One of the cards arrived at my house which is what triggered the investigation.
Contacting the credit card companies is not always as simple as it should be.
One of them had a fraud department that works outside of office hours.
The other had better fraud detection (they did not send me a card) but required me to spend half and hour on their phone system before I was able to talk to someone. You need to include a fraud path in your call centre messages.
Not all people calling have a customer number.
I have been using https://www.checkmyfile.com/ to perform cross agency checks.
Each of the credit card companies had made 2 hard searches against my account.
Hard searches are recorded as attempts to get credit.
Soft searches are simply other companies keeping an eye on your data.
These make it onto your credit file almost immediately.
Getting them removed is much slower.
To start with the credit agencies will only deal with the people who notified them.
It can take a company 2 weeks to make this call. It can take a credit agency 6 weeks to remove it from your file.
This does mean that any incident can require 3 months of fees to the checking service.
I am now 6 weeks from the event and I still have one credit search to remove.
This is something you need to use every year in the UK if your salary/income exceeds a certain level (or if the tax man tells you to).
Its a fairly clunky system. There has been minimal UX work. You only find out that amounts of zero can’t be submitted on amount fields after a page is saved.
Company names are limited to about 20 characters. I was transferred between legal entities (same company) during this tax period. The problem is I can’t enter either legal entity name in full, and the difference between them is at the end.
It is worth perservering with as you may get a tax refund.
The use of google authenticator is better than a previous security system that required having a code sent by snail mail in a tamperproof printed format.
This has been a problem for many developers recently. It seems as if the call me feature calls you from north america. The problem is that line does not have global reach. You can reach a UK or US number.
Try using a phone redirection service such as vonange that allows you to buy a phone number for less than a euro a month.
Recently I have been making more international flights for work. It seems that all airports now have a shopping mall as part of the process.
The process seems to be: pass a gate that requires a boarding pass. Ditch or drink liquids so you can pass the security check (which varies wildly between airports).
There is then some form of passport check – frequently automated.
You are then left with a curving path through a duty free store before you get to the screens announcing the gates.