Thread overview | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
May 06, 2011 Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
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 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | Is that a typo on page 31? "<= should be =" maybe <= should be < I guess that further drives the point though. :) |
May 06, 2011 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | Andrej Mitrovic:
> I guess that further drives the point though. :)
Yup .I didn't see it.
Bye,
bearophile
|
May 06, 2011 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | 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 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | "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 Re: Patterns of Human Error - my presentation at the DC ACM | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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.
|
Copyright © 1999-2021 by the D Language Foundation