megadest: (another bird)
[personal profile] megadest
How common it is in programming classes that you get taught:
Verify ALL incoming data. Do not EVER trust that the user is typing in numbers when asked for numbers or that the format of the incoming stream is correct. Your program must be capable of handling anything... with a helpful error message if necessary.

Computers made the verification process much easier, and that's probably why programmers have been taught the idea for a long time. And yet -- the problem is still there and it is common to see software crash with obscure errors (or without any) just because it has been fed something it didn't expect.

Now a few years later it seems to me that the same should be applied much wider. Shouldn't live users themselves be filtering the information too? Shouldn't we all be critical to incoming data to make sure we don't crash our own minds?
So much unreliable information is out there that there should always be checks in place to make sure it doesn't get through.
I had a chat with guys from [a big mining company] last week and they showcased a perfect example of modelling with incorrect data. The error introduced was somewhere around 200% of the ore reserves... and it took a few years to realise and confirm that that was a silly mistake.
Long hours of careful consideration were needed to correct the final results by throwing away data that was clearly wrong.

On the other hand -- what about the data that I generate myself? Am I sure it is valid? Have I cross-checked? Did I leave an option for someone to recheck it, if necessary? After all, I would hate my work to be thrown out to a garbage bin...

This part is not that nicely automated and most software programs do not verify the final results in no way -- partially because it often requires a human mind with expertise and reasoning capabilities to do so, but partially -- because the software designers are usually all too confident in the algorithms and code they produce.

Do you think there is a room for improvement? Any practical examples you have to share?

Date: 2013-07-10 09:01 pm (UTC)
From: [identity profile]
Ээээ... предлагаешь выкинуть из мозга эвристику, ассоциативность и интуицию. Сомневаться в них постоянно? Тогда мы будем тормозить на элементарных операциях. А для разделения "простых" и "сложных" (требующих проверки и ее не требующей) операций потребуется все та же интуиция. Была такая притча (или социологическая байка) про двух работников. Одному дали простое задание... что-то типа чистить картошку. А второму тоже мешок с картошкой и задание чистить только крупную, а мелкую откладывать. Так вот у второго производительность оказалась ниже вдвое, и к вечеру он казался гораздо более усталым.
Не знаю, было ли такое исследование на самом деле, но результат кажется мне правдоподобным (интуиция). Ты ведь не предложишь мне в выходные друзей посадить за чистку картошки в качестве проверки данных? ;)

Date: 2013-07-11 01:03 pm (UTC)
From: [identity profile]
Ну, да, как-то так. Это все к вопросу "как улучшить интуитивные оценки".
Мне этот текст показался любопытным: - поиск формального критерия рационального мышления.

Date: 2013-07-20 10:16 pm (UTC)
From: [identity profile]
"Garbage in - garbage out" - вообще говоря, нет. Более того, есть теорема о том, что единственный способ получить новую (верную) информацию - это дать на вход много-много рандома и зашить внутрь некий критерий сортировки этого рандома.
Собственно, сам факт существования сложной органической жизни - наглядная иллюстрация :Р

Date: 2013-07-26 05:45 am (UTC)
From: [identity profile]
Это есть. Но во внесении случайных ошибок во входящий поток тоже есть толика стремления к совершенству :)

Date: 2013-07-26 08:47 am (UTC)
From: [identity profile]
Встраивать в бухгалтерские документы рандомный множитель 0.9..1.1 на сумму проводки :)

Date: 2013-07-28 07:14 pm (UTC)
From: [identity profile]
В жизни каждого начинающего внедренца порой наступает момент... ;)

October 2017

123456 7

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 18th, 2017 08:18 pm
Powered by Dreamwidth Studios