June 03, 2011
On Wed, 01 Jun 2011 21:16:40 -0400, dsimcha <dsimcha@yahoo.com> wrote:

> If submitters are allowed to vote for themselves, of course
> they all
> will and their votes will effectively cancel out.  I think it's best to
> give each
> submitter a meaningful vote as to what the best other article is.
...

On Thu, 02 Jun 2011 06:57:48 -0400, Nick Sabalausky <a@a.a> wrote:

> So I have a proposal: Even if we are technically allowed to vote for
> ourselves, I propose that we all agree not to. With Steve and I in favor of
> this, that makes it 2 out of the 5 so far. So how about it, Jonathan, Dave
> and Robert?

Given the above original post by David (which outlines a preference for the same thing you stated), I think he's on board with this.  Which means we are all in agreement.

-Steve
June 03, 2011
Make it a tie so you all have to do round 2 and write another set of articles. ^^
June 03, 2011
My favorite was Schveighoffer's (had to look carefully to spell that) on D slices.   I liked the balance of code and text, low abuse of 'be' verbs and pronouns -- and I learned!


June 03, 2011
"Steven Schveighoffer" <schveiguy@yahoo.com> wrote in message news:op.vwhbd5lieav7ka@localhost.localdomain...
>
> On Wed, 01 Jun 2011 21:16:40 -0400, dsimcha <dsimcha@yahoo.com> wrote:
>
>> If submitters are allowed to vote for themselves, of course
>> they all
>> will and their votes will effectively cancel out.  I think it's best to
>> give each
>> submitter a meaningful vote as to what the best other article is.
> ...
>
> On Thu, 02 Jun 2011 06:57:48 -0400, Nick Sabalausky <a@a.a> wrote:
>
>> So I have a proposal: Even if we are technically allowed to vote for
>> ourselves, I propose that we all agree not to. With Steve and I in favor
>> of
>> this, that makes it 2 out of the 5 so far. So how about it, Jonathan,
>> Dave
>> and Robert?
>
> Given the above original post by David (which outlines a preference for the same thing you stated), I think he's on board with this.  Which means we are all in agreement.
>

Good point. So great, then :)

Now watch us all end up voting for completely different people and cancel our votes out anyway ;)



June 06, 2011
I voted for David's article.  It was a very close call for me between Robert and David.  Both articles were well written and covered very similar topics, both of which I learned some new things from.

Everyone did a great job.  This was a tough one to decide.  Nick, your article was too long for me, but I *loved* the dialog.  It reminded me tremendously of the very successful (and one of my favorite) series Head First programming books (mostly centered on Java), where they do things like interviews of variable types.

TBH, I really expected more voter turnout.  Maybe there will be a last-minute rush.  Good luck to everyone!

-Steve
June 06, 2011
"Steven Schveighoffer" <schveiguy@yahoo.com> wrote in message news:op.vwn0r9ymeav7ka@localhost.localdomain...
>I voted for David's article.  It was a very close call for me between Robert and David.  Both articles were well written and covered very similar topics, both of which I learned some new things from.
>

I'm still trying to narrow it down, they're all good!

> Everyone did a great job.  This was a tough one to decide.  Nick, your article was too long for me,

Yea, understandable. When I realized how long it ended up, I figured that could work either for or against me ;)

> but I *loved* the dialog.  It reminded me  tremendously of the very successful (and one of my favorite) series Head  First programming books (mostly centered on Java), where they do things  like interviews of variable types.
>

Thanks. I haven't read any of the "Head First" series. But a long time ago I read a bunch of C/C++ books, and there was one in particular that really stuck out in my mind, that I never forgot. I don't remember the name of it, but it involved a robotic dog (pictured on the cover) and featured the "Profound Object Oriented Programming" method, ie "POOP". Probably 90% of the C/C++ books I've read I have no memory of whatsoever, but that one always stuck with me and has definitely influenced my style. Whether that's for the better or the worse, I can't really say ;)

> TBH, I really expected more voter turnout.  Maybe there will be a last-minute rush.

I'd been thinking the same thing, too. Although it looks like the rush may have just started...



June 07, 2011
Am 06.06.2011 19:41, schrieb Steven Schveighoffer:
> 
> Everyone did a great job.  This was a tough one to decide.

Yeah, all articles are really interesting and well written.

> Nick, your  article was too long for me, but I *loved* the dialog.

It's pretty long, but written in style that kept me reading on.

Cheers,
- Daniel
June 07, 2011
On Wed, 01 Jun 2011 20:47:16 -0400, Walter Bright <newshound2@digitalmars.com> wrote:
> [5] Have Your Efficiency, and Flexibility Too by Nick SAbalausky
> http://www.semitwist.com/articles/EfficientAndFlexible/SinglePage/

Overall, I thought it thorough, and enjoyable read, if a little too cute for its own good in a couple of places. Just a couple of comments:

* Here's a shorter, cleaner alternative to isIGizmo from ex5_meta_deadDuck1.d:

template isIGizmo(T)
{
    immutable bool isIGizmo = is(T : Gizmo!(T.numPorts, T.isSpinnable));
}

* static asserts in their current incarnation (well, as of 2.052, I haven't double checked 2.053) are broken and should be verboten. This is because they halt compilation, instead of generating an _error statement, whenever they are evaluated. So when evaluated in traits, template constraints, etc. anything with a static assert doesn't compose. As an alternative, putting a string by itself on a line produces just as good an error message and composes with the rest of D. (It might also be a cross language technique.) See http://d.puremagic.com/issues/show_bug.cgi?id=5233 for an example.

* I think there's a minor error in ex5_meta_deadDuck2.d:
is`~interfaceName~`!(`~thisType~`), => is(`~interfaceName~`!(`~thisType~`)),

Also, inside a template you can use the template name to refer to itself. So you could change "string thisType" to "T" and then use T.stringof and mixin(declareInterface("IGizmo", Gizmo)); instead.
June 07, 2011
"Robert Jacques" <sandford@jhu.edu> wrote in message news:op.vwppwpaa26stm6@sandford.myhome.westell.com...
> On Wed, 01 Jun 2011 20:47:16 -0400, Walter Bright <newshound2@digitalmars.com> wrote:
>> [5] Have Your Efficiency, and Flexibility Too by Nick SAbalausky http://www.semitwist.com/articles/EfficientAndFlexible/SinglePage/
>
>
> * I think there's a minor error in ex5_meta_deadDuck2.d:
> is`~interfaceName~`!(`~thisType~`), =>
> is(`~interfaceName~`!(`~thisType~`)),
>

No, the first one is corrent. The intent is to use the "isIGizmo" template, not "is(T)".


June 07, 2011
This is a very close contest - I could hardly vote without feeling guilty about all other submissions. The submissions are in moderate number but excellent quality.

After the voting we should publicize the articles and the voting results to reddit.


Andrei