Per popular demand, here are Adam D Ruppe's presentation slides
John via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Fri May 23 17:36:29 PDT 2014
On Friday, 23 May 2014 at 23:56:39 UTC, Adam D. Ruppe wrote:
> On Friday, 23 May 2014 at 19:59:23 UTC, Mattcoder wrote:
>> Hehe, I'm just imagining what Walter will say: "Lack of
>> images"!
>
> Heh, I actually went through a few idea stages here:
>
> 1) I'd list the druntime functions. I determined this to be
> boring and subject to change anyway. But I spent like a month
> without better ideas and it was too boring for me to even do...
> so yeah nothing got done.
>
> 2) I'd write a little bare metal program to use as the slide
> show that demonstrates various language features and highlights
> their source code with animations and responses to timers and
> keyboard input. The "slides" would then be the source to that
> program.
>
> Probably would have been cool, but I never found the time to
> actually write it. (I wrote the foundation for it, the timer
> interrupt handler, the text video output, the bulk of D
> working... but the program itself just kept being put off in
> favor of other things)
>
> 3) Then, a big breakthrough happened: I had that day with the
> friends walking on that bridge guard rail. (BTW it wasn't
> actually 50 miles high, but it is no exaggeration that I was
> terrified for the guy who walked all the way across it. One
> other person there walked across part, but she had the good
> sense to get back on the regular road once we got over the
> water. But the one guy is a madman, a madman!)
>
> That got me thinking about cost/benefit with experimentation
> and I realized that story made a good contrast with the test.d
> files I make so often and the talk plan changed.
>
>
> At this point, my plan was to get a handful of photographs to
> illustrate each concept... but again, things just kept coming
> up. Last week, I decided to stop stressing over it and just
> accept that I was going to be unprepared. (Which actually
> worked out well enough for me in church last month when I got a
> literally last minute request to substitute teach there and it
> went ok for everybody but my armpits lol. But if I can fill an
> hour improvising a reasonably productive discussion on faith
> and prophets, surely I can do it about D.)
>
> Anyway, by moving the goalposts from "nice visual presentation"
> to "I'll improvise it live!", I went from worrying about being
> unprepared to being content with just knowing the big idea and
> let my mind go back to other things.
>
> That said, I didn't want to improvise *everything* because I
> had an experience back in the 5th grade that taught me
> otherwise. The science teacher gave me a chance to do a
> planetarium presentation. I knew how to work the projection
> machine and knew a little bit of material, but I didn't
> actually have even a lesson outline prepared and I leaned
> HEAVILY on the teacher to bail me out.
>
> However, before I knew it, it was already May 22, I was in
> California, and firewalled out of my desktop computer. So I did
> the next best thing: got out my notebook and pen and scribbled
> down a page of topics to touch.
>
> I expected to have to open the floor to questions after like 20
> minutes and spend the rest of the time just talking with
> people, but to my surprise, it filled the whole hour.
> (Actually, that shouldn't be so surprising, just Monday night I
> spent an hour talking with a couple friends about half a page
> of notes. But that's a totally different audience and a totally
> different set of topics so I wasn't sure it would pad out the
> same way.)
>
>
> Regardless, it was pretty ok, if a bit wandering at times.
> Could have been a lot worse.
>
>
>
> BTW re the last "cool stuff" header note, here's the code I
> slapped together to demo that idea:
>
> import std.stdio;
>
> align(1)
> struct foo {
> //align(16):
> ubyte c;
> ushort d;
> uint b;
> ushort a;
> }
>
> pragma(msg, diagram!foo);
>
> string diagram(T)() {
> import std.string, std.conv;
> string ret;
> T t;
> int offset = 0;
> foreach(idx, item; t.tupleof) {
> int off = t.tupleof[idx].offsetof;
> int size = t.tupleof[idx].sizeof;
>
> if(off > offset) {
> // padding
> foreach(i; 0 .. off-offset)
> ret ~= format(" internal padding\n");
> offset += off-offset;
> }
>
> foreach(i; 0 .. size)
> ret ~= format(" %s\n",
> t.tupleof[idx].stringof[2..$]);
>
> offset += size;
> }
>
> foreach(i; 0 .. T.sizeof-offset)
> ret ~= format(" struct padding to %d\n", T.sizeof);
>
> return ret;
> }
>
>
> Of course, I ultimately used my fingers as bytes but here you
> can play with it a bit more and see different combinations as
> to struct layout so have some fun with it!
Your presentation was awesome. I wish there was more time
available.
And btw, you were looking great too! :)
More information about the Digitalmars-d-announce
mailing list