3,256 karma · joined December 11, 2012
The reason for this is quite simply because it's impossible to develop bug free code. The process needs to reflect this, and if it doesn't it's not the individual developers fault.
Any kind of certification in this space have you have the following for developing core functionality regarding financial data:
* Proper definition of hard requirements and acceptance tests. * Developers have to develop and write tests against this specification. * Another developer have to perform a review and sign off that this code indeed lives up to this specification. * QA will run tests that verify the specification is met, and sign off that it met specification.
That is a PM/PO that have responsibility for the specification. At least two developers and a QA person that have verified that the specification was met. A bug like this only goes live due to impossible to meet deadline or incompetency on multiple levels.
The only remotely acceptable explanation would be that this is the result of some really weird edge case or possibly race condition. But in that case we're back to incompetency, since no experienced developers should design financial software without well known patterns and technologies for the core of the application.
In this particular domain there is zero excuse for a bug like this.
Most of the western world has free health care and people report any small sign of unexpected side effects and they do count in this statistic. An especially during this pandemic people have been very good at contacting their doctor with adverse side effects.
I think the sad thing is that the free tools could be close to that and with careful open standard planning, it could even have for-profit companies participating. Email is one such example. Chat and screen sharing should have been another.
I did the same, up to 20. I've used it so much since then that even though it seemed silly at the time of learning, it has proved that my total time saved is far greater than the time spend memorizing it. It helps that I went to STEM for university and in general are interested in it. But I'd say over a lifetime average Joe/Jane that handle a normal persons finances will at some point have saved more time than spend learning it.
It's work, but you are running your own bank.
At least for me personally, it has come to the point where I don't believe advertisements anymore.
That is because it's a utility that source power from several producers. The risk of no power what so ever for a prolonged time is not something to even be considered. Should that happen, society as we know it is probably at risk and my job is no longer important at all. Oh, and someone actually do plan for intermittent power delivery failure including having two different outside sources for power, a battery backup and diesel generators, data centers come to mind.
Relying on fixed global state is asking for trouble down the line if it's something that will be evolved over time. DI makes such changes possible because you're injecting it with the constructors, while still allowing you to have a singleton DB managing class today.
Another major benefit for long term maintainability is the ability to see _all_ dependencies in the single constructor. It certainly makes writing tests simpler from unit tests to in memory integration tests.
1. Find a sufficiently large "shallow" body of water. 2. Build a number a number of masts/poles in a straight line, all with an identical height over the water.
Now when standing at the shore and looking at the masts I predicts one of two things.
a. you can see all masts in their entirety with a telescope, or b. you can see less and less of the masts the further away they are.
There are actual places with power lines that satisfy this requirement. For b. you can use high school math to reason about the curvature needed to explain the results. There is no such sound logic (to my knowledge) explaining this for a flat surface.
I agree with what you said, but I wanted to put in the context of what I wrote. Unless your windows and doors have actual anti burglar features, the lock doesn't matter at all. A large screwdriver is often enough to force a window open and a pry bar will make short work of a door. Not until those have been properly secured does the lock matter. And according to some insurance companies in Denmark, thieves does not pick locks anyway. They use a method of force.
I can see where you're coming from with the false start if looking at it from that isolated point of view. I see it more as the first step to storing data, in general, in an RDBMS and once applications start to utilize that, new use cases will start to emerge. Linux in particular with it's "everything is a file" philosophy seems to suited to use this model. A table for processes, files, network connections, ect.
> Give me all image files > 100 KiB from 31. December 2021 to 1. January 2022
While in current file systems you need to scan the entire content of file metadata to get that information. It will take a long time, especially if you have a lot of small files (think Windows C: drive).
That might not be something the average user would do by themselves, but developers of, say, image processing apps certainly would.
Doing it more as a DB enables the OS to use the knowledge from RDBMS for efficiency, which I'm sure rivals the best file systems and it's possible to create multiple indexes and views for other use cases.
Our current view on file systems and the knowledge we have is heavily influenced by slow spinning disks, while RDBMS have leveraged RAM a lot more. With todays fast SSDs the file system operates in a reality that is more like RAM than a slow spinning disk.