Jump to page: 1 2
Thread overview
Patterns of Human Error - my presentation at the DC ACM
May 06, 2011
Walter Bright
May 06, 2011
Nick Sabalausky
May 07, 2011
Florian Weimer
May 06, 2011
Lutger Blijdestijn
May 06, 2011
bearophile
May 06, 2011
Andrej Mitrovic
May 06, 2011
bearophile
May 06, 2011
Walter Bright
May 06, 2011
Brad Roberts
May 06, 2011
Walter Bright
May 06, 2011
bearophile
May 06, 2011
bearophile
May 06, 2011
Andrej Mitrovic
May 11, 2011
Kagamin
May 07, 2011
Walter Bright
May 06, 2011
The slides: http://www.slideshare.net/dcacm/patterns-of-human-error

A review: http://computopics.dcacm.org/2011/05/04/review-dcacm-patterns-of-human-error-with-walter-bright/

Anyone want to reddit this?
May 06, 2011
On 5/5/11 9:04 PM, Walter Bright wrote:
> The slides: http://www.slideshare.net/dcacm/patterns-of-human-error
>
> A review:
> http://computopics.dcacm.org/2011/05/04/review-dcacm-patterns-of-human-error-with-walter-bright/
>
>
> Anyone want to reddit this?

http://www.reddit.com/r/programming/comments/h5ehu/patterns_of_human_errors_link_to_slides_in_the/


Andrei
May 06, 2011
Nice slides, very simple and elegant.

This reminds me of when I started with D. I found a lot of these 'details' unload quite some burden I had with C++ and made programming that much more enjoyable.
May 06, 2011
On 5/5/11 10:18 PM, Andrei Alexandrescu wrote:
> On 5/5/11 9:04 PM, Walter Bright wrote:
>> The slides: http://www.slideshare.net/dcacm/patterns-of-human-error
>>
>> A review:
>> http://computopics.dcacm.org/2011/05/04/review-dcacm-patterns-of-human-error-with-walter-bright/
>>
>>
>>
>> Anyone want to reddit this?
>
> http://www.reddit.com/r/programming/comments/h5ehu/patterns_of_human_errors_link_to_slides_in_the/
>
>
>
> Andrei

Unfortunately the post has been junked. I wrote a polite message to the moderators, you all may want to do the same.

Thanks,

Andrei
May 06, 2011
Walter:

> The slides: http://www.slideshare.net/dcacm/patterns-of-human-error

Nice. Please put your PDFs everywhere but Slideshare. I'd love a simple link to just the PDF, thank you very much (Slideshare requires Flash, JavaScript, other things, and the flash viever doesn't allow me copy&paste of URLs like that joelonsoftware.com one or snippets that I have to copy manually here).

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

- 9V battery: it has keyd connectors *and* inverting its polarity often doesn't lead to large damages (you may damage the curcuit in some cases). This means that a car batter has to be designed *safer* than a 9V battery because an error often causes more damages than in 9V batteries.

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

> Simple fix: make l suffix illegal. No more possibility of this error. End of story.

This is exactly the solution used by JSF-AV. They use a pre-compiler that generates a "compile" error if you use "l" as suffix (and maybe even if you use it as variable name). So they aren't using normal C++.

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

> int i = 1_000_000;

A downside of the current implementation is visible here:
long i = 1_000_000_00_000L;
The underscores are not enforced every 3 (or 4 on hex/binary literals) digits.
But in practice this has not caused me troubles, so far.

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

> Error Patterns Eliminated [Slide 32]

It's a very nice slide :-)

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

> i should be size_t [Slide 31]

Something related to this has caused me a not immediately visible bug in D, this is the original correct function:

double[][] matgen(int n) {
    double[][] a;
    double tmp = 1.0 / n / n;
    a.length = n;
    for (int i = 0; i < n; ++i) a[i].length = n;
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j)
            a[i][j] = tmp * (i - j) * (i + j);
    return a;
}


Second "improved" version:

double[][] matgen(int n) {
    double tmp = 1.0 / n / n;
    auto a = new double[][](n, n);
    foreach (i, row; a)
        foreach (j, ref x; row)
            x = tmp * (i - j) * (i + j);
    return a;
}


Problem: (i - j) gives a wrong result because i and j are now unsigned.

See some of the discussion: http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=26563 http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=26587 http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=26629

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

> Uninitialized memory [Slide 41]

This compiles with no errors, but maybe you meant heap memory:

@safe void main() { int x = void; }

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

> Validated data: validated!(T) [Slide 46]

I don't remember/know what this is.

Thank you for all this stuff you give us for free, people used to pay for such texts.

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

> http://www.joelonsoftware.com/articles/wrong.html

From the blog post:

>All strings that come from the user must be stored in variables (or database columns) with a name starting with the prefix "us" (for Unsafe String). All strings that have been HTML encoded or which came from a known-safe location must be stored in variables with a name starting with the prefix "s" (for Safe string).

A better solution: http://blog.moertel.com/articles/2006/10/18/a-type-based-solution-to-the-strings-problem

Bye,
bearophile
May 06, 2011
Is that a typo on page 31?

"<= should be ="

maybe <= should be <

I guess that further drives the point though. :)
May 06, 2011
Andrej Mitrovic:

> I guess that further drives the point though. :)

Yup .I didn't see it.

Bye,
bearophile
May 06, 2011
On 5/6/2011 8:13 AM, Andrej Mitrovic wrote:
> Is that a typo on page 31?
>
> "<= should be ="
>
> maybe<= should be<
>
> I guess that further drives the point though. :)

You're right. Good catch.
May 06, 2011
"Andrei Alexandrescu" <SeeWebsiteForEmail@erdani.org> wrote in message news:iq0eqf$l03$1@digitalmars.com...
> On 5/5/11 10:18 PM, Andrei Alexandrescu wrote:
>> On 5/5/11 9:04 PM, Walter Bright wrote:
>>> The slides: http://www.slideshare.net/dcacm/patterns-of-human-error
>>>
>>> A review: http://computopics.dcacm.org/2011/05/04/review-dcacm-patterns-of-human-error-with-walter-bright/
>>>
>>>
>>>
>>> Anyone want to reddit this?
>>
>> http://www.reddit.com/r/programming/comments/h5ehu/patterns_of_human_errors_link_to_slides_in_the/
>>
>>
>>
>> Andrei
>
> Unfortunately the post has been junked. I wrote a polite message to the moderators, you all may want to do the same.
>

Is there anything reddit doesn't auto-flag as junk?


May 06, 2011
On Fri, 6 May 2011, Walter Bright wrote:

> On 5/6/2011 8:13 AM, Andrej Mitrovic wrote:
> > Is that a typo on page 31?
> > 
> > "<= should be ="
> > 
> > maybe<= should be<
> > 
> > I guess that further drives the point though. :)
> 
> You're right. Good catch.

That was the first error I caught.. since I've seen you use it as a common error and reason to use foreach() style loops before.
« First   ‹ Prev
1 2