The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Money transfer on movies

Can anyone explain why they use:

void Transfer(int nValue)
{
  for (int i=0; i<nValue; i++)
    RealTransfer(1);
}

instead of:

void Transfer(int nValue)
{
  RealTransfer(nValue);
}

Stupid question... :)
Just bored... Send private email
Wednesday, March 16, 2005
 
 
It's sooo ture..

The reason is that financial developers that work for movie banks have a business rule that says that the algorithm has to give the good guys time to stop the transaction proportional to the amount being transfered.

Wednesday, March 16, 2005
 
 
In fact, you missed this lines in the loop:

SleepForASecond();
UpdateBigFatProgressBar();

Wednesday, March 16, 2005
 
 
>> The reason is that financial developers that work for movie banks have a business rule that says that the algorithm has to give the good guys time to stop the transaction proportional to the amount being transfered. <<

Hey, I think I've seen that in movies!
David Aldridge Send private email
Wednesday, March 16, 2005
 
 
No doubt that was how they foiled this attempted robbery of £220m ;-)

http://news.bbc.co.uk/1/hi/uk/4356661.stm
Nemesis Send private email
Thursday, March 17, 2005
 
 
It could be possible that when you transfer $200-500 billion (as in the movies), you need to send it in smaller transactions, as the transaction interface can only handle integers, which is only $4,294,967,296.

So maybe it's true :)

Thursday, March 17, 2005
 
 
Actaully, don't they do money transactions in cents (to avoid round-off errors)?

So maybe it does have to be a loop...
Honu
Thursday, March 17, 2005
 
 
Sometime ago, one of the major oil companies lost a big lawsuit over interferance in a take over bid (was Getty one of the parties?). The loser got to pay several b-b-b-b-b-billion dollars. It turns out that the electronic funds transfers between banks could not handle sums of $1 billion or more, so the transfer was broken up into 5 (?) separate transfers.

There was something on NPR about it, when it was happening, where the interviewer was reading off the amounts as they went thru the syste and finally asked something trite like "is that all there is?" and the person at the bank said something like "yep."

Of course, in movies, they have to have explosions that you can run away from, only by running slower. Or movies where all the computers in the world have been replaced by Macintoshes.
Peter
Thursday, March 17, 2005
 
 
Or where every letter that appears on the screen is accompanied by the sound of the letter being printed on a dot-matrix printer, or an IBM selectric, or at least a 'tick' sound.
AllanL5
Thursday, March 17, 2005
 
 
"Free shipping for all cash transfers under $2!"

People who robbed this facility also robbed....
Danil
Thursday, March 17, 2005
 
 
I agree with the point about poor practices in software design in the movies. But you have to give them credit for making really nice UIs.
A. Gorilla
Thursday, March 17, 2005
 
 
Oldie but goldie... Computers in movies

http://www.annoyances.org/exec/show/article09-127
Friday, March 18, 2005
Thursday, March 17, 2005
 
 
I actually wrote parts of some of these systems.

The version in movies is nothing like as slow as the real version.

Ahem.

The exchange writes transaction records to a log in XML. The XML is parsed at close of business, summaries produced. It's reparsed and the summaries redone to cope with after hours trading. THat happens several more times until everyone's actually finished trading. (What part of "close of business" is causing the problem, I do not know).

The file gets copied over NFS to a fileserver. That transfers it via a scheduled FTP to a machine in the basement. That's running Dos 3.3, because the binary it runs won't run on anything later... one day it will break, and there will be panic, but hey; until then we'll ignore it quoting "security verification" as a reason for not upgrading.

That machine goes and talks to Clearing House which moves the money by sending it instructions, one per line in a file it FTPs to the server.

I actually had the text files with "MOVE <number> BILLIONS FROM <account> TO <account>" floating around past my login. It's a good job I'm honest, because I could very easily have fiddled a few. The transactions use SWIFT transfer codes which frankly are about as good as cash money. Once you send the transaction it HAPPENS.

Security is something they talk about a lot but don't really understand. Why aren't the files public-key encrypted before sending to Clearing House? They can't decide which encryption algorithms are "secure" and can't possibly risk accidentally picking an insecure one, so plain text is better...

Once that's been done, there's just the actual paper to move.

There's a server we can connect to which once an hour creates a flag file in a directory to tell us which file in the outgoing log directory we can FTP down to tell us what clearances have happened. That's FTPed to a machine which programs the barcode reader with the barcodes of the packages we want shipped.

Approximately the right packages arrive from the repository (inevitably some of them are for trades which have since been cancelled, uncleared, revoked, reversed or unwound in some way) so they scan each one. We say "go" or "no go" to it, and note it's been loaded. The van drives across london carrying the certificates.

All of this fails on a regular basis, so everything is done by moving files around so the processing can be restarted properly and "hand driven" if necessary. It's actually all pretty scary.

There are no bargraphs. Calendars, yes, but no realtime bargraphs.
Katie Lucas
Friday, March 18, 2005
 
 
Also worked on one such system.  And what you describe is a bit scary.  The interfaces I worked with were rock-solid.  No kidding, in the time I spent working at that bank I never made the transaction interface go 'oooooops'. aka lose a digit here or there. ;) 

Also not much chance of completely screwing up because of (almost) absolute separation of developers from production.  The most I ever saw from production was abend reports, memory dumps and log files.

Only place I ever worked where standards-compliance could & would veto business-requirements.  That is a true godsend for a programmer when bussiness is making impossible demands. :-)  Being able to reply that a requirement is in noncompliance with standards and making it stick, aaaaaah. :-)
Dave
Friday, March 18, 2005
 
 
Wow, remind me to never do banking there... i wonder if it varies by country...

"Or where every letter that appears on the screen is accompanied by the sound of the letter being printed on a dot-matrix printer, or an IBM selectric, or at least a 'tick' sound."

Allan: ever worn headphones hooked into your computer? Last two desktops I had did this. If you scroll, or open a menu, there's a distintive high pitch tic sound created. Kind of irritatting. I think that's why audiophiles use external USB soundcards.
mb Send private email
Sunday, March 20, 2005
 
 
Katie,

Shhhhhh
Braid_ged Send private email
Tuesday, March 22, 2005
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz