Northwest C++ Users’ Grouphttp://nwcpp.org/2024-02-26T00:00:00-08:00March 21, 2024: Linear Algebra and the Eigen Library2024-02-26T00:00:00-08:002024-02-26T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2024-02-26:/March-2024.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, March 21, 2024 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1143 (12) Maple Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NTUwNTliMjItNTcyYS00ZjRiLWJiZjAtNDBiZWJiYTdmMzA1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22f7b2732f-da39-4d7a-b999-3d1a63f1d718%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 267 223 257 656</div>
<div class="line">Passcode …</div></div></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, March 21, 2024 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1143 (12) Maple Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NTUwNTliMjItNTcyYS00ZjRiLWJiZjAtNDBiZWJiYTdmMzA1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22f7b2732f-da39-4d7a-b999-3d1a63f1d718%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 267 223 257 656</div>
<div class="line">Passcode: ZvkWHu</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 785 621 648#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Linear Algebra and the Eigen Library</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Linear algebra is an essential part of scientific programming, particularly in domains such as quantitative finance, data science, physics, and medical research.
As C++ did not have all the convenient built-in multidimensional array capabilities that came with Fortran platforms, scientific programmers making the transition to C++ back in the 1990’s
often found themselves in an inconvenient situation with limited options. These included building up this functionality mostly from scratch, wrestling with interfaces to numerical Fortran
libraries such as <span class="caps">BLAS</span> and <span class="caps">LAPACK</span>, or somehow convincing management to invest in a third-party commercial C++ linear algebra library.</p>
<p>The situation has improved substantially over the years with the release and availability of several well-regarded open-source linear algebra libraries for C++.
One in particular that has become popular, first released in 2006, is the Eigen library. It has been adopted for use within both the TensorFlow machine learning library and the Stan Math Library,
as well as in financial applications. Linear algebra has also become a point of emphasis in C++ Standard Library enhancements, with the release of std::mdspan (P0009) in C++23, and the
<span class="caps">BLAS</span> (Basic Linear Algebra Subroutines) interface (P1673) that has been accepted for C++26.</p>
<p>In this talk, we will examine the setup and basics of the Eigen library, followed by a discussion of some of its more advanced features, such as matrix decompositions frequently used in
quantitative work, as well as its compatibility with <span class="caps">STL</span> algorithms. It will conclude with an overview of how it might be used within the context of the C++26 <span class="caps">BLAS</span> proposal, via an interface
with mdspan now in C++23.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Daniel Hanson is a former full-time lecturer in the Computational Finance <span class="amp">&</span> Risk Management program within the Department of Applied Mathematics at the University of Washington.
His appointment followed over 25 years of experience in private sector quantitative development in finance and data science.
He currently serves as the Student Program Coordinator for CppCon.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
February 15, 2024: Comprehensible Programming2024-01-22T00:00:00-08:002024-01-22T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2024-01-22:/February-2024.html<div class="section" id="time-and-location-now-on-thursday">
<h2>Time and Location - <span class="caps">NOW</span> <span class="caps">ON</span> <span class="caps">THURSDAY</span>!!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, February 15, 2024 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1143 (12) Maple Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZjlkYzQ0MTgtZWIyNS00YjFiLWI5OTAtNmViZTUxNjViZDg2%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22f7b2732f-da39-4d7a-b999-3d1a63f1d718%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 257 132 …</div></div></div><div class="section" id="time-and-location-now-on-thursday">
<h2>Time and Location - <span class="caps">NOW</span> <span class="caps">ON</span> <span class="caps">THURSDAY</span>!!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, February 15, 2024 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1143 (12) Maple Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZjlkYzQ0MTgtZWIyNS00YjFiLWI5OTAtNmViZTUxNjViZDg2%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22f7b2732f-da39-4d7a-b999-3d1a63f1d718%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 257 132 179 73</div>
<div class="line">Passcode: HdkcQu</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 272 079 232#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Comprehensible Programming</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Have you ever looked at code you wrote 5 years ago, and wondered what you were thinking? Just think of code you authored even further back!
You’ve heard about secure code, safe code, clean code, modern code, optimized code, clever code, user friendly code, structured code,
effective code, etc. Everybody thinks they write easy to comprehend code (including me), but your future self will likely
have the last word on that. Here I’ll be talking about writing easy to understand code.
It’s based on decades of experience writing code that is hard to understand. It’ll show how D makes it easy to write easy to understand
code. It won’t cost anything, either. And who knows - maybe your future self will sigh contentedly with “I wrote that!”</p>
<p>The highest praise you can get for your code is someone else looking at it saying “that’s so simple, anyone could have done it!”
(But you and I know better)</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Walter Bright
Engineer, Digital Mars</p>
<p>Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several other languages. He’s an expert in all areas of compiler technology, including front ends, optimizers, code generation, interpreter engines and runtime libraries. Walter regularly writes articles about compilers and programming, is known for engaging and informative presentations, and provides training in compiler development techniques. Many are surprised to discover that Walter is also the creator of the wargame Empire, which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2024/understandable.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/_Y3sK19Uhgg">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
January 18, 2024: What Have We Lost?2023-12-27T00:00:00-08:002023-12-27T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2023-12-27:/January-2024.html<div class="section" id="time-and-location-now-on-thursday">
<h2>Time and Location - <span class="caps">NOW</span> <span class="caps">ON</span> <span class="caps">THURSDAY</span>!!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, January 18, 2024 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZjlkYzQ0MTgtZWIyNS00YjFiLWI5OTAtNmViZTUxNjViZDg2%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22f7b2732f-da39-4d7a-b999-3d1a63f1d718%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 257 132 …</div></div></div><div class="section" id="time-and-location-now-on-thursday">
<h2>Time and Location - <span class="caps">NOW</span> <span class="caps">ON</span> <span class="caps">THURSDAY</span>!!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, January 18, 2024 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZjlkYzQ0MTgtZWIyNS00YjFiLWI5OTAtNmViZTUxNjViZDg2%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22f7b2732f-da39-4d7a-b999-3d1a63f1d718%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 257 132 179 73</div>
<div class="line">Passcode: HdkcQu</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 272 079 232#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>What Have We Lost?</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In the last 40+ years that I have been developing software there has been a massive increase in computing capability, both in terms of performance and the speed and ease of which new software can be created.</p>
<p>If we look back , the level of benefit to the user hasn’t kept pace with either of the above metrics. 40+ years ago I would have used a word processor to write this abstract (albeit without some of the fancy formatting) on a computer that had a single 8 bit processor and ran at Mhz speeds (ie: Commodore 64). On my modern computer with 16x 64 bit processors each running at Ghz speed writing this abstract is much the same experience. (For the moment we’ll ignore that <span class="caps">MABYE</span> in the not too distant future I won’t be doing this at all as a ChatGPT descent will do it for me – which of course would justify the cost of my current computer!)</p>
<p>Let’s take a moment to look back at how things were done in the past, particularly at techniques which I do not find in common practice, to see how we can do better. This is not to say that 40+ years of progress should be thrown out the window, this is to say some 40+ year old techniques still have value today and should not be forgotten.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Lloyd Moore is the founder and owner of CyberData Corporation, which provides consulting services in the aerospace, robotics, machine vision and industrial automation fields. Lloyd has worked in software industry for 35 years. His formal training is in biological-based artificial intelligence, electronics, and psychology. Lloyd is also currently the president of the Northwest C++ User’s Group and an organizer of the Seattle Robotics Society Robothon events.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2024/WhatHaveWeLost.pptx">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/9vs6SSukgyg">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
November 16, 2023: Remedial C++ 17 Library features - Part 2!2023-10-31T00:00:00-07:002023-10-31T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2023-10-31:/November-2023.html<div class="section" id="time-and-location-now-on-thursday">
<h2>Time and Location - <span class="caps">NOW</span> <span class="caps">ON</span> <span class="caps">THURSDAY</span>!!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, November 16, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 …</div></div></div><div class="section" id="time-and-location-now-on-thursday">
<h2>Time and Location - <span class="caps">NOW</span> <span class="caps">ON</span> <span class="caps">THURSDAY</span>!!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">THURSDAY</span>, November 16, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 694</div>
<div class="line">Passcode: zRSbFd</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874,,731463717#<<a class="reference external" href="tel:+13238494874">tel:+13238494874</a>,,731463717#> United States, Los Angeles</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 731 463 717#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Remedial C++ 17 Library features - Part 2!</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>When C++ 17 came out 6 years ago, many of us weren’t allowed to use it because our compilers didn’t support it. Now that most compilers have good C++ 17 support, let’s do an overview of the features introduced into the C++ standard library with C++ 17.</p>
<p>This talk is a continuation of the April 19th talk, and will pick up where that one left off! The slides and video from Part 1 are listed below in the “Resources” section if you want a recap from earlier this year!</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Like the man in black said: “No one of consequence”. Peter Williamson has been programming professionally for 30 years at companies like Boeing, Microsoft, Amazon, and Google. He’s been using C++ for most of that time, and attending <span class="caps">NWCPP</span> off and on since the 90’s. He has been known to talk about himself in third person.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources-part-1">
<h2>Resources - Part 1</h2>
<p><a class="reference external" href="https://docs.google.com/presentation/d/1rw43yd1t1LCQLnAPYZKeiRNvwrbVy9pNVmG2P8L7J9o">Slides 1</a></p>
<p><a class="reference external" href="https://youtu.be/U6Eef79GRF4">Video 1</a></p>
</div>
<div class="section" id="resources-part-2">
<h2>Resources - Part 2</h2>
<p><a class="reference external" href="https://docs.google.com/presentation/d/1rw43yd1t1LCQLnAPYZKeiRNvwrbVy9pNVmG2P8L7J9o/edit#slide=id.g2371f91e6e5_0_0">Slides 2</a></p>
<p><a class="reference external" href="https://youtu.be/y3uDSkvZRT4">Video 2</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Wednesday, September 20, 2023: MDSPAN: A Deep Dive Spanning C++, Kokkos & SYCL2023-08-30T00:00:00-07:002023-08-30T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2023-08-30:/September-2023.html<div class="section" id="time-and-location-we-re-hybrid">
<h2>Time and Location - We’re <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">Wednesday, September 20, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 …</div></div></div><div class="section" id="time-and-location-we-re-hybrid">
<h2>Time and Location - We’re <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">Wednesday, September 20, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 694</div>
<div class="line">Passcode: zRSbFd</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874,,731463717#<<a class="reference external" href="tel:+13238494874">tel:+13238494874</a>,,731463717#> United States, Los Angeles</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 731 463 717#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p><span class="caps">MDSPAN</span>: A Deep Dive Spanning C++, Kokkos <span class="amp">&</span> <span class="caps">SYCL</span></p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk is a deep dive into the history behind <span class="caps">MDSPAN</span> (it’s roots being in Kokkos::View), the C++ standardization effort behind it (current status, various tradeoffs made over time, and language changes to help support it) and how <span class="caps">SYCL</span> is looking to leverage it in the future. <span class="caps">MDSPAN</span> is a non-owning multidimensional array reference, currently slated to be one of the flagship libraries added to C++23. View/reference vocabulary types first entered C++17 with string_view (a non-owning string reference), followed by span (a non-owning single dimension contiguous memory reference) and the ranges library. <span class="caps">MDSPAN</span> is the natural progression of this, and one that is critical to distributed (eg. <span class="caps">CPU</span>/<span class="caps">GPU</span> programming) and high-performance computing.</p>
<p><span class="caps">MDSPAN</span> got its roots from Kokkos::View, One key difference between Kokkos::View <span class="amp">&</span> <span class="caps">MDSPAN</span>: Kokkos::View may be owning (reference-counted reference semantics) or non-owning. The former is also being standardized for C++26 as <span class="caps">MDARRAY</span>, although with value and not reference-counted semantics. Separately, in 2014 Microsoft proposed a similar type, array_view, be added to the standard. After a year and a half and seven revisions, it was ultimately abandoned in favor of what is now <span class="caps">MDSPAN</span> because it did not provide a zero-overhead abstraction.</p>
<p>The <span class="caps">MDSPAN</span> proposal itself has taken seven years and has been through 19+ revisions, with input from many different companies as well as the C++ Committee. What changed over the years and why did it change? In parallel, two key language changes were made which ultimately improved the interface: deprecating the comma operator inside square brackets, and the addition of the multidimensional subscript operator. This allows the natural syntax of a[I, j, k] instead of inferior alternatives like a(i, j, k), a[I][j][k] or even a[Index(i), j, k].</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Nevin “:-)” Liber is a Computer Scientist in the <span class="caps">ALCF</span> (Argonne Leadership Computing Facility) division of Argonne National Laboratory, where he works on Kokkos. He also represents Argonne on the <span class="caps">SYCL</span> and C++ Committees, the latter as <span class="caps">INCITS</span> C++ Vice Chair, <span class="caps">WG21</span> Admin Chair and <span class="caps">WG21</span> Vice Chair of <span class="caps">LEWGI</span>/<span class="caps">SG18</span>. Back when he started out working at Bell Labs over three decades ago, a friend of his called and asked “What do you know about C++? You folks invented it!” That was enough to get a relatively shy junior engineer to go find the local expert so he could go play with it, and the rest is history! He has worked in C++ across various industries and platforms (big data, low-latency, operating systems, embedded, telephony and now exascale computing, just to name a few). He has also been a C++ Committee member since 2010 and hosted both the C++ and C standards meetings in Chicago.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2023/MDSPAN.pdf">Slides</a></p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=2EdRLDTYqPM">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
<li>Follow us on <a class="reference external" href="https://www.linkedin.com/company/nwcpp">Meetup</a></li>
</ul>
</div>
August 16, 2023: The Diamond Problem Solved!2023-07-27T00:00:00-07:002023-07-27T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2023-07-27:/August-2023.html<div class="section" id="time-and-location-we-re-hybrid">
<h2>Time and Location - We’re <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">August 16, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 …</div></div></div><div class="section" id="time-and-location-we-re-hybrid">
<h2>Time and Location - We’re <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">August 16, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 694</div>
<div class="line">Passcode: zRSbFd</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874,,731463717#<<a class="reference external" href="tel:+13238494874">tel:+13238494874</a>,,731463717#> United States, Los Angeles</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 731 463 717#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>The Diamond Problem Solved!</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Traditionally in class based <span class="caps">OOP</span> languages, both the fields and methods from the super-classes are inherited by the sub-classes. However this may cause some serious problems in multiple inheritance, e.g. most notably the diamond problem. In this paper, we propose to stop inheriting data fields as a clean and general solution to such problems. We first present a design pattern called <span class="caps">DDIFI</span> (which stands for Decoupling Data Interface From data Implementation) to cleanly achieve multiple inheritance in C++, which can handle class fields of the diamond problem exactly according to the programmers’ intended application semantics. It gives programmers flexibility when dealing with the diamond problem for instance variables: each instance variable can be configured either as one joined copy or as multiple independent copies in the implementation class. The key ideas are:</p>
<blockquote>
<ol class="arabic simple">
<li>Decouple data interface from data implementation, by stopping inheriting data fields</li>
<li>In the regular methods implementation use virtual property methods instead of direct raw fields</li>
<li>After each semantic branching add (and override) the new semantic assigning property</li>
</ol>
</blockquote>
<p>Then we show our method is general enough, and also applicable to any <span class="caps">OOP</span> languages:</p>
<blockquote>
<ol class="arabic simple">
<li>That natively support multiple inheritance (e.g. C++, Python, OCaml, Lisp, Eiffel, etc.), or</li>
<li>Single inheritance languages that support default interface methods (e.g. Java, C# etc.), or</li>
<li>Single inheritance languages that support mixins, and conditional compilation (e.g. static if in D), or traits (e.g. Scala).</li>
</ol>
</blockquote>
<p>We have demo implementation of this design pattern <span class="caps">DDIFI</span> in these 9 languages, since this is C++ talk, we will mostly talk about the C++ implementation.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>YuQian Zhou: Ph.D from Oxford Univ.; previous Google engineer; startup founder.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2023/DDIFI.talk.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/UITd8kNza3M">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
<li>Follow us on <a class="reference external" href="https://www.linkedin.com/company/nwcpp">Meetup</a></li>
</ul>
</div>
July 19, 2023: Real-Time Circuit Simulation with Wave Digital Filters in C++2023-06-28T00:00:00-07:002023-06-28T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2023-06-28:/July-2023.html<div class="section" id="time-and-location-we-re-hybrid">
<h2>Time and Location - We’re <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">July 19, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 …</div></div></div><div class="section" id="time-and-location-we-re-hybrid">
<h2>Time and Location - We’re <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">July 19, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 694</div>
<div class="line">Passcode: zRSbFd</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874,,731463717#<<a class="reference external" href="tel:+13238494874">tel:+13238494874</a>,,731463717#> United States, Los Angeles</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 731 463 717#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Real-Time Circuit Simulation with Wave Digital Filters in C++</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Real-time circuit simulation is a common challenge in audio signal processing, as many digital synthesizers and audio effects are based on emulations of existing analog hardware. Wave Digital Filters (WDFs) are a powerful tool for modelling the behaviour of electronic circuits. We’ll give a brief introduction to the theory behind wave digital filters, and discuss the implementation of a C++ <span class="caps">WDF</span> library designed to perform circuit simulations in real-time. Along the way, we’ll see how C++ concepts including object-oriented programming, template meta-programming, and <span class="caps">RAII</span>, have factored into the design of the library.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Jatin Chowdhury is an audio signal processing engineer and software developer, with a focus in music technology. He has previously studied at the Center for Computer Research in Music and Acoustics (<span class="caps">CCRMA</span>), and worked as an Audio Test Engineer for Tesla Motors. He currently lives in Seattle, <span class="caps">WA</span>, and runs Chowdhury <span class="caps">DSP</span>, a boutique audio software company.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://ccrma.stanford.edu/~jatin/slides/NWCPP_July23">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/E24XTpEC3jI">Video Part 1</a></p>
<p><a class="reference external" href="https://youtu.be/mtR6TYvcWwQ">Video Part 2</a></p>
<p><a class="reference external" href="https://chowdsp.com/">Chowdhury <span class="caps">DSP</span> Website</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
<li>Follow us on <a class="reference external" href="https://www.linkedin.com/company/nwcpp">Meetup</a></li>
</ul>
</div>
June 21, 2023: Using the power of Assembly to fine tune an applications performance2023-06-04T00:00:00-07:002023-06-04T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2023-06-04:/June-2023.html<div class="section" id="time-and-location-we-are-going-hybrid">
<h2>Time and Location - We are going <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">June 21, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 …</div></div></div><div class="section" id="time-and-location-we-are-going-hybrid">
<h2>Time and Location - We are going <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">June 21, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 694</div>
<div class="line">Passcode: zRSbFd</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874,,731463717#<<a class="reference external" href="tel:+13238494874">tel:+13238494874</a>,,731463717#> United States, Los Angeles</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 731 463 717#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Using the power of Assembly to fine tune an applications performance</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Multi-part series that looks at how to incorporate Assembly code into an existing application. The first part is an introduction to Inline Assembly. Will explain how to incorporate Inline Assembly into an application. Will explore the benefits. Also will explain some of the pitfalls with using inline assembly. This presentation is just a discussion about this process. Future talks will explain assembler construction and other details.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Brett Searles will be the presenter.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2023/UsingAssembly1.pptx">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/zS8W7QAQf70">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
<li>Follow us on <a class="reference external" href="https://www.linkedin.com/company/nwcpp">Meetup</a></li>
</ul>
</div>
May 17, 2023: Using mdarray to Price Equity Options2023-04-30T00:00:00-07:002023-04-30T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2023-04-30:/May-2023.html<div class="section" id="time-and-location-we-are-going-hybrid">
<h2>Time and Location - We are going <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">May 17, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 …</div></div></div><div class="section" id="time-and-location-we-are-going-hybrid">
<h2>Time and Location - We are going <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">May 17, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 694</div>
<div class="line">Passcode: zRSbFd</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874,,731463717#<<a class="reference external" href="tel:+13238494874">tel:+13238494874</a>,,731463717#> United States, Los Angeles</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 731 463 717#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Using mdarray to Price Equity Options</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>std::mdspan, proposed for release in C++23 (P0009), can impose a non-owning multidimensional array structure on a reference to a container, such as an <span class="caps">STL</span> vector. Using the example of a vector containing the data, and a referring mdspan representing a matrix, the number of rows and columns are set at construction of the mdspan. An mdspan can also take the form of higher dimensional arrays, but it is specifically useful for the two-dimensional case often found in financial and other applied science applications.</p>
<p>But what about the case where the data is not known a priori, and needs to be generated within a multidimensional array? A particular example is the binomial lattice pricing model for equity options, where underlying prices and option payoffs are generated going forward and backward in time, respectively. The owning analog of mdspan, namely mdarray, proposed for C++26 (P1684) — not far off within the next three years — provides the lattice structure for us, which can save a considerable amount of time and work, as well as separate the lattice from the mathematics.</p>
<p>In this presentation, we will cover a quick introduction to mdspan, and contrast it with mdarray. A solution to the implementation of a binomial lattice option pricing model using mdarray will then be shown, with examples of both European and American options, although it is the latter case where lattice models are particularly useful. Convergence issues will also be discussed, and it will also be noted how mdarray can be extended for trinomial lattices common in interest rate derivative pricing, and higher dimensional cases where options on more than one underlying asset are involved.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Daniel Hanson is a former full-time lecturer in the Computational Finance <span class="amp">&</span> Risk Management program within the Department of Applied Mathematics at the University of Washington. His appointment followed over 25 years of experience in private sector quantitative development in finance and data science.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2023/NWCPP_2023_05_MDArray_Final.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/3a3xvitc22Y">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
<li>Follow us on <a class="reference external" href="https://www.linkedin.com/company/nwcpp">Meetup</a></li>
</ul>
</div>
April 19, 2023: Remedial C++ 17 Library features2023-04-01T00:00:00-07:002023-04-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2023-04-01:/April-2023.html<div class="section" id="time-and-location-we-are-going-hybrid">
<h2>Time and Location - We are going <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">April 19, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 …</div></div></div><div class="section" id="time-and-location-we-are-going-hybrid">
<h2>Time and Location - We are going <span class="caps">HYBRID</span>!</h2>
<div class="line-block">
<div class="line">April 19, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line"><br /></div>
<div class="line">In Person:</div>
<div class="line">Microsoft Redmond Reactor | 3709 157th Ave <span class="caps">NE</span>, Redmond, <span class="caps">WA</span> 98052</div>
<div class="line">Conf Room 20/1034 (14) Alder Reactor</div>
<div class="line"><a class="reference external" href="https://www.google.com/maps/place/3709+157th+Ave+NE,+Redmond,+WA+98052/@47.6436781,-122.1332843,17z/data=!3m1!4b1!4m6!3m5!1s0x54906d71fad78e11:0x41c6b1be983cf409!8m2!3d47.6436745!4d-122.1310903!16s%2Fg%2F11cs8wbt2c">Map</a></div>
<div class="line"><br /></div>
<div class="line">Remote:</div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_MGY3MDU4NzYtZWVkMi00ZjQ4LTliMTMtNGNhOTQ1NmMwYTc3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22739ffc25-8fae-48b9-9505-1f3baa8f0eb7%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 221 084 547 694</div>
<div class="line">Passcode: zRSbFd</div>
<div class="line"><br /></div>
<div class="line">Call in (audio only)</div>
<div class="line">+1 323-849-4874,,731463717#<<a class="reference external" href="tel:+13238494874">tel:+13238494874</a>,,731463717#> United States, Los Angeles</div>
<div class="line">Phone Conference <span class="caps">ID</span>: 731 463 717#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Remedial C++ 17 Library features</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>When C++ 17 came out 6 years ago, many of us weren’t allowed to use it because our compilers didn’t support it. Now that most compilers have good C++ 17 support, let’s do an overview of the features introduced into the C++ standard library with C++ 17.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Like the man in black said: “No one of consequence”. Peter Williamson has been programming professionally for 30 years at companies like Boeing, Microsoft, Amazon, and Google. He’s been using C++ for most of that time, and attending <span class="caps">NWCPP</span> off and on since the 90’s. He has been known to talk about himself in third person.</p>
</div>
<div class="section" id="door-prize">
<h2><span class="dquo">“</span>Door Prize”</h2>
<p>CppNorth has donated one Complementary Conference General Admission to the conference being held on
July 17 to 19, 2023 in Toronto, Canada.</p>
<p>CppNorth Web Site: <a class="reference external" href="https://cppnorth.ca/">https://cppnorth.ca/</a></p>
<p>We will hold a drawing during the meeting to give this pass away.</p>
<p>Here are the rules for the drawing:</p>
<ol class="arabic simple">
<li>The admission is for the conference <span class="caps">ONLY</span>. Items normally purchased seperately (hotel, dinners, transpiration, t-shirts, pre-conf workshops, …) are <span class="caps">NOT</span> included.</li>
<li>Conference add-ons can and must be purchased separately.</li>
<li>The person using the complimentary registration <span class="caps">MUST</span> stay at the conference hotel (3-night minimum).</li>
<li>The complementary registration <span class="caps">IS</span> transferable. The winner can give (but not sell) it to somebody else.</li>
<li>You must be onsite or actively online with the <span class="caps">NWCPP</span> April 2023 meeting to win. If you are online you will still be able to pick an number and enter the drawing which will be held live during the meeting. The drawing itself will be via a computer generated random number.</li>
<li>Members of the <span class="caps">NWCPP</span> Board and CppNorth are <span class="caps">NOT</span> eligible to participate in the drawing (sorry folks, but that’s a conflict of interest case!).</li>
<li>By participating in the drawing and/or accepting the conference pass you agree to the following terms and conditions:</li>
</ol>
<ul class="simple">
<li>The pass is transferable but cannot be sold or exchanged for cash.</li>
<li>You agree to assume all risk and danger of personal injury, property damage, and other hazzards of participating in the drawing, traveling to and/or attending the conference.</li>
<li>You agree to indemnify and hold harmless <span class="caps">NWCPP</span>, CppNorth, any affiliates, respective officers, directors, employees, agents, and volunteers from and against any and all claims, damages, liabilities, costs, expenses arising from or related to participation in the drawing, your attendence at the conference, or utilization of the pass in any way.</li>
<li>The pass holder will be subject to and abide by all terms and conditions of CppNorth.</li>
</ul>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
<p>Please thank Microsoft for sponsoring our meeting room and Teams account!</p>
<p>Please thank CppNorth for sponsoring our door prize!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://docs.google.com/presentation/d/1rw43yd1t1LCQLnAPYZKeiRNvwrbVy9pNVmG2P8L7J9o">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/U6Eef79GRF4">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 15, 2023: Open Discussion: Chatting on ChatGPT2023-03-01T00:00:00-08:002023-03-01T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2023-03-01:/March-2023.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 15, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1677712488043?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 216 303 155 925</div>
<div class="line">Passcode: gdacra</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Open Discussion: Chatting on ChatGPT</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Generative <span class="caps">AI</span> is all the rage right now, in particular ChatGPT. Come join us …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 15, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1677712488043?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 216 303 155 925</div>
<div class="line">Passcode: gdacra</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Open Discussion: Chatting on ChatGPT</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Generative <span class="caps">AI</span> is all the rage right now, in particular ChatGPT. Come join us for a lively open
discussion and hopefully some live demos of this emerging technology. What is it, how does it work,
what can you do with it, how much of a threat is it?
For folks that haven’t played with ChatGPT yet here is the public link: <a class="reference external" href="https://chat.openai.com/auth/login">https://chat.openai.com/auth/login</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank JFrog and Conan for sponsoring the our Meetup account!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/mtpU19Zimps">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Feb 15, 2023: What’s Your Function?2023-01-28T00:00:00-08:002023-01-28T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2023-01-28:/Feb-2023.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Feb 15, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1674918621029?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 215 254 321 55</div>
<div class="line">Passcode: y2wGEw</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>What’s Your Function?</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A function is a fundamental building block in software development and a key tool for …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Feb 15, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1674918621029?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 215 254 321 55</div>
<div class="line">Passcode: y2wGEw</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>What’s Your Function?</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A function is a fundamental building block in software development and a key tool for designing efficient and maintainable systems. This talk looks at the characteristics of a “good” function and provides practical guidance on when and how to refactor and utilize existing libraries to develop Better Code.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Sean Parent is a senior principal scientist and software architect for Adobe’s mobile digital imaging group and Photoshop. Sean has been at Adobe since 1993 when he joined as a senior engineer working on Photoshop and later managed Adobe’s Software Technology Lab. In 2009 Sean spent a year at Google working on Chrome <span class="caps">OS</span> before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/DnfRMYCw_Y4">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Jan 18, 2023: Negative Behaviors in TDD2022-12-17T00:00:00-08:002022-12-17T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2022-12-17:/Jan-2023.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Jan 18, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1671297830501?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 229 164 636 463</div>
<div class="line">Passcode: GfJHZz</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Negative Behaviors in <span class="caps">TDD</span></p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Test-Driven Development (<span class="caps">TDD</span>) is a process in which test are written up-front. Typically these tests …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Jan 18, 2023 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1671297830501?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 229 164 636 463</div>
<div class="line">Passcode: GfJHZz</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Negative Behaviors in <span class="caps">TDD</span></p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Test-Driven Development (<span class="caps">TDD</span>) is a process in which test are written up-front. Typically these tests reflect the requirements and expectations of the stakeholders to the project, driving the creation of useful, valuable behavior.</p>
<p>Sometimes, however, the requirement given is about something the system should not do, and must not do for a reason that is critical to the business we seek to serve.</p>
<p>The question this presentation will address is this:
How can you write a test about a behavior that the system must not do? We will use both unit tests and acceptance tests to investigate this question.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Scott Bain is a 40+ year veteran in computer technology, with a background in development, analysis, and design. He has also designed, delivered, and managed training programs, both in traditional classrooms and via distance learning. Scott teaches courses and consults on Agile Analysis and Design Patterns, Advanced Software Design, and Test-Driven Development. He is a frequent speaker at developer conferences such as JavaOne and SDWest. He is the author of “Emergent Design”, which won a Jolt Productivity Award, as well as “The <span class="caps">TDD</span> Companion” and “The Design Patterns Companion”. He currently works for <span class="caps">PMI</span>.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2023/SpecifyingTheNegaiveInIDD.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/K4g_fXKle4M">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Nov 16, 2022: Open Discussion: Why so many languages?2022-10-29T00:00:00-07:002022-10-29T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2022-10-29:/Nov-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Nov 16, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1664646712879?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 234 309 334 946</div>
<div class="line">Passcode: qZgYD2</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Open Discussion: Why so many languages?</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This month we are going to try something a bit differet. The meeting …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Nov 16, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1664646712879?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 234 309 334 946</div>
<div class="line">Passcode: qZgYD2</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Open Discussion: Why so many languages?</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This month we are going to try something a bit differet. The meeting will be an open discussion on why
we have so many programming languages. The Tiobe Language Index (<a class="reference external" href="https://www.tiobe.com/tiobe-index/">https://www.tiobe.com/tiobe-index/</a>) currently
shows the top 100 programming languages, and this clearly isn’t a comprehensive list. In recent years the
number of languages has also started increasing again with a newer generation of languages such as: Go,
Kotlin, and Carbon.</p>
<p>What are the benefits and costs of so many languages? Do we really need new languages or should we extend the
existing languages (which is also happening)? What do you tell a new developer coming into the field? As a
seasoned developer when should you look at learning a new language?</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/VCL7eP6vbg8">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Oct 19, 2022: Remedial C++ 172022-09-25T00:00:00-07:002022-09-25T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2022-09-25:/Oct-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Oct 19, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1664646712879?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 234 309 334 946</div>
<div class="line">Passcode: qZgYD2</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Remedial C++ 17</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There’s often a gap of several years between when a new language standard is approved …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Oct 19, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3a__Wz9Jgw-mLgNyP6-DvSPuYdBCN8TvSfeZL6C_QS9Z01%40thread.tacv2/1664646712879?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 234 309 334 946</div>
<div class="line">Passcode: qZgYD2</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Remedial C++ 17</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There’s often a gap of several years between when a new language standard is approved and when we can get permission to use it in our projects. Now that the C++17 standard has been out for a few years and is starting to be allowed in code bases might be a good time to either brush up on the new features if you already learned them, or start learning them if not. In this talk we’ll cover the language changes introduced by C++ 17. This will be a high level talk with examples, but won’t deep dive into all the corner cases. A future talk will cover changes to the C++ standard library which also came with C++17.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Like the man in black said: “No one of consequence”. Peter Williamson has been programming professionally for 30 years at companies like Boeing, Microsoft, Amazon, and Google. He’s been using C++ for most of that time, and attending <span class="caps">NWCPP</span> off and on since the 90’s. He has been known to talk about himself in third person.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2022/RemedialCpp17Language.pdf">Slides</a>
<a class="reference external" href="https://youtu.be/f09IzxxEf8s">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Aug 17, 2022: ATTEMPT #2: Building a C/C++ Infrared Piano2022-08-02T00:00:00-07:002022-08-02T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2022-08-02:/Aug-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Aug 17, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_YjRhNTQ3NTQtYjU2OC00YmY5LTlkMmYtZDQ3N2U1MmQ5ZGM3%40thread.v2/0?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 256 260 761 683</div>
<div class="line">Passcode: sUuRtv</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Building a C/C++ Infrared Piano</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>TinkerForge provides a variety of sensors and devices: an air quality sensor, analog …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Aug 17, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_YjRhNTQ3NTQtYjU2OC00YmY5LTlkMmYtZDQ3N2U1MmQ5ZGM3%40thread.v2/0?context=%7b%22Tid%22%3a%22fd66e145-f04c-469d-a568-c58090f00b63%22%2c%22Oid%22%3a%2281b13566-99fa-4534-a06e-662365d4f0d9%22%7d">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 256 260 761 683</div>
<div class="line">Passcode: sUuRtv</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Building a C/C++ Infrared Piano</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>TinkerForge provides a variety of sensors and devices: an air quality sensor, analog joystick, linear potentiometer, speaker, <span class="caps">LCD</span> screen, infrared distance sensor, and many more. We’ve used some of these devices to create an infrared piano. Two <span class="caps">IR</span> sensors detect where you place your hand over two sets of keys. The speaker beeps at a frequency matching the note for that key. The <span class="caps">LCD</span> prints the distance detected by each <span class="caps">IR</span> sensor. And the linear potentiometer controls volume. The software that runs the piano uses TinkerForge’s C/C++ <span class="caps">API</span> bindings. These are easy to retrieve from ConanCenter using the Conan C/C++ package manager. This session examines the various sensors, devices, and codes used to create the piano. You’ll go behind the scenes of the piano’s development, and its iterations, and see how you can start creating similar projects.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Nick Ristuccia
JFrog, Conan Developer Advocate | Game Designer
Nick started in the videogames industry, developing titles for console and mobile. Disappointed by the oppressive corporate feel of traditional technical training, Nick’s passion is to create more engaging and powerful learning experiences through game-based learning and other playful techniques. As a Curriculum Developer at Oracle, he focused on Java programming and certification. As a Developer Advocate at JFrog, his focus is on C++, Conan, and other JFrog technologies.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://jfrog.co/NWCppUG">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/cJ9V6ePpihY">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
July 20, 2022: CANCELED: Building a C/C++ Infrared Piano2022-06-01T00:00:00-07:002022-06-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2022-06-01:/July-2022.html<div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are seeing an issue with Teams where the meeting will not open via the browser link. At this point we are going to cancel the meeting and reschedule the speaker as we are not finding a quick solution to the issue. Sorry!!!</p>
<p>The Aug meeting will be member …</p></div><div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are seeing an issue with Teams where the meeting will not open via the browser link. At this point we are going to cancel the meeting and reschedule the speaker as we are not finding a quick solution to the issue. Sorry!!!</p>
<p>The Aug meeting will be member lighting rounds, if you want to do a 5-10 minute talk please just show up with your talk and we’ll organize at the start of the meeting. This is a great opportunity to practice a talk if you also plan to present at CppCon!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 20, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line">Canceled: See announcement</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Building a C/C++ Infrared Piano</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>TinkerForge provides a variety of sensors and devices: an air quality sensor, analog joystick, linear potentiometer, speaker, <span class="caps">LCD</span> screen, infrared distance sensor, and many more. We’ve used some of these devices to create an infrared piano. Two <span class="caps">IR</span> sensors detect where you place your hand over two sets of keys. The speaker beeps at a frequency matching the note for that key. The <span class="caps">LCD</span> prints the distance detected by each <span class="caps">IR</span> sensor. And the linear potentiometer controls volume. The software that runs the piano uses TinkerForge’s C/C++ <span class="caps">API</span> bindings. These are easy to retrieve from ConanCenter using the Conan C/C++ package manager. This session examines the various sensors, devices, and codes used to create the piano. You’ll go behind the scenes of the piano’s development, and its iterations, and see how you can start creating similar projects.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Nick Ristuccia
JFrog, Conan Developer Advocate | Game Designer
Nick started in the videogames industry, developing titles for console and mobile. Disappointed by the oppressive corporate feel of traditional technical training, Nick’s passion is to create more engaging and powerful learning experiences through game-based learning and other playful techniques. As a Curriculum Developer at Oracle, he focused on Java programming and certification. As a Developer Advocate at JFrog, his focus is on C++, Conan, and other JFrog technologies.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
June 15, 2022: Overloading in C++: How Does It Really Work?2022-06-01T00:00:00-07:002022-06-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2022-06-01:/June-2022.html<div class="section" id="announcements">
<h2>Announcements</h2>
<p>Please note the meeting this month will be held in Zoom and not our regular Teams meeting!!!</p>
<p>The Aug meeting will be member lighting rounds, if you want to do a 5-10 minute talk please just show up with your talk and we’ll organize at the start of …</p></div><div class="section" id="announcements">
<h2>Announcements</h2>
<p>Please note the meeting this month will be held in Zoom and not our regular Teams meeting!!!</p>
<p>The Aug meeting will be member lighting rounds, if you want to do a 5-10 minute talk please just show up with your talk and we’ll organize at the start of the meeting. This is a great opportunity to practice a talk if you also plan to present at CppCon!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 15, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Zoom</div>
<div class="line"><a class="reference external" href="https://digital-medium-co-uk.zoom.us/j/85776149731?pwd=TlBNVkRTTjlzUHZORVVOanRDZ1lIZz09">Click here to join the meeting</a></div>
<div class="line">Meeting <span class="caps">ID</span>: 857 7614 9731</div>
<div class="line">Meeting Passcode: 544513</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Overloading in C++: How Does It Really Work?</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Overloading has been part of C++ since its beginning, and is the subject of an entire chapter (“Clause”) in the C++ Standard. This talk will provide an in-depth look at this oft-overlooked language feature.</p>
<p>Beginning with basic definitions and plenty of examples, we will go on to discuss many of the finer points of overloading and overload resolution. We will culminate with an advanced example of overloading in a non-traditional context.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>With broad experience in industry, academia, consulting, and research, Dr. Walter E. Brown has been a computer programmer for almost 60 years, and a C++ programmer for more than 40 years.</p>
<p>He joined the C++ standards effort in 2000, and has since written circa 175 proposal papers. Among numerous other contributions, he is responsible for introducing such now-standard C++ library features as cbegin/cend, common_type, gcd/lcm, void_t, and <cmath>’s mathematical special functions, as well as the headers <random> and <ratio>. He has also significantly impacted such C++ core language features as alias templates, contextual conversions, variable templates, static_assert, and operator<=> (the C++20 “spaceship operator”).</p>
<p>When not playing with his grandchildren, Dr. Brown continues as an Emeritus participant in the C++ standards process and as a frequent speaker at C++ meetups and conferences worldwide.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Online Infrastructure supplied by Digital Medium Ltd (Jim Roper <span class="amp">&</span> Co)</p>
<p>Digital Medium Ltd provides event management, infrastructure, filming/streaming services, YouTube management and content distribution services for the global C++ and programming communities.</p>
<p>Contact Us Here: <a class="reference external" href="https://online.digital-medium.co.uk/">https://online.digital-medium.co.uk/</a></p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2022/Overloading.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/tlJolHu8u8E">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 18, 2022: A Slice of Rust2022-05-01T00:00:00-07:002022-05-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2022-05-01:/May-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 18, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>A Slice of Rust</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Rust is a general purpose, safety oriented programming language. I’ve …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 18, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>A Slice of Rust</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Rust is a general purpose, safety oriented programming language. I’ve been using Rust professionally for roughly 2 years now and I would like to share some of the strengths and weaknesses that I have found during that time.</p>
<p>While this won’t be a formal introduction to Rust, anyone with a software background will be able to follow along. In several places I will compare and contrast Rust with C <span class="amp">&</span> C++. The presentation will give you a good background as to when you should consider Rust for a project as well as highlight several of the pitfalls I have run into when working with Rust.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Lloyd Moore is the founder and owner of CyberData Corporation, which provides consulting services in the aerospace, robotics, machine vision and industrial automation fields. Lloyd has worked in software industry for 35 years. His formal training is in biological-based artificial intelligence, electronics, and psychology. Lloyd is also currently the president of the Northwest C++ User’s Group and an organizer of the Seattle Robotics Society Robothon event.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2022/ASliceOfRust.pptx">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/FsQJ2ZpcVWo">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 20, 2022: Adding Modules to C in 10 Lines of Code2022-04-01T00:00:00-07:002022-04-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2022-04-01:/April-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 20, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Adding Modules to C in 10 Lines of Code</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>I know what you’re thinking …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 20, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Adding Modules to C in 10 Lines of Code</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>I know what you’re thinking. You don’t believe me. After all, it took C++ only 20 years to design and implement modules. I must be nuts. They must be coming to take me away. [1] But hear me out. Even if you don’t agree, it’s an interesting story. And I know you want modules in your C work, as #include is an abomination in modern languages. #include is as primitive as a <span class="caps">VHS</span> copy of 2001: A Space Odyssey.
This module method can work with your favorite C compiler, too!</p>
<p>Oh, and wait till you see what importing modules from <em>other</em> languages
does to C!</p>
<p>[1] <a class="reference external" href="https://www.youtube.com/watch?v=tnPG1v61AEk">https://www.youtube.com/watch?v=tnPG1v61AEk</a></p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Walter Bright
Engineer, Digital Mars</p>
<p>Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several other languages. He’s an expert in all areas of compiler technology, including front ends, optimizers, code generation, interpreter engines and runtime libraries. Walter regularly writes articles about compilers and programming, is known for engaging and informative presentations, and provides training in compiler development techniques. Many are surprised to discover that Walter is also the creator of the wargame Empire, which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2022/modules_in_c.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/2ImfbGm0fls">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 16, 2022: Building a Python/C++ Package2022-03-01T00:00:00-08:002022-03-01T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2022-03-01:/March-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 16, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Building a Python/C++ Package:
Vision, Transformation, Documentation, Scale, Portability, and Tools</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This is a …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 16, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Building a Python/C++ Package:
Vision, Transformation, Documentation, Scale, Portability, and Tools</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This is a story about an ongoing, unfunded personal post-retirement project.</p>
<p>Leonard Mosescu, in his talk last August (“Python Bindings for C++”),
ably covered the core technology for persuading Python and C++ to play
nicely together. I will address some of the same issues, but treat this
project as a concrete case study, with messy issues beyond (and
including) the binding tools (I’m using <span class="caps">SWIG</span>).</p>
<p>My starting point is <span class="caps">SST</span>, a monolithic C++ computer program that
generates simulated underwater sound. I built <span class="caps">SST</span> over a 40-year career,
with episodic help from a sequence of team members with various skill
sets. The front end is my own parser, interpreting an incomplete “data
description” language of my own invention. The underlying C++ classes
are mostly well designed, mostly documented using Doxygen, but they bear
the marks of a long and twisted evolution, and some mistakes. <span class="caps">SST</span> is
reasonably well documented, and in use by a small community of very
sophisticated users. It is useful but kinda hard to use.</p>
<p>My desired end point is a C++ library with a Python binding (a set of
Python modules) designed to be integrated into multiple simulations
focusing on specific applications of underwater sound. It should look
familiar to my existing users, plus offer enough extra power and
flexibility to wean them off of my language and onto Python, with tools
to help on that journey. The project is far from finished — at best
it’s a proof of concept.</p>
<p>Why did I take on this project, what should the end product look like to
my users, and how can I get from here to there? I hope to both enlighten
and enlist my audience, to help them think about these issues and to
help me make the right decisions to move the project forward.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Robert Goddard
Principal Physicist, Retired (but still active)
University of Washington, Seattle</p>
<p>Robert Goddard is a physicist and software developer. He retired (sort of) in 2017 after 37 years at the <span class="caps">UW</span> Applied Physics Laboratory, working mainly on computer modeling of underwater sound. He is still the architect and team leader for the Sonar Simulation Toolset (<span class="caps">SST</span>), which produces simulated underwater sound, suitable as input to sophisticated signal processing systems (including human ears and brains), based on user-specified descriptions of the undersea environment, the listening system, and the sound sources and reflectors placed in this simulated ocean. He has also developed systems for data acquisition and analysis, visualization, modeling of quantum mechanical scattering, and using data to infer model parameters</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2022/Py-Cpp-Package.pptx">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/EbRRyVOfpRc">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Feb 16, 2022: How I Learned to Stop Worrying and Love C++ 202022-01-31T00:00:00-08:002022-01-31T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2022-01-31:/Feb-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Feb 16, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>How I Learned to Stop Worrying and Love C++ 20</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Over the last few months …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Feb 16, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>How I Learned to Stop Worrying and Love C++ 20</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Over the last few months, I have been working on updating my C++ course materials with topics from C++ 20, as well as drafting chapters for a book on modern C++ for finance. In this presentation, I thought I would share some of what I’ve learned about C++ 20. The emphasis will be on a broad range of highlights such as modules, mathematical constants, ranges, views, concepts, and the new date class, along with a few examples of practical applications.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Daniel Hanson is a full-time lecturer in the Computational Finance <span class="amp">&</span> Risk Management program within the Department of Applied Mathematics at the University of Washington. His appointment followed over 25 years of experience in private sector quantitative development in finance and data science.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://github.com/QuantDevHacks/NWCPP_2022_02_16/tree/main">Code</a></p>
<p><a class="reference external" href="/talks/2022/Cpp20_2022_02_16_v5.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/qDsXn-rpLDY">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Jan 19, 2022: What’s new with Chapel? Applications, Aggregators, and Accelerators2021-12-18T00:00:00-08:002021-12-18T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2021-12-18:/Jan-2022.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Jan 19, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>What’s new with Chapel? Applications, Aggregators, and Accelerators</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Chapel is a language supporting productive …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Jan 19, 2022 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzAyZjk4NmYtNDk0Zi00ZTExLThlYTAtMmU0MjdiODNiZDZi%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22e7ef3a08-2edc-4be1-86ca-6b4e47553507%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 981 759 587#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>What’s new with Chapel? Applications, Aggregators, and Accelerators</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Chapel is a language supporting productive parallel programming on large-scale supercomputers. Chapel strives for a Python-like experience in terms of code clarity, yet with the type-safety and flexibility you’d expect from a language like C++ combined with the performance and scalability that the <span class="caps">HPC</span> community expects from standard approaches for scalable computing, like <span class="caps">MPI</span>.</p>
<p>In this talk, I’ll start with a quick overview of Chapel for those who have either missed my prior <span class="caps">NWCPP</span> talks or need a refresher. From there, I’ll move on to recent highlights on the project, including: some significant and recent applications that have been written in Chapel; optimizations that aggregate communications to improve performance; and a nascent effort to target GPUs using native Chapel code.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Brad Chamberlain is a Distinguished Technologist at Hewlett Packard Enterprise (formerly Cray Inc.) who has spent his career focused on user productivity for <span class="caps">HPC</span> systems, particularly through the design and development of the Chapel parallel programming language (<a class="reference external" href="https://chapel-lang.org">https://chapel-lang.org</a>). He received his Ph.D in Computer Science <span class="amp">&</span> Engineering from the University of Washington in 2001 and remains associated with the department as an affiliate professor of the Paul G. Allen School.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2022/ChapelForNWCPP2022.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/jHjOyV-VFuQ">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Nov 17, 2021: Conan Package Manager for C++ in Practice2021-11-01T00:00:00-07:002021-11-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2021-11-01:/Nov-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Nov 17, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Nov 17, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Conan Package Manager for C++ in Practice</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Conan package manager for C++ is useful in both simple and advanced development environments. Join the Conan team to see it in action, with a simple demo using <span class="caps">OSS</span> libraries and tools from ConanCenter, and a more complete demo showing how to create and upload a package including different binaries for different platforms to a private repository. Also, learn about many other unique and innovative advanced Conan features along the way.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Diego Rodriguez-Losada‘s passions are robotics and <span class="caps">SW</span> engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and <span class="caps">AI</span> fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup.. Since then he mostly develops in Python. Diego is a conan.io C/C++ package manager co-creator and maintainer, now working at JFrog as Conan Lead Architect and C/C++ Advocate.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/X4bPsRAXHRs">Video</a>
A link to the slides is available in the video along with a promo t-shirt for the first 25 people to register with the link.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Sept 15, 2021: Lightning Talks!!!!2021-08-22T00:00:00-07:002021-08-22T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2021-08-22:/Sept-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Sept 15, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Sept 15, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Lightning Talks!!!</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This month will be an open forum for a series of lightning talks. Each talk should be 5-10 minutes in length. If you would like to give a talk, simply show up to the meeting! At the start of the meeting we’ll collect a list of talks and then dive in! This is intended to be an opportunity for folks to present on subjects that may not be large enough for an hour long presentation. Additionally if you are planning to give a lightning talk at CppCon next month please feel free to use this as a practice session!</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Not known at this time!</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://docs.google.com/presentation/d/1tXrmeZ2ONtKezC9r_uv6bf2WiOegN8UgoenBuj_ADtM/edit#slide=id.p">Slides Peter Williamson; C++ Compile Time if</a></p>
<p><a class="reference external" href="/talks/2021/LessMagicalNumbers.pptx">Slides Lloyd Moore; Less Magical Numbers</a></p>
<p><a class="reference external" href="/talks/2021/ErrorThatShouldntBe.pdf">Slides Chris Ryan; The Error That Shouldn’t Be</a></p>
<p><a class="reference external" href="https://youtu.be/Mzfqpwzxxjc">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Aug 18, 2021: Python Bindings for C++2021-08-01T00:00:00-07:002021-08-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2021-08-01:/Aug-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Aug 18, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Aug 18, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Python Bindings for C++</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A quick introduction to Python / C++ interoperability, with a focus on pybind11, a lightweight Python bindings library. For a concrete example, we’ll dive into the design and implementation of Python bindings for the Darwin Neuroevolution Framework.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>By day, Leonard Mosescu is working on Deep Learning compilers and frameworks at <span class="caps">NVIDIA</span>. By night, he’s pursuing an old interest in <span class="caps">AI</span> and Evolutionary Algorithms.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://docs.google.com/presentation/d/11mCjNOOGIuqKdpsb6ITD76moXxchqgdX9eKYSbdo2XI/edit?usp=sharing">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/F7RKGiwwGF4">Video</a></p>
<p><a class="reference external" href="https://github.com/tlemo/nwcpp_pybind11">Code</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
July 21, 2021: Test-Driven Development in the Larger Context2021-05-26T00:00:00-07:002021-05-26T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2021-05-26:/July-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 21, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 21, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Test-Driven Development in the Larger Context</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>When discussing or teaching Test-Driven Development, or <span class="caps">TDD</span>, a question often arises: What about Acceptance Tests? Are they part of <span class="caps">TDD</span>? Can they also be used to drive development, as in <span class="caps">ATDD</span>? If so, how do they relate to the unit tests that developers typically write as part of their process? This presentation examines the differences, similarities, and synergy between <span class="caps">TDD</span> and <span class="caps">ATDD</span>, and places them into the overall context of an agile process.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Scott is a 40+ year veteran in computer technology, with a background in development, analysis, and design. He has also designed, delivered, and managed training programs, both in traditional classrooms and via distance learning. Scott teaches courses and consults on Agile Analysis and Design Patterns, Advanced Software Design, and Test-Driven Development. He is a frequent speaker at developer conferences such as JavaOne and SDWest. He is the author of “Emergent Design”, which won a Jolt Productivity Award, as well as “The <span class="caps">TDD</span> Companion” and “The Design Patterns Companion”. He currently works for <span class="caps">PMI</span>.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2021/TDDInTheLargerContext_PMI.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/qJRt0KVONeA">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
June 16th, 2021: Modern Application Development for Any Domain2021-05-26T00:00:00-07:002021-05-26T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2021-05-26:/June-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 16th, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 16th, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Modern Application Development for Any Domain</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With the rise of the high-resolution, responsive mobile user interface has come rising user expectations of technology in every facet of life. From consumer devices to industrial control panels to scientific data analysis applications, the way the user feels when interacting with technology often determines the success or failure of a product. But shiny user experience only goes so far if the underlying application framework cannot meet the product requirements, or results in a high cost of development.</p>
<p>In this session you will discover how the Qt application development framework can enable you to develop beautiful, high-performance applications that scale from microcontroller to desktop. Support all major platforms and operating systems with a single code base. Develop in C++, Python, and/or <span class="caps">QML</span>/JavaScript to make the best use of your expertise and integrate with any application domain.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<blockquote>
Corey Pendleton is a Senior Solutions Engineer with The Qt Company collaborating with our customers through providing technical expertise and proof of concept using the Qt framework. As a software engineer for 8 years in consumer electronics with Garmin International, and 4 years in automation with Siemens E&A, his experience affords him the vision to creatively and pragmatically explore the use of the Qt framework in a variety of customer use-cases.</blockquote>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2021/NWCPP_Group_MeetQt.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/YUlpDsGAonY">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 19th, 2021: Components of Successful Software Projects2021-04-29T00:00:00-07:002021-04-29T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2021-04-29:/May-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 19th, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 19th, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Components of Successful Software Projects</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A successful software project is much more than just getting the code to compile and run. Building a successful piece of software requires multiple stages of planning and execution. The success or failure of the project will depend as much upon the processes used for development the project as the final project itself. This presentation is a high level survey of key processes and considerations that should be addressed for any project, from the beginning to end. When to use them, when they can be skipped and what the consequences can be if a process is skipped inappropriately.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Lloyd Moore is the founder and owner of CyberData Corporation, which provides consulting services in the aerospace, robotics, machine vision and industrial automation fields. Lloyd has worked in software industry for 35 years. His formal training in biological-based artificial intelligence, electronics, and psychology. Lloyd is also currently the president of the Northwest C++ User’s Group and an organizer of the Seattle Robotics Society Robothon event.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2021/SuccessfulSoftwareProjects.pptx">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/aC9RkHvBbow">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 21th, 2021: Destroy All Memory Corruption2021-03-21T00:00:00-07:002021-03-21T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2021-03-21:/Apr-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 21th, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 21th, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Destroy All Memory Corruption</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Memory corruption is a pernicious and expensive problem. Too often scrubbing it out of code requires manual review, which becomes increasingly impractical as the size of code increases. Runtime checks are inadequate because they cannot prove that memory corruption cannot happen since only the test cases are checked. The idea is to be able to detect memory corruption at compile time as much as possible.</p>
<p>D has had great success at greatly reducing many common forms of memory corruption, such as buffer overflows, use of uninitialized pointers, constructing invalid pointers, and dangling pointers into expired stack frames.</p>
<p>The largest remaining category of such problems is tracking the lifetimes of memory objects and the references to them. The idea is to pair every memory allocation with exactly one deallocation and prevent references to a memory object from surviving past the lifetime of that object. This presentation describes the design of a memory ownership and borrowing system suitable for inclusion into the D language, addressing that category.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several other languages. He’s an expert in all areas of compiler technology, including front ends, optimizers, code generation, interpreter engines and runtime libraries. Walter regularly writes articles about compilers and programming, is known for engaging and informative presentations, and provides training in compiler development techniques. Many are surprised to discover that Walter is also the creator of the wargame Empire, which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2021/DestroyAllMemoryCorruption.pdf">Slides</a></p>
<p><a class="reference external" href="https://youtu.be/bf7csqqXmrA">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 17th, 2021: Empowering Everyone to Write Reliable and Safe C++2021-02-25T00:00:00-08:002021-02-25T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2021-02-25:/Mar-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 17th, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 17th, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Empowering Everyone to Write Reliable and Safe C++ Using Principles of Static Analysis</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Did you know that 70% of serious security bugs are a result of memory safety issues? Although C++ is high performing programming language, customers and security researchers have increasingly asked for stronger safety and correctness guarantees in their programs. In fact, safety and correctness are no longer viewed as opt-in behavior. In this talk, I will explore how static analysis principles can be used to provide strong statically checked guarantees out of the box, without compromising on the trailblazing performance and memory efficiency of C++. I will demonstrate some of these techniques live on real world examples.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Sunny Chatterjee leads a team responsible for developing the core C++ Static Analysis engines in Visual Studio productivity experience as well as the traditional security tooling scenarios used widely within Microsoft. He has many years of experience working on program analysis. His current area of focus is towards making C++ a safer systems programming language.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2021/SunnyStaticAnalysis.pptx">Slides</a></p>
<p><a class="reference external" href="/talks/2021/NWCpp_StaticAnalysis.zip">Source Code</a></p>
<p><a class="reference external" href="https://www.youtube.com/watch?v=RZ2s89kJQzE">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
February 17th, 2021: Intrusive Flat Forward List2021-01-23T00:00:00-08:002021-01-23T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2021-01-23:/Feb-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 17th, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 17th, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="opening-act">
<h2>Opening Act</h2>
<p>We’ll have a short “opening act” for this meeting. Daniel Hanson will present the demo from the January meeting again.</p>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Intrusive Flat Forward List for self-containing <span class="caps">POD</span> types</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Variable length self-containing data structures are around us everywhere. Most often we use them when we [de]serialize data to/from the storage or networking. We use serialization libraries to flip data between a format used to persist data and a format we use to operate data in <span class="caps">RAM</span>. There is a category of data structures that have the same representation when they are persistent and when they are in memory. One of them can be described as an Intrusive Flat Forward List (<span class="caps">IFFL</span>). You probably came across it when enumerating content of a directory on a file system. Most projects have hand crafted non reusable algorithms that deal with this structure. They are one of common places of codding errors and sometimes security vulnerabilities and are hard to maintain.</p>
<p>We will look at the header only <span class="caps">MIT</span>-licensed open-source library <span class="caps">IFFL</span> that provides a set of algorithms as well as owning and non-owning containers that solve these issues. All containers have familiar <span class="caps">STL</span>-like interface. Once you have that hammer at your disposal, many problems will look like a nail. You will start seeing how this structure can help more efficiently pass data across processes or organize data in shared memory or on disk.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Vladimir Petter is a Principal Software Developer Lead at Microsoft working in High Availability and Storage group that is responsible for many features shipping in Windows Server. His team owns Microsoft implementation of <span class="caps">SMB</span> (a remote file system protocol) server and client.</p>
<p>Over his 30-year career he had an opportunity to work in a variety of industries like Banking, Industrial Processes Automation, Building Automation and Security, Video on Demand etc. He has been working at Microsoft for the last 15 years. After joining Clustering team, he has discovered his true passion: building distributed highly available applications. He has been a contributor in many products owned by this group like Network Load Balancer, Failover Cluster, Cluster Shared Volume, <span class="caps">SMB</span> and <span class="caps">S2D</span>. It is an exciting area, full of unique algorithms. He had an opportunity to develop solutions across user mode and kernel mode and build in depth knowledge in many technologies from networking to storage.</p>
<p>He is passionate about C/C++ and in his free time is working on small projects that help to compose products and solutions faster and with higher quality.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2021/IFFL.pptx">Slides</a></p>
<p><a class="reference external" href="https://github.com/vladp72/iffl">Source Code</a></p>
<p><a class="reference external" href="https://youtu.be/5ollZ9Oz60w">Video</a></p>
<p>Video Timing Notes:</p>
<p>Preshow: R coding demo starts at time index: 7:52</p>
<p>Main Event: Intrusive Flat Forward List starts at time index: 24:00</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
January 20th, 2021: Integrating Reusable C++ Code in R Packages2020-12-24T00:00:00-08:002020-12-24T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2020-12-24:/Jan-2021.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 20th, 2021 at 7 …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 20th, 2021 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODlhMDJlNGMtMGZmNi00MDJiLWIzZTYtNTQzMTViMDViYzY4%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Click here to join the meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 457 317 069#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Integrating Reusable C++ Code in R Packages</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>One of the most time-consuming, tedious, and thankless tasks a quantitative developer frequently confronts is writing interfaces to C++ code from other languages such as Excel <span class="caps">VBA</span>, Python, and R. Fortunately, this process has been made far less painful when interfacing to a front-end in R, thanks to the Rcpp R package.</p>
<p>The open source Rcpp package was first developed about ten years ago. It has since evolved significantly in terms of providing a platform for rapid development, plus convenient build and documentation tools, all integrated into the RStudio <span class="caps">IDE</span>. Rcpp represents a major breakthrough in allowing a programmer to farm out computationally-intensive tasks to C++, return the results to R, and then use these results within other R functions, including R’s powerful data visualization tools. Although there is a fair amount of documentation available on using Rcpp, there does not seem to be much written on how to ensure a clean separation between the R interface and the C++ code.</p>
<p>In this presentation, we will discuss how to set up an R package project in RStudio, develop C++ interfaces with Rcpp, and then call standard C++ code that remains reusable for other applications, all with minimal fuss.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Daniel Hanson is a full-time lecturer in the Computational Finance <span class="amp">&</span> Risk Management program within the Department of Applied Mathematics at the University of Washington. His appointment followed over 25 years of experience in private sector quantitative development in finance and data science.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2021/NWCPP_Rcpp_R_Packages.pdf">Slides</a>
<a class="reference external" href="https://youtu.be/xNqhjeFSR1k">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
November 18th, 2020: 3D Graphics for Dummies2020-10-26T00:00:00-07:002020-10-26T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2020-10-26:/Nov-2020.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM …</span></div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM</span> <span class="caps">PERFORMS</span> <span class="caps">IF</span> <span class="caps">EVERYONE</span> <span class="caps">STREAMS</span> <span class="caps">VIDEO</span>, <span class="caps">THIS</span> <span class="caps">WOULD</span> <span class="caps">BE</span></div>
<div class="line"><span class="caps">NICE</span> <span class="caps">TO</span> <span class="caps">HAVE</span> <span class="caps">IF</span> <span class="caps">POSSIBLE</span> <span class="caps">BUT</span> <span class="caps">PLEASE</span> <span class="caps">BE</span> <span class="caps">PREPARED</span> <span class="caps">TO</span> <span class="caps">TURN</span> <span class="caps">YOUR</span> <span class="caps">VIDEO</span> <span class="caps">OFF</span></div>
<div class="line"><span class="caps">IF</span> <span class="caps">IT</span> <span class="caps">TURNS</span> <span class="caps">OUT</span> <span class="caps">TO</span> <span class="caps">BE</span> <span class="caps">CONSUMING</span> <span class="caps">TOO</span> <span class="caps">MUCH</span> <span class="caps">BANDWIDTH</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Nov 18st, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_N2I5NzhkNWQtYzM3Yi00NTA1LTgxMjItOWYzMjU3ZGVlZDU1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Join Microsoft Teams Meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 917 017 259#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>3D Graphics for Dummies</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>An introduction to Three Dimensional Graphics: Points, Vectors, Matrix Math, Rasterization and the methods used in the Graphics Pipeline and Rendering. Being a typical engineer, rather than just using an off-the-shelf library, I wrote a simple program to explore the blood and guts of the topic. It is much simpler than you would think.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Chris Ryan was classically trained in both software and hardware engineering. He is well experienced in Modern C++ <span class="amp">&</span> Classic ‘C’, on extremely large/complex problem spaces and on Embedded/Firmware devices (large <span class="amp">&</span> small). Chris has no interest in C#, Java, js or any web-ish tech.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2020/3DGraphicsForDummies.pdf">Slides</a>
<a class="reference external" href="https://youtu.be/ZFMxajr0TKU">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
October 21th, 2020: Embedded Development Panel2020-09-26T00:00:00-07:002020-09-26T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2020-09-26:/Oct-2020.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM …</span></div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM</span> <span class="caps">PERFORMS</span> <span class="caps">IF</span> <span class="caps">EVERYONE</span> <span class="caps">STREAMS</span> <span class="caps">VIDEO</span>, <span class="caps">THIS</span> <span class="caps">WOULD</span> <span class="caps">BE</span></div>
<div class="line"><span class="caps">NICE</span> <span class="caps">TO</span> <span class="caps">HAVE</span> <span class="caps">IF</span> <span class="caps">POSSIBLE</span> <span class="caps">BUT</span> <span class="caps">PLEASE</span> <span class="caps">BE</span> <span class="caps">PREPARED</span> <span class="caps">TO</span> <span class="caps">TURN</span> <span class="caps">YOUR</span> <span class="caps">VIDEO</span> <span class="caps">OFF</span></div>
<div class="line"><span class="caps">IF</span> <span class="caps">IT</span> <span class="caps">TURNS</span> <span class="caps">OUT</span> <span class="caps">TO</span> <span class="caps">BE</span> <span class="caps">CONSUMING</span> <span class="caps">TOO</span> <span class="caps">MUCH</span> <span class="caps">BANDWIDTH</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Oct 21st, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_N2I5NzhkNWQtYzM3Yi00NTA1LTgxMjItOWYzMjU3ZGVlZDU1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Join Microsoft Teams Meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 917 017 259#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Embedded Development Panel</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Embedded development presents multiple challenges to the developer in terms of constrained hardware harsh operating environments, remote debugging, cross compilation and others that are not found in other types of software development.</p>
<p>This panel will give you an opportunity to share best practices and ask questions on how to work in an embedded world.</p>
</div>
<div class="section" id="speaker-bios">
<h2>Speaker Bios</h2>
<p>Andrew N. Sloss
Fellow of the British Computer Society, Part Time Lecturer at the University of Washington Electrical Engineering Department (15-years) and Senior Principal Research Engineer at Arm Holdings (24-years). Andrew has had a long career in the Embedded field spanning both commercial and higher education. His main interest and focus has been on the design of low level software on Embedded <span class="amp">&</span> Real-Time Systems. Co-authored one of the original books on the Arm processor. More recently he has turned his attention to analyzing future Disruptive Technologies, including the application of Evolutionary Algorithms on highly constrained devices and the hardware-software interface. Andrew has received numerous awards for both education and commercial achievements.</p>
<p>Brett Searles
Has been working in the embedded field for over 20 years and is currently working at <span class="caps">XKL</span> on optical routers dealing with the <span class="caps">OS</span> and compiler tools for the <span class="caps">PDP10</span> <span class="caps">ISA</span>. Also working in developing hardware and software for very <span class="caps">HPC</span> applications at Attobotics. Very active in the C++ community with volunteering for <span class="caps">NWCPP</span> and CppCon.</p>
<p>Lloyd Moore
Lloyd Moore is the founder and owner of CyberData Corporation, which provides consulting services in the aerospace, robotics, machine vision and industrial automation fields. Lloyd has worked in software industry for 30 years. His formal training in biological-based artificial intelligence, electronics, and psychology. Lloyd is also currently the president of the Northwest C++ User’s Group and an organizer of the Seattle Robotics Society Robothon event.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/mOrPP-8YeC0">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Aug 19th, 2020: C++ Package Management2020-08-02T00:00:00-07:002020-08-02T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2020-08-02:/Aug-2020.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM …</span></div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM</span> <span class="caps">PERFORMS</span> <span class="caps">IF</span> <span class="caps">EVERYONE</span> <span class="caps">STREAMS</span> <span class="caps">VIDEO</span>, <span class="caps">THIS</span> <span class="caps">WOULD</span> <span class="caps">BE</span></div>
<div class="line"><span class="caps">NICE</span> <span class="caps">TO</span> <span class="caps">HAVE</span> <span class="caps">IF</span> <span class="caps">POSSIBLE</span> <span class="caps">BUT</span> <span class="caps">PLEASE</span> <span class="caps">BE</span> <span class="caps">PREPARED</span> <span class="caps">TO</span> <span class="caps">TURN</span> <span class="caps">YOUR</span> <span class="caps">VIDEO</span> <span class="caps">OFF</span></div>
<div class="line"><span class="caps">IF</span> <span class="caps">IT</span> <span class="caps">TURNS</span> <span class="caps">OUT</span> <span class="caps">TO</span> <span class="caps">BE</span> <span class="caps">CONSUMING</span> <span class="caps">TOO</span> <span class="caps">MUCH</span> <span class="caps">BANDWIDTH</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Aug 19th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_N2I5NzhkNWQtYzM3Yi00NTA1LTgxMjItOWYzMjU3ZGVlZDU1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Join Microsoft Teams Meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 917 017 259#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Take charge of your C++ dependencies with vcpkg</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Dependency management is a pain point for many C++ developers. Many teams are beginning to adopt existing package management solutions, but there’s still a large part of our industry managing dependencies manually. In this talk, you will learn how you can adopt vcpkg to make your development process easier, safer, and more reproducible.</p>
<p>This year, vcpkg is expanding significantly by supporting a declarative manifest file, making it easier to manage private libraries, enabling installations of specific library versions, and enabling binary caching workflows to quickly provision <span class="caps">CI</span> runs or developer machines.</p>
<p>Whether you’re a beginner learning about C++ package management for the first time, or someone familiar with vcpkg who wants to learn about the latest improvements, this talk will give an overview of how to get started and manage libraries for real world projects. Vcpkg’s long term goal is to satisfy workflows for all C++ developers, whether you are a professional developer working with millions of lines of code, or a student trying to get through some classes</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Augustin Popa is a Program Manager on the C++ team at Microsoft, planning and designing developer experiences in the Visual Studio <span class="caps">IDE</span>. Some of his past projects include ClangFormat, Google Test, and Boost.Test support. More recently, he is working on vcpkg, the cross-platform C++ library manager.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2020/vcpkg.pptx">Slides</a>
<a class="reference external" href="https://www.youtube.com/watch?v=bA5kwDUNhRo">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
July 15th, 2020: Culture of Code Reviews2020-06-27T00:00:00-07:002020-06-27T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2020-06-27:/July-2020.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM …</span></div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM</span> <span class="caps">PERFORMS</span> <span class="caps">IF</span> <span class="caps">EVERYONE</span> <span class="caps">STREAMS</span> <span class="caps">VIDEO</span>, <span class="caps">THIS</span> <span class="caps">WOULD</span> <span class="caps">BE</span></div>
<div class="line"><span class="caps">NICE</span> <span class="caps">TO</span> <span class="caps">HAVE</span> <span class="caps">IF</span> <span class="caps">POSSIBLE</span> <span class="caps">BUT</span> <span class="caps">PLEASE</span> <span class="caps">BE</span> <span class="caps">PREPARED</span> <span class="caps">TO</span> <span class="caps">TURN</span> <span class="caps">YOUR</span> <span class="caps">VIDEO</span> <span class="caps">OFF</span></div>
<div class="line"><span class="caps">IF</span> <span class="caps">IT</span> <span class="caps">TURNS</span> <span class="caps">OUT</span> <span class="caps">TO</span> <span class="caps">BE</span> <span class="caps">CONSUMING</span> <span class="caps">TOO</span> <span class="caps">MUCH</span> <span class="caps">BANDWIDTH</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 15th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_N2I5NzhkNWQtYzM3Yi00NTA1LTgxMjItOWYzMjU3ZGVlZDU1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Join Microsoft Teams Meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 917 017 259#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Culture of Code Reviews</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Most everyone will agree code reviews are an essential component of producing quality code. Yet many groups still do not perform code reviews as part of their development process. In this talk I will share what I have learned on reducing the pain of incorporating code reviews into the development process. In particular we will look at techniques for reducing the time code reviews take, addressing some of the social dynamics that surround code reviews and how to develop a team culture that self promotes code reviews.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Lloyd Moore is the founder and owner of CyberData Corporation, which provides consulting services in the aerospace, robotics, machine vision and industrial automation fields. Lloyd has worked in software industry for 30 years. His formal training in biological-based artificial intelligence, electronics, and psychology. Lloyd is also currently the president of the Northwest C++ User’s Group and an organizer of the Seattle Robotics Society Robothon event.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2020/CultureOfCodeReviews.pptx">Slides</a>
<a class="reference external" href="https://youtu.be/pe3LbfTMX2w">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
June 17th, 2020: Remedial C++ 142020-05-24T00:00:00-07:002020-05-24T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2020-05-24:/June-2020.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM …</span></div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">NWCPP</span> <span class="caps">MEETINGS</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM</span> <span class="caps">PERFORMS</span> <span class="caps">IF</span> <span class="caps">EVERYONE</span> <span class="caps">STREAMS</span> <span class="caps">VIDEO</span>, <span class="caps">THIS</span> <span class="caps">WOULD</span> <span class="caps">BE</span></div>
<div class="line"><span class="caps">NICE</span> <span class="caps">TO</span> <span class="caps">HAVE</span> <span class="caps">IF</span> <span class="caps">POSSIBLE</span> <span class="caps">BUT</span> <span class="caps">PLEASE</span> <span class="caps">BE</span> <span class="caps">PREPARED</span> <span class="caps">TO</span> <span class="caps">TURN</span> <span class="caps">YOUR</span> <span class="caps">VIDEO</span> <span class="caps">OFF</span></div>
<div class="line"><span class="caps">IF</span> <span class="caps">IT</span> <span class="caps">TURNS</span> <span class="caps">OUT</span> <span class="caps">TO</span> <span class="caps">BE</span> <span class="caps">CONSUMING</span> <span class="caps">TOO</span> <span class="caps">MUCH</span> <span class="caps">BANDWIDTH</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 17th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_N2I5NzhkNWQtYzM3Yi00NTA1LTgxMjItOWYzMjU3ZGVlZDU1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Join Microsoft Teams Meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 917 017 259#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Remedial C++ 14</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This is the sequel to the Remedial C++ 11 talk. Come to see what new features we got with C++14 that were not available before.</p>
<p>Here’s a link in case you want to watch the <a class="reference external" href="https://www.youtube.com/watch?v=i1zNN_U6tEQ&feature=youtu.be">Remedial C++ 11</a> talk beforehand.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Like the man in black said: “No one of consequence”. Peter Williamson has been programming professionally for 30 years at companies like Boeing, Microsoft, Amazon, and Google. He’s been using C++ for most of that time, and attending <span class="caps">NWCPP</span> off and on since the 90’s. He has been known to talk about himself in third person.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2020/RemedialCpp14.pdf">Slides</a>
<a class="reference external" href="https://youtu.be/x1BSIUmK-6M">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 20th, 2020: Binary Object Serialization using Template Argument Deduction2020-04-19T00:00:00-07:002020-04-19T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2020-04-19:/May-2020.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">MAY</span> <span class="caps">NWCPP</span> <span class="caps">MEETING</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE …</span></div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">MAY</span> <span class="caps">NWCPP</span> <span class="caps">MEETING</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>.</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM</span> <span class="caps">PERFORMS</span> <span class="caps">IF</span> <span class="caps">EVERYONE</span> <span class="caps">STREAMS</span> <span class="caps">VIDEO</span>, <span class="caps">THIS</span> <span class="caps">WOULD</span> <span class="caps">BE</span></div>
<div class="line"><span class="caps">NICE</span> <span class="caps">TO</span> <span class="caps">HAVE</span> <span class="caps">IF</span> <span class="caps">POSSIBLE</span> <span class="caps">BUT</span> <span class="caps">PLEASE</span> <span class="caps">BE</span> <span class="caps">PREPARED</span> <span class="caps">TO</span> <span class="caps">TURN</span> <span class="caps">YOUR</span> <span class="caps">VIDEO</span> <span class="caps">OFF</span></div>
<div class="line"><span class="caps">IF</span> <span class="caps">IT</span> <span class="caps">TURNS</span> <span class="caps">OUT</span> <span class="caps">TO</span> <span class="caps">BE</span> <span class="caps">CONSUMING</span> <span class="caps">TOO</span> <span class="caps">MUCH</span> <span class="caps">BANDWIDTH</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 20th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_N2I5NzhkNWQtYzM3Yi00NTA1LTgxMjItOWYzMjU3ZGVlZDU1%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Join Microsoft Teams Meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 917 017 259#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Binary Object Serialization using Template Argument Deduction (and pseudo-Reflection)</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There are many mechanisms for a program to persist data. Most are slow, bulky, and inflexible, that typically store flat data, in huge unsecure text files and are not able to save complex data structures.</p>
<p>I will present a minimally intrusive technique for serializing data, in a binary format, that is lean and flexible (schema free). When storing, it can deduce the data types. When loading it will dynamically create complex data structures. This is done through Template Argument Deduction and a technique represtivie of reflection. Reflection is unavailable as language feature being that it has deferred until C++23 or C++26. This is compliant with C++14 or later, platform agnostic and marco free.</p>
<p>In addition to archiving data to files, it has an extensible interface for bidirectional communication between processes and/or remote computers, via sockets. Techniques will be demonstrated to minimize storage footprint and secure archived data.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Chris Ryan, Classic C <span class="amp">&</span> Modern C++ Junkie Extraordinaire, A self-actualized geek.
I was classically educated in Hardware and Software Engineering. After college, I mostly used ‘C’, until the mid-early 90’s when C++ became my primarily language. I have worked with many companies in engineering, science, medical, robotics and business domains, as an <span class="caps">FTE</span> and a contractor, from doing firmware <span class="amp">&</span> embedded projects to extremely complex massive systems. I frequently work on number crunching engines and low-level communication protocols. I have done everything from graphical/pixel pushing/user interfaces to drivers to database systems. I have worked on CppCon as a volunteer staff member. I manage multiple technical groups on LinkedIn, mostly around C, C++ and embedded.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Sorry no sponsor this month.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://github.com/ChrisRyan98008/NwCpp-May2020">Code</a>
<a class="reference external" href="/talks/2020/BinaryObjectSerialization.pdf">Slides</a>
<a class="reference external" href="https://youtu.be/sL5DvtsriTY">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 15th, 2020: Teaching C++ in the Applied Sciences2020-04-01T00:00:00-07:002020-04-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2020-04-01:/April-2020.html<div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">APRIL</span> <span class="caps">NWCPP</span> <span class="caps">MEETING</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>. <span class="caps">THIS</span> <span class="caps">IS</span> <span class="caps">THE</span> <span class="caps">FIRST</span> <span class="caps">TIME</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">DOING</span> A</div>
<div class="line"><span class="caps">MEETING</span> <span class="caps">THIS</span> <span class="caps">WAY</span> <span class="caps">SO</span> <span class="caps">MAYBE</span> <span class="caps">BE</span> A …</div></div></div><div class="section" id="new-meeting-location-on-line">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span> - <span class="caps">ON</span> <span class="caps">LINE</span>!!!</h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">HOLDING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">APRIL</span> <span class="caps">NWCPP</span> <span class="caps">MEETING</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">USING</span> <span class="caps">MICROSOFT</span> <span class="caps">TEAMS</span>. <span class="caps">PLEASE</span> <span class="caps">USE</span> <span class="caps">THE</span> <span class="caps">LINK</span></div>
<div class="line"><span class="caps">BELOW</span> <span class="caps">TO</span> <span class="caps">JOIN</span> <span class="caps">THE</span> <span class="caps">MEETING</span>. <span class="caps">THIS</span> <span class="caps">IS</span> <span class="caps">THE</span> <span class="caps">FIRST</span> <span class="caps">TIME</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">DOING</span> A</div>
<div class="line"><span class="caps">MEETING</span> <span class="caps">THIS</span> <span class="caps">WAY</span> <span class="caps">SO</span> <span class="caps">MAYBE</span> <span class="caps">BE</span> A <span class="caps">BIT</span> <span class="caps">EARLY</span> <span class="caps">TO</span> <span class="caps">HELP</span> <span class="caps">WORK</span> <span class="caps">OUT</span> <span class="caps">ANY</span> <span class="caps">KINKS</span>!</div>
<div class="line"><br /></div>
<div class="line"><span class="caps">DURING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">TO</span> <span class="caps">MUTE</span> <span class="caps">YOUR</span> <span class="caps">MICROPHONE</span>. <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">HAVE</span></div>
<div class="line"><span class="caps">TO</span> <span class="caps">SEE</span> <span class="caps">HOW</span> <span class="caps">THE</span> <span class="caps">SYSTEM</span> <span class="caps">PERFORMS</span> <span class="caps">IF</span> <span class="caps">EVERYONE</span> <span class="caps">STREAMS</span> <span class="caps">VIDEO</span>, <span class="caps">THIS</span> <span class="caps">WOULD</span> <span class="caps">BE</span></div>
<div class="line"><span class="caps">NICE</span> <span class="caps">TO</span> <span class="caps">HAVE</span> <span class="caps">IF</span> <span class="caps">POSSIBLE</span> <span class="caps">BUT</span> <span class="caps">PLEASE</span> <span class="caps">BE</span> <span class="caps">PREPARED</span> <span class="caps">TO</span> <span class="caps">TURN</span> <span class="caps">YOUR</span> <span class="caps">VIDEO</span> <span class="caps">OFF</span></div>
<div class="line"><span class="caps">IF</span> <span class="caps">IT</span> <span class="caps">TURNS</span> <span class="caps">OUT</span> <span class="caps">TO</span> <span class="caps">BE</span> <span class="caps">CONSUMING</span> <span class="caps">TOO</span> <span class="caps">MUCH</span> <span class="caps">BANDWIDTH</span>.</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 15th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">On Line Using Microsoft Teams</div>
<div class="line"><a class="reference external" href="https://teams.microsoft.com/l/meetup-join/19%3ameeting_NGFiMWRlZjAtZGQ1Zi00MjU1LWIwMjEtMzZjZTE2MTFhZDI3%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%221f061217-57cb-47e1-90bd-586015d9c2ff%22%7d">Join Microsoft Teams Meeting</a></div>
<div class="line">+1 323-849-4874 United States, Los Angeles (Toll)</div>
<div class="line">Conference <span class="caps">ID</span>: 835 975 189#</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Teaching C++ in the Applied Sciences</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Although C++ was once dominant in courses such as numerical analysis, financial engineering, and computational physics, university and graduate instruction in the applied sciences has gravitated more and more toward the convenience of languages such as Python, Matlab, and R. While these languages offer incredible advantages over general purpose languages for rapidly implementing quantitative applications, there often comes a point where students hit a brick wall in terms of performance, often obligating them to restructure interpreted code with more complexity for large clusters in order to realize performance gains that can be obtained in parallel execution.</p>
<p>Meanwhile, students wishing to advance their knowledge of C++ with the goal of writing more performant numerical code are finding their options limited to classes taught in computer science departments that are more concerned with building data structures and search algorithms rather than using those that exist within the Standard Library in order to solve real world problems.</p>
<p>This talk maps out a 10-week academic quarter course that could be geared for students in the applied sciences, where the emphasis is on using features that already exist in modern post-C++11, along with powerful and widely-used open source mathematical libraries now available in C++. While the syllabus is based on an actual class taught by the speaker to graduate students in quantitative finance, the intent is to show that the fundamental concepts are common enough to other computational fields to allow students to quickly leverage the power of C++ in solving actual problems, rather than to burden them with minute details of raw pointers, legacy C constructs, string formatting, and search algorithm design that often consume a typical introductory college C++ course and discourage scientific programmers.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Daniel Hanson spent over 25 years in quantitative development in finance, primarily with C++ implementation of option pricing and portfolio risk models, and library development. He now holds a full-time lecturer position in the Department of Applied Mathematics at the University of Washington, teaching quantitative development courses in the Computational Finance <span class="amp">&</span> Risk Management (<span class="caps">CFRM</span>) MSc program. This includes intermediate and advanced classes in computational C++, and advising students in Google Summer of Code projects involving mathematical models implementation with C++ and R.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>CyberData Corporation was founded by Lloyd Moore in 1996. CyberData specializes in providing custom software and hardware solutions for robotics, machine vision, embedded systems and industrial automation applications. Our mission is to create high quality, innovative technology for the global marketplace.</p>
<p>CyberData also conducts internal research into the areas of robotics, machine vision and artificial intelligence. Specific technologies are then either licensed, sold as products or released as open source, depending on the specific nature and goals of the project. Technological developments are also provided directly to our clients through our consulting services.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2020/ThoughtsOnTeachingCpp_2020_04_15.pdf">Slides</a>
<a class="reference external" href="https://www.youtube.com/watch?v=wReOumr_K6U">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 18th, 2020: Teaching C++ in the Applied Sciences2020-03-01T00:00:00-08:002020-03-01T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2020-03-01:/March-2020.html<div class="section" id="canceled">
<h2><span class="caps">CANCELED</span></h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">CANCELLING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">MARCH</span> <span class="caps">NWCPP</span> <span class="caps">MEETING</span>. <span class="caps">STAY</span> <span class="caps">TUNED</span> <span class="caps">AND</span> <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">GET</span> <span class="caps">THIS</span> <span class="caps">RESCHEDULED</span>. <span class="caps">IF</span> <span class="caps">YOU</span></div>
<div class="line"><span class="caps">ARE</span> <span class="caps">REALLY</span> <span class="caps">NEEDING</span> A C++ <span class="caps">PRESENTATION</span>, <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">THAT</span> <span class="caps">THERE</span> <span class="caps">ARE</span></div>
<div class="line"><span class="caps">PLENTY</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">FROM</span> <span class="caps">THE</span> CppCon <span class="caps">AND</span> CppNow!! <span class="caps">EVERYONE</span> <span class="caps">PLEASE</span> <span class="caps">STAY</span> <span class="caps">SAFE</span></div>
<div class="line"><span class="caps">AND …</span></div></div></div><div class="section" id="canceled">
<h2><span class="caps">CANCELED</span></h2>
<div class="line-block">
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">CONCERNS</span> <span class="caps">SURROUNDING</span> <span class="caps">THE</span> <span class="caps">COVID</span>-19 <span class="caps">OUTBREAK</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">CANCELLING</span> <span class="caps">THE</span></div>
<div class="line"><span class="caps">MARCH</span> <span class="caps">NWCPP</span> <span class="caps">MEETING</span>. <span class="caps">STAY</span> <span class="caps">TUNED</span> <span class="caps">AND</span> <span class="caps">WE</span>’<span class="caps">LL</span> <span class="caps">GET</span> <span class="caps">THIS</span> <span class="caps">RESCHEDULED</span>. <span class="caps">IF</span> <span class="caps">YOU</span></div>
<div class="line"><span class="caps">ARE</span> <span class="caps">REALLY</span> <span class="caps">NEEDING</span> A C++ <span class="caps">PRESENTATION</span>, <span class="caps">PLEASE</span> <span class="caps">REMEMBER</span> <span class="caps">THAT</span> <span class="caps">THERE</span> <span class="caps">ARE</span></div>
<div class="line"><span class="caps">PLENTY</span> <span class="caps">ON</span> <span class="caps">LINE</span> <span class="caps">FROM</span> <span class="caps">THE</span> CppCon <span class="caps">AND</span> CppNow!! <span class="caps">EVERYONE</span> <span class="caps">PLEASE</span> <span class="caps">STAY</span> <span class="caps">SAFE</span></div>
<div class="line"><span class="caps">AND</span> <span class="caps">HEALTHY</span>!!</div>
</div>
</div>
<div class="section" id="new-meeting-location">
<h2><span class="caps">NEW</span> <span class="caps">MEETING</span> <span class="caps">LOCATION</span>!!!</h2>
<div class="line-block">
<div class="line">The March <span class="caps">NWCPP</span> meeting will be held in our new meeting location</div>
<div class="line">in Building 20 of the Microsoft Redmond Campus!! If you go to the</div>
<div class="line">old location the pizza (or anything else) won’t be there!!!!</div>
</div>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 18th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1115, Building 20,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+20/@47.643754,-122.1334963,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d71fb65cf23:0xac5670ed7fd8bcb4!8m2!3d47.6437504!4d-122.1313076">Map to building 20</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Teaching C++ in the Applied Sciences</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Daniel Hanson spent over 25 years in quantitative development in finance, primarily with C++ implementation of option pricing and portfolio risk models, and library development. He now holds a full-time lecturer position in the Department of Applied Mathematics at the University of Washington, teaching quantitative development courses in the Computational Finance <span class="amp">&</span> Risk Management (<span class="caps">CFRM</span>) MSc program. This includes intermediate and advanced classes in computational C++, and advising students in Google Summer of Code projects involving mathematical models implementation with C++ and R.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>CyberData Corporation was founded by Lloyd Moore in 1996. CyberData specializes in providing custom software and hardware solutions for robotics, machine vision, embedded systems and industrial automation applications. Our mission is to create high quality, innovative technology for the global marketplace.</p>
<p>CyberData also conducts internal research into the areas of robotics, machine vision and artificial intelligence. Specific technologies are then either licensed, sold as products or released as open source, depending on the specific nature and goals of the project. Technological developments are also provided directly to our clients through our consulting services.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Feb 19th, 2020: DigiPen Senior Research Projects2020-01-18T00:00:00-08:002020-01-18T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2020-01-18:/Feb-2020.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Feb 19th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1087, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>DigiPen Senior Research Projects</p>
</div>
<div class="section" id="abstracts">
<h2>Abstracts</h2>
<p>This talk will feature a collection of senior research projects, presented by DigiPen students:</p>
<p>Templatized Lua Binding by …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Feb 19th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1087, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>DigiPen Senior Research Projects</p>
</div>
<div class="section" id="abstracts">
<h2>Abstracts</h2>
<p>This talk will feature a collection of senior research projects, presented by DigiPen students:</p>
<p>Templatized Lua Binding by Lux Cardell:
In order to integrate Lua scripting into a C++ project, each function
accessible to Lua must have a binding function. For a custom game engine
project, I bound Lua to allow our design team to iterate and design more
efficiently. To this end I wrote a set of templates that generated
binding functions automatically based on the data types the functions
required. These templates were designed to encapsulate the entirety of
the binding process, from popping arguments off the Lua stack to
returning an arbitrary number of values. I used variadic templates to
allow the template to handle any function signature. In order to interface
between dynamic and strict typing, I wrote a generic class that wrapped the basic types from Lua and the user-defined types commonly used throughout the engine.</p>
<p>TypeRT by Michael-Paul Moore:
In order to develop a complex C++ simulation, many collections of data
must be authored to control behavior during execution. Much of this is
driven by the creation of different classes that will each require
similar sets of utilities in order to effectively function. Utilities
such as: Points of Access, serialization, classification, etc. While
engineers can facilitate this functionality on a per class basis, this
is time consuming and can often result in duplicated logic. Furthermore,
while native representation is required during execution, by allowing
the class definitions to reside outside of code we can gain the
following benefits:
• Accessibility to non-engineers without compiler access
• Easily extend feature set on data usage inside and outside the main
toolset
• Since these class definitions are outside the toolset, they do not
require code to be built
• Further ensures abstraction from your data from different
functionalities
To solve these problems we want to utilize a single flexible wrapper
class, referred to as TypeRT, to centralize interactions for game data.
This creates an environment in which a given functionality only needs to
be implemented once and then gained across multiple data types. In the
actual talk details will then be given on the TypeRT implementation.
Process by which existing classes can be ported will be explained.</p>
<p>Transforming and Reducing Workloads: C++17 Parallel Algorithms for Rapid Prototyping by Louis Tan:
C++17 introduced parallel execution policies for algorithms, and a versatile new std::transform_reduce algorithm for taking advantage of the feature. These both allow programmers to spend less time on the implementation details of dispatching parallel workloads, and more time on parallel design through rapid prototyping and iteration. In this talk, we will explore the use case of parallelizing a physics engine for performance, and how std::transform_reduce was used as a catch-all solution to accomplish this.</p>
</div>
<div class="section" id="speaker-bios">
<h2>Speaker Bios</h2>
<p>Lux Cardell:
I’m a fourth-year student in the Bachelor’s of
Science in Computer Science program at DigiPen. I’ve worked on game
engines for the past three years, and in the last year on a physics
project calculating the binding energies of hydrogen in weak magnetic
fields. Additionally, I competed this year in the International
Collegiate Programming Contest, representing DigiPen in the first
division. In the game engine I wrote in my third year, I integrated Lua
scripting to facilitate a team of designers in creating a game. As the
process of writing binding functions for Lua is largely repetitive but
highly function-specific, I found a way to genericize the process of
writing binding libraries using C++ templates.</p>
<p>Michael-Paul Moore:
I am a Senior at DigiPen institute of
technology and currently work as an Associate Software Engineer at
Monolith Productions.</p>
<p>Louis Tan:
Louis is an avid tinkerer and recent graduate who got his start in C++ developing game mods. He believes in the value of a diverse problem-solving toolkit and has gathered experience in multiple areas not limited to game development, including graphics, physics, reverse engineering and <span class="caps">AI</span>. He has also been known to engage in template metaprogramming for amusement, sometimes just to make certain people on the internet very, very angry.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Thanks to Daniel Hanson of the <span class="caps">UW</span> Department of Applied Mathematics - Please see his slide deck below.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=rL09-tOvbT8">Video</a>
<a class="reference external" href="/talks/2020/QuantDevAt_UW_AMATH.pdf"><span class="caps">UW</span> Quant Development Slides</a>
<a class="reference external" href="/talks/2020/LuaBinding.pptx">Lua Binding Slides</a>
<a class="reference external" href="/talks/2020/TransformingWorkloads.pptx">Transforming Workloads Slides</a>
<a class="reference external" href="/talks/2020/TypeRuntime.pptx">TypeRT Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="https://www.facebook.com/groups/344125680930/">Facebook Group</a></li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Jan 15th, 2020: DigiPen Senior Research Projects2019-12-31T00:00:00-08:002019-12-31T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2019-12-31:/Jan-2020.html<div class="section" id="canceled">
<h2><span class="caps">CANCELED</span></h2>
<div class="line-block">
<div class="line">Jan 15th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">POOR</span> <span class="caps">WEATHER</span> <span class="caps">CONDITIONS</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">CANCELING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">TONIGHT</span></div>
<div class="line"><span class="caps">EVERYONE</span> <span class="caps">PLEASE</span> <span class="caps">STAY</span> <span class="caps">SAFE</span>!! <span class="caps">WE</span> <span class="caps">WILL</span> <span class="caps">RESCHEDULE</span> <span class="caps">AS</span> <span class="caps">SOON</span> <span class="caps">AS</span> <span class="caps">POSSIBLE</span>.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>DigiPen Senior Research Projects</p>
</div>
<div class="section" id="abstracts">
<h2>Abstracts</h2>
<p>This talk will feature a collection of senior research projects, presented by DigiPen students …</p></div><div class="section" id="canceled">
<h2><span class="caps">CANCELED</span></h2>
<div class="line-block">
<div class="line">Jan 15th, 2020 at 7:00 <span class="caps">PM</span></div>
<div class="line"><span class="caps">DUE</span> <span class="caps">TO</span> <span class="caps">POOR</span> <span class="caps">WEATHER</span> <span class="caps">CONDITIONS</span> <span class="caps">WE</span> <span class="caps">ARE</span> <span class="caps">CANCELING</span> <span class="caps">THE</span> <span class="caps">MEETING</span> <span class="caps">TONIGHT</span></div>
<div class="line"><span class="caps">EVERYONE</span> <span class="caps">PLEASE</span> <span class="caps">STAY</span> <span class="caps">SAFE</span>!! <span class="caps">WE</span> <span class="caps">WILL</span> <span class="caps">RESCHEDULE</span> <span class="caps">AS</span> <span class="caps">SOON</span> <span class="caps">AS</span> <span class="caps">POSSIBLE</span>.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>DigiPen Senior Research Projects</p>
</div>
<div class="section" id="abstracts">
<h2>Abstracts</h2>
<p>This talk will feature a collection of senior research projects, presented by DigiPen students:</p>
<p>Templatized Lua Binding by Lux Cardell:
In order to integrate Lua scripting into a C++ project, each function
accessible to Lua must have a binding function. For a custom game engine
project, I bound Lua to allow our design team to iterate and design more
efficiently. To this end I wrote a set of templates that generated
binding functions automatically based on the data types the functions
required. These templates were designed to encapsulate the entirety of
the binding process, from popping arguments off the Lua stack to
returning an arbitrary number of values. I used variadic templates to
allow the template to handle any function signature. In order to interface
between dynamic and strict typing, I wrote a generic class that wrapped the basic types from Lua and the user-defined types commonly used throughout the engine.</p>
<p>TypeRT by Michael-Paul Moore:
In order to develop a complex C++ simulation, many collections of data
must be authored to control behavior during execution. Much of this is
driven by the creation of different classes that will each require
similar sets of utilities in order to effectively function. Utilities
such as: Points of Access, serialization, classification, etc. While
engineers can facilitate this functionality on a per class basis, this
is time consuming and can often result in duplicated logic. Furthermore,
while native representation is required during execution, by allowing
the class definitions to reside outside of code we can gain the
following benefits:
• Accessibility to non-engineers without compiler access
• Easily extend feature set on data usage inside and outside the main
toolset
• Since these class definitions are outside the toolset, they do not
require code to be built
• Further ensures abstraction from your data from different
functionalities
To solve these problems we want to utilize a single flexible wrapper
class, referred to as TypeRT, to centralize interactions for game data.
This creates an environment in which a given functionality only needs to
be implemented once and then gained across multiple data types. In the
actual talk details will then be given on the TypeRT implementation.
Process by which existing classes can be ported will be explained.</p>
<p>Experiences of a Technical Director and Gameplay programmer by Samuel Schimmel:
Discussing of my experiences both as the technical director and gameplay programmer of a <span class="caps">UE4</span> C++ project, and as the <span class="caps">UE4</span> C++ gameplay programming <span class="caps">TA</span>. The slides for my workshop, footage of the game, and commentary on various gameplay features I’ve implemented using <span class="caps">UE4</span> C++, can be found here: <a class="reference external" href="https://www.samuelschimmel.com/unreal/">https://www.samuelschimmel.com/unreal/</a>.</p>
</div>
<div class="section" id="speaker-bios">
<h2>Speaker Bios</h2>
<p>Lux Cardell:
I’m a fourth-year student in the Bachelor’s of
Science in Computer Science program at DigiPen. I’ve worked on game
engines for the past three years, and in the last year on a physics
project calculating the binding energies of hydrogen in weak magnetic
fields. Additionally, I competed this year in the International
Collegiate Programming Contest, representing DigiPen in the first
division. In the game engine I wrote in my third year, I integrated Lua
scripting to facilitate a team of designers in creating a game. As the
process of writing binding functions for Lua is largely repetitive but
highly function-specific, I found a way to genericize the process of
writing binding libraries using C++ templates.</p>
<p>Michael-Paul Moore:
I am a Senior at DigiPen institute of
technology and currently work as an Associate Software Engineer at
Monolith Productions.</p>
<p>Samuel Schimmel:
I was the technical director and gameplay programmer of the student game Perdition, which was selected to represent DigiPen at <span class="caps">PAX</span> West 2019, and is now available on Steam. Perdition was made in Unreal Engine 4, which allows developers to write gameplay code in C++ or using a proprietary visual scripting language called Blueprint. Despite the popularity and accessibility of Blueprint, I chose to write 100% of Perdition’s gameplay code in C++ for performance and complexity management reasons. I’m now the junior project class’ <span class="caps">UE4</span> C++ gameplay programming <span class="caps">TA</span>, and present an annual workshop on <span class="caps">UE4</span> C++ gameplay programming.
My resume can be found here: <a class="reference external" href="https://www.samuelschimmel.com/">https://www.samuelschimmel.com/</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
December 2019: Happy Holidays2019-12-01T00:00:00-08:002019-12-01T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2019-12-01:/Dec-2019.html<div class="section" id="happy-holidays">
<h2>Happy Holidays!!</h2>
<p>Folks, Just a quick reminder that we don’t have a meeting in December. Happy Holidays and we’ll
see you all in January 2020!!</p>
</div>
Nov 20th, 2019: A Unifying Abstraction for Async in C++2019-10-26T00:00:00-07:002019-10-26T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-10-26:/Nov-2019.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Nov 20th, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>A Unifying Abstraction for Async in C++</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Async in C++ is in a sad state. The standard tools — promises, futures, threads, locks …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Nov 20th, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>A Unifying Abstraction for Async in C++</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Async in C++ is in a sad state. The standard tools — promises, futures, threads, locks, and std::async — are either inefficient, broken, or both. Even worse, there is no standard way to say _where_ work should happen. Parallel algorithms, heterogeneous computing, networking <span class="amp">&</span> <span class="caps">IO</span>, reactive streams, and more: all critically important foundational technologies that await a standard abstraction for asynchronous computation.</p>
<p>In this talk, Eric Niebler digs into the Standard Committee’s search for the basis operations that underpin all asynchronous computation: the long-sought Executor concept. The latest iteration of Executors is based on the Sender/Receiver programming model, which provides a generalization of many existing paradigms in asynchronous programming, including future/promise, message passing, continuation passing, channels, and the observer pattern from reactive programming. It also has surprising and deep connections to coroutines, which further demonstrates the model’s potential to be a truly unifying abstraction for asynchronous programming in C++20 and beyond.</p>
<p>Eric will present the short-term and long-term directions for Executors in <span class="caps">ISO</span> Standard C++, illustrating the design by walking through several implementation examples. They will talk about the direct connection between coroutines and the Sender/Receiver model and discuss what it means for the future of asynchronous APIs in C++. Finally, he will cover how the restrictions imposed by the Executors model should affect the way you write code today so your code is ready for the next big revolution in parallel and concurrent C++ programming.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Eric Niebler has been doing C++ professionally for the past 20 years, first for Microsoft, then as an independent consultant. He spent several years bringing Ranges to the Standard Library, in part with the generous help of the Standard C++ Foundation. Today, He is working at Facebook searching for the foundational abstractions of asynchronous programming. Ask him about the future of the Standard Library or about range-v3 or about executors and sender/receiver.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank John Galt (<a class="reference external" href="https://j-galt.com/">https://j-galt.com/</a>) and Triple Crown (<a class="reference external" href="https://www.tripleco.com/find-tech-jobs/">https://www.tripleco.com/find-tech-jobs/</a>) for sponsoring our pizza this month!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/GGCP92GF1ss">Video</a>
<a class="reference external" href="/talks/2019/NWCPP_Universal_Async_Abstraction.pptx">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Oct 16th, 2019: D at 20 : Hits and Misses2019-09-22T00:00:00-07:002019-09-22T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-09-22:/Oct-2019.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Oct 16th, 2019 at 7:30 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>D at 20 : Hits and Misses</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Work began on the D programming language 20 years ago. A huge part of
language design …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Oct 16th, 2019 at 7:30 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>D at 20 : Hits and Misses</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Work began on the D programming language 20 years ago. A huge part of
language design is looking at the past for what worked and what
didn’t, and divining future trajectories so the language can be where
the ball lands. D has its share of strikes and home runs. I’ll
be talking about a few of each, and lessons learned the hard way.
I’ll pontificate a bit about where programming languages and D are headed.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several other languages. He’s an expert in all areas of compiler technology, including front ends, optimizers, code generation, interpreter engines and runtime libraries. Walter regularly writes articles about compilers and programming, is known for
engaging and informative presentations, and provides training in compiler development techniques. Many are surprised to discover that Walter is also the creator of the wargame Empire, which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Zensa a mobile transformation company enabling business productivity for mid-size enterprises (250-10,000 employees). We develop line of business apps to support key business processes in order to enhance productivity, business to employee (<span class="caps">B2E</span>) engagement, revenue, etc., across mobile platforms. We are Microsoft and Amazon Certified partner and work closely with facebook as well.
We are always on the look out for smart software engineers to join our team</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=p22MM1wc7xQ">Video</a> |
<a class="reference external" href="/talks/2019/Dat20.pdf">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Sept 18th, 2019: NO MEETING THIS MONTH2019-09-02T00:00:00-07:002019-09-02T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-09-02:/Sept-2019.html<div class="section" id="title">
<h2>Title</h2>
<p><span class="caps">NO</span> <span class="caps">MEETING</span> <span class="caps">THIS</span> <span class="caps">MONTH</span>!!!</p>
<p>Our normal meeting time this month overlaps with CppCon <span class="caps">AND</span> our speaker for the alternate meeting time had a last minute conflict. Because of these we’ll skip the meeting this month.</p>
</div>
<div class="section" id="alternatives">
<h2>Alternatives</h2>
<p>Also if you are <span class="caps">REALLY</span> looking for your C++ fix this month …</p></div><div class="section" id="title">
<h2>Title</h2>
<p><span class="caps">NO</span> <span class="caps">MEETING</span> <span class="caps">THIS</span> <span class="caps">MONTH</span>!!!</p>
<p>Our normal meeting time this month overlaps with CppCon <span class="caps">AND</span> our speaker for the alternate meeting time had a last minute conflict. Because of these we’ll skip the meeting this month.</p>
</div>
<div class="section" id="alternatives">
<h2>Alternatives</h2>
<p>Also if you are <span class="caps">REALLY</span> looking for your C++ fix this month here are some on-line resources to keep you going:</p>
<p><a class="reference external" href="https://cppcon.org/">CppCon Website</a>
<a class="reference external" href="http://cppnow.org/history/2019/talks/">CppNow Videos</a>
<a class="reference external" href="https://cppcast.com/">CppCast</a></p>
<p>Enjoy and we’ll see you in October at our normal meeting time!</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Aug 21th, 2019: Darwin: a Neuroevolution and Evolutionary Algorithms framework2019-08-01T00:00:00-07:002019-08-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-08-01:/Aug-2019.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Aug 21st, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Darwin: a Neuroevolution and Evolutionary Algorithms framework</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Deep Learning is an exciting field that created a multi-billion industry. But it’s not …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">Aug 21st, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Darwin: a Neuroevolution and Evolutionary Algorithms framework</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Deep Learning is an exciting field that created a multi-billion industry. But it’s not the only approach to Machine Learning (<span class="caps">ML</span>) and <span class="caps">AI</span>, nature-inspired algorithms are making a comeback. There’s a renewed interest in Evolutionary Algorithms, and Neuroevolution in particular, yet there are relatively few modern libraries and frameworks compared with Deep Learning and Reinforcement Learning.</p>
<p>Darwin is an open source C++ framework (<a class="reference external" href="https://github.com/tlemo/darwin">https://github.com/tlemo/darwin</a>) intended to make <span class="caps">EA</span> <span class="amp">&</span> Neuroevolution experiments easy, quick and fun. It provides building blocks, samples and tooling to avoid the repetitive (and potentially complex) scaffolding required to research new ideas.</p>
<p>In this talk I’ll introduce Evolutionary Algorithms, go through a quick overview of the Darwin Framework and I’ll share a few engineering lessons learned from designing and implementing it.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>By day, Leonard Mosescu is a compiler engineer, having worked on various parts of the Microsoft Visual C++ toolchain, then on the Android runtime and dev tools for Google, and currently working on the Nvidia <span class="caps">CUDA</span> toolchain. By night, he’s pursuing an old interest in <span class="caps">AI</span> and Evolutionary Algorithms.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>CyberData Corporation was founded by Lloyd Moore in 1996. CyberData specializes in providing custom software and hardware solutions for robotics, machine vision, embedded systems and industrial automation applications. Our mission is to create high quality, innovative technology for the global marketplace.</p>
<p>CyberData also conducts internal research into the areas of robotics, machine vision and artificial intelligence. Specific technologies are then either licensed, sold as products or released as open source, depending on the specific nature and goals of the project. Technological developments are also provided directly to our clients through our consulting services.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/b3H_6fQrTas">Video</a> |
<a class="reference external" href="https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fpresentation%2Fd%2F13ppNNKvsLxe4W_CgGO8THQArsma8colxh-cEzRWkUCE%2Fedit%3Fusp%3Dsharing&data=02%7C01%7C%7C6d3ceb6587b7448aedda08d72770b42e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637021237320886295&sdata=bW3lEG%2Fo3%2FPnjknIym%2BaDBGA4q4ndB4qz9H9EjOkp8I%3D&reserved=0">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
July 17th, 2019: EverCrypt: a no-excuses, industrial-grade cryptographic library2019-07-01T00:00:00-07:002019-07-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-07-01:/July-2019.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 17th, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1085, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>EverCrypt: a no-excuses, industrial-grade cryptographic library, with full verification</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Project Everest is a large, multi-year, collaborative research effort spread between Microsoft Research …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 17th, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1085, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>EverCrypt: a no-excuses, industrial-grade cryptographic library, with full verification</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Project Everest is a large, multi-year, collaborative research effort spread between Microsoft Research, Carnegie Mellon, <span class="caps">INRIA</span> and University of Edinburgh. The aim of Project Everest is to deploy formally verified implementations of the <span class="caps">TLS</span> protocol, which now powers the majority of online communications. Project Everest is about half-way through its projected five year lifespan.</p>
<p>After a brief presentation of Everest at large, I will focus on EverCrypt, the cryptographic provider that powers our <span class="caps">TLS</span> implementation, offering a variety of cryptographic algorithms written in a mixture of C and assembly. I will detail the various techniques we used, the verification APIs we offer, and the state-of-the art performance we obtain. EverCrypt is suitable for use by verified and unverified clients alike, using an agile and multiplexing <span class="caps">API</span>. Parts of EverCrypt have been deployed, among others, in Firefox, the Wireguard <span class="caps">VPN</span>, Windows, and the Tezos blockchain.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Jonathan Protzenko is a Researcher in the RiSE group at Microsoft Research Redmond, which he joined in Fall 2014.</p>
<p>Jonathan’s research focuses on formally verifying critical software, i.e. showing with mathematical certainty that the software has no bugs and exhibits the intended behavior. To that end, I use the F* programming language, and its new Low* toolchain. It allows compiling a subset of F* programs to C for integration into existing software ecosystems. Code written in Low* and compiled by KReMLin has been integrated into Windows, Firefox, mbedTLS, and the Tezos blockchain, among others.</p>
<p>Jonathan’s flagship project is EverCrypt, a complete cryptographic library that offers abstraction, multiplexing, agility and <span class="caps">CPU</span> auto-detection, verified in F*, compiled to C and assembly. My work is part of the larger Everest Project, an ambitious research effort spanning three continents, five institutions and twelve timezones.</p>
<p>In his spare time, he maintains several open-source projects, including a Thunderbird addon that is now the 4th most-used addon with 200,000 users.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p><span class="dquo">“</span>Molekule is a San Francisco-based science and clean technology company that has developed a fundamentally new approach to clean polluted air. While current air purifiers try to catch pollutants in filters, Molekule uses nanotechnology to break down and completely eliminate pollutants on a molecular level. Its new technology is the only one able to destroy the full spectrum of pollutants of allergens, bacteria, viruses, mold, and airborne chemicals. The technology was developed over the past 20 years at the University of Florida.
Molekule devices are controlled and connected using modern software design and architecture principles in order to bring the best experience to customers. Firmware for Molekule devices is written in C++ using an actor model approach and highly test driven development focused using test frameworks for hardware in the loop testing as well as basic software unit testing.”</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/9L_ERP5CcHE">Video</a> |
<a class="reference external" href="/talks/2019/EverCrypt.pptx">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
June 19th, 2019: Intro to programming the HyperFlow computational array using C++2019-06-02T00:00:00-07:002019-06-02T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-06-02:/June-2019.html<div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, 7:30 <span class="caps">PM</span> - <span class="caps">ONE</span> <span class="caps">HALF</span> <span class="caps">HOUR</span> <span class="caps">LATER</span> <span class="caps">THAN</span> <span class="caps">NORMAL</span>!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 19th, 2019 at 7:30 <span class="caps">PM</span></div>
<div class="line">Room 1085, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Intro to …</p></div><div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, 7:30 <span class="caps">PM</span> - <span class="caps">ONE</span> <span class="caps">HALF</span> <span class="caps">HOUR</span> <span class="caps">LATER</span> <span class="caps">THAN</span> <span class="caps">NORMAL</span>!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 19th, 2019 at 7:30 <span class="caps">PM</span></div>
<div class="line">Room 1085, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Intro to programming the HyperFlow computational array using C++</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>HyperFlow is a new computing architecture being developed to address the <span class="caps">FPGA</span> and Data Center compute markets that will provide massive performance capabilities of an <span class="caps">FPGA</span> while being nearly as easy to program as a multi-core <span class="caps">CPU</span>. HyperFlow’s primary (only) programming mechanism is C++. This talk will provide an introduction to the architecture, discuss the compilation process (which uses Clang/<span class="caps">LLVM</span>), and provide insights into C++ programming techniques to take advantage of the inherent performance.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Paul Hylander is <span class="caps">CEO</span> at Hyper Analytix and the lead architect of the <span class="caps">VLSI</span> architecture, compiler, and C++ libraries associated with HyperFlow. Paul has been working in the fields of microprocessor design, <span class="caps">SOC</span> design/verification, <span class="caps">VLSI</span> architectures and circuit design, and software development since 1994.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Paul is also our pizza sponsor this month! Thanks Paul!!!!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 15th, 2019: Math and C++: Innovations and Improvement2019-04-28T00:00:00-07:002019-04-28T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-04-28:/May-2019.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 15th, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1087, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Math and C++: Innovations and Improvement</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Between enhancements added to the language beginning with C++11, and some of the mathematical capabilities …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 15th, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1087, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Math and C++: Innovations and Improvement</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Between enhancements added to the language beginning with C++11, and some of the mathematical capabilities in the Boost Libraries, C++ now has a lot to offer quantitative developers. On the other hand, 20 years ago, C++ was the go-to language in computational finance, but demand has cooled in favor of other languages such as C#, Java, and Python.</p>
<p>We will start with a tour of new C++ features that are of immediate benefit to quantitative developers, followed by a quick trip through the good, the bad, and the ugly of Boost math features, and conclude with a discussion on how C++ might restore its luster within computational applications development.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Daniel Hanson spent over 25 years in quantitative development in finance, primarily with C++ implementation of option pricing and portfolio risk models, and library development. He now holds a full-time lecturer position in the Department of Applied Mathematics at the University of Washington, teaching quantitative development courses in the Computational Finance <span class="amp">&</span> Risk Management (<span class="caps">CFRM</span>) MSc program. This includes intermediate and advanced classes in computational C++, and advising students in Google Summer of Code projects involving mathematical models implementation with C++ and R.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Bringing people and positions together. Volt Workforce Solutions has become a premier global staffing resource by remembering that hiring is, in essence, matchmaking. We take an inherently challenging process – finding the right person for each job – and make it more efficient and successful for everyone involved. For almost 70 years, we’ve developed capabilities and services for every aspect of staffing. Whether you’re a job seeker or an employer, we can find the right fit for you.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/s6w7FyCYl5s">Video</a> |
<a class="reference external" href="/talks/2019/MathAndCpp/MathAndCpp.pdf">Slides</a> |
<a class="reference external" href="/talks/2019/MathAndCpp/NWCPP_May_2019.zip">Sample Code</a> |
<a class="reference external" href="/talks/2019/MathAndCpp/VoltOverview.pptx">Sponsor Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 17th, 2019: The Joys and Trials of Writing Cross-Platform C++ Code2019-03-31T00:00:00-07:002019-03-31T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2019-03-31:/April-2019.html<div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, 7:30 <span class="caps">PM</span> - <span class="caps">ONE</span> <span class="caps">HALF</span> <span class="caps">HOUR</span> <span class="caps">LATER</span> <span class="caps">THAN</span> <span class="caps">NORMAL</span>!</p>
<p>As a courtesy to the sponsor and other attendees, we would like to get a headcount so the sponsor can adequately provide food for all attendees. If you have …</p></div><div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, 7:30 <span class="caps">PM</span> - <span class="caps">ONE</span> <span class="caps">HALF</span> <span class="caps">HOUR</span> <span class="caps">LATER</span> <span class="caps">THAN</span> <span class="caps">NORMAL</span>!</p>
<p>As a courtesy to the sponsor and other attendees, we would like to get a headcount so the sponsor can adequately provide food for all attendees. If you have any suggestions on how to improve our communication between us and the sponsor, please feel free to reply or discuss with us at the meeting. We are trying our best to serve the programming language community and would love to hear your input.</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 17th, 2019 at 7:30 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>The Joys and Trials of Writing Cross-Platform C++ Code - Let Tools Help!</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Writing high-quality error-free C++ code is a challenging task, let alone when having to juggle multiple platforms at the same time! In this session we will be exploring the many challenges in cross-platform C++ development and how tools can help. What options do I have if my production environment is different than my dev-box? Can I be as productive when working with remote Linux machines? How can I efficiently build and debug CMake projects and how can I acquire open-source libraries? Come see what Visual Studio 2019, Visual Studio Code, CMake, <span class="caps">WSL</span>, Vcpkg and more have to offer to make your C++ development much easier in this demo-heavy talk.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Marc Goodner is a Program Manager on the C++ team at Microsoft. In that role he is has helped bring C++ support for remote Linux machines, local cross compiling for microcontrollers, and Azure Sphere support to Visual Studio.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Protingent is a Technical Staffing Firm focused in the areas of <span class="caps">IT</span> and Engineering with offices in Bellevue, <span class="caps">WA</span>., Portland, Oregon and the San Francisco Bay area. We have been building relationships with engineers and technology companies since 2002. We consistently strive for excellence in our customer service and ability to provide fulfilling opportunities to engineers, while bringing top talent to companies developing cutting-edge products. Protingent is an employee owned company that believes in the power of positive, long-term relationships.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/9qbH5ckl1Og">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 20th, 2019: Bringing Photoshop to the iPad2019-03-02T00:00:00-08:002019-03-02T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2019-03-02:/March-2019.html<div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">NOTES</span>:
<span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, 7:30 <span class="caps">PM</span> - <span class="caps">ONE</span> <span class="caps">HALF</span> <span class="caps">HOUR</span> <span class="caps">LATER</span> <span class="caps">THAN</span> <span class="caps">NORMAL</span>!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 20th, 2019 at 7:30 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Bringing …</p></div><div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">NOTES</span>:
<span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, 7:30 <span class="caps">PM</span> - <span class="caps">ONE</span> <span class="caps">HALF</span> <span class="caps">HOUR</span> <span class="caps">LATER</span> <span class="caps">THAN</span> <span class="caps">NORMAL</span>!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 20th, 2019 at 7:30 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Bringing Photoshop to the iPad</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A “behind the scenes” look at the challenges to bring one of Adobe’s premier products to mobile devices and the role that C++ developments have played in overcoming them.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Sean Parent is a senior principal scientist and software architect for Adobe’s mobile digital imaging group and Photoshop. Sean has been at Adobe since 1993 when he joined as a senior engineer working on Photoshop and later managed Adobe’s Software Technology Lab. In 2009 Sean spent a year at Google working on Chrome <span class="caps">OS</span> before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2019/photoshop-on-ipad.pdf">Slides</a>
<a class="reference external" href="https://www.youtube.com/watch?v=oQUtu_vD91g">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
February 20th, 2019: Looking under the Hood to Optimize C++ Code2019-02-03T00:00:00-08:002019-02-03T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2019-02-03:/February-2019.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 20rd, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Looking under the Hood to Optimize C++ Code</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many times when learning how to write software, engineers are taught data structures, algorithms …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 20rd, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Looking under the Hood to Optimize C++ Code</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many times when learning how to write software, engineers are taught data structures, algorithms and how to write in a specific language. As they progress through their career, they learn how to make to code more performant through tips and language changes. However, they learn little about how the application interacts with the platform the application needs to perform. This presentation will try to go further into the environment that the application needs to run and gives ideas that any engineer can explore further to get the ultimate performance improvements in their written code.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Brett Searles is the Principal Architect and Developer for Attobotics and is working on a universal compiler for embedded systems. He has also been working on a chip design and programming language for that chipset for a Virtual Surgical Center for the past 20 years. Brett is currently the Vice President of the <span class="caps">NWCPP</span> and the volunteer chair for CppCon.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/SAvzsbkQkY0">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
January 23th, 2019: Remedial C++ 112018-12-27T00:00:00-08:002018-12-27T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2018-12-27:/January-2019.html<div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">NOTES</span>:
<span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, <span class="caps">NOT</span> <span class="caps">OUR</span> <span class="caps">NORMAL</span> <span class="caps">MEETING</span> <span class="caps">CADENCE</span>!!!</p>
<p>We do not have a pizza sponsor for this meeting so please plan accordingly.</p>
<p>If you are interested in helping out please also attend the <span class="caps">NWCPP</span> Annual Board Meeting
at 6:<span class="caps">15PM …</span></p></div><div class="section" id="special-announcements">
<h2>Special Announcements</h2>
<p><span class="caps">NOTES</span>:
<span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">WEDNESDAY</span>, <span class="caps">NOT</span> <span class="caps">OUR</span> <span class="caps">NORMAL</span> <span class="caps">MEETING</span> <span class="caps">CADENCE</span>!!!</p>
<p>We do not have a pizza sponsor for this meeting so please plan accordingly.</p>
<p>If you are interested in helping out please also attend the <span class="caps">NWCPP</span> Annual Board Meeting
at 6:<span class="caps">15PM</span> - Just before his meeting!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 23rd, 2019 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Remedial C++ 11</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><span class="caps">OK</span>, Ladies and Gentlemen, your boss said you needed to attend tonight. Your boss noticed that you haven’t been using the latest C++ constructs, and that your work could be even better. Tonight we’ll go over additions to the language in C++ 11. Don’t make your boss send you back here for C++ 14 and 17!</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Like the man in black said: “No one of consequence”. Pete has been programming professionally for 29 years at companies like Boeing, Microsoft, Amazon, and Google. He’s been using C++ for most of that time, and attending <span class="caps">NWCPP</span> off and on since the 90’s. He has been known to talk about himself in third person.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/i1zNN_U6tEQ">Video</a> |
<a class="reference external" href="/talks/2019/RemedialCpp11.pdf">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
November 15th, 2018: C++ Today: The Beast is Back2018-10-20T00:00:00-07:002018-10-20T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2018-10-20:/november-2018.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
</div>
<div class="section" id="note-this-meeting-is-at-a-special-time-on-a-thursday-not-our-normal-meeting-cadence">
<h2><span class="caps">NOTE</span>: <span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">THURSDAY</span>, <span class="caps">NOT</span> <span class="caps">OUR</span> <span class="caps">NORMAL</span> <span class="caps">MEETING</span> <span class="caps">CADENCE</span>!!!</h2>
<div class="line-block">
<div class="line">November 15th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1087, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>C++ Today: The Beast is Back</p>
</div>
<div class="section" id="abstract">
<h2>Abstract …</h2></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
</div>
<div class="section" id="note-this-meeting-is-at-a-special-time-on-a-thursday-not-our-normal-meeting-cadence">
<h2><span class="caps">NOTE</span>: <span class="caps">THIS</span> <span class="caps">MEETING</span> <span class="caps">IS</span> <span class="caps">AT</span> A <span class="caps">SPECIAL</span> <span class="caps">TIME</span> <span class="caps">ON</span> A <span class="caps">THURSDAY</span>, <span class="caps">NOT</span> <span class="caps">OUR</span> <span class="caps">NORMAL</span> <span class="caps">MEETING</span> <span class="caps">CADENCE</span>!!!</h2>
<div class="line-block">
<div class="line">November 15th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1087, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>C++ Today: The Beast is Back</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This presentation will cover why engineers looking for performance choose C++. I will present a historical perspective of C++ focusing on what’s going on in the C++ community right now and where the language and its user base is heading. With a renewed interest in performance for both data centers and mobile devices, and the success of open source software libraries, C++ is back, and it is hot!</p>
<p>This presentation will explain why C++ is most software engineers’ go-to language for performance. You will receive a rough historical sketch that puts C++ in perspective and covers its popularity ups and downs. This talk is based, in part, on the book “C++ Today: The Beast is Back” published by O’Reilly.</p>
<blockquote>
<a class="reference external" href="https://resources.jetbrains.com/storage/products/cpp/books/Cplusplus_Today.pdf">https://resources.jetbrains.com/storage/products/cpp/books/Cplusplus_Today.pdf</a></blockquote>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Jon Kalb is a freelance C++ instructor and chairs C++Now, CppCon, and the Boost Steering Committee. He has been programming in C++ for over 25 years and has written C++ for Amazon, Apple, Dow Chemical, Intuit, Lotus, Microsoft, Netscape, Sun, and Yahoo!</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Hyper Analytix was founded by Paul Hylander in 2007. Hyper Analytix specializes in <span class="caps">VLSI</span> and <span class="caps">FPGA</span> development/verification using C++ based tools and methods. Recent projects include: error correction hardware for optical quantum computers, high-performance on-chip network generators, graph processing, and gigabit digital-subscriber-loop signal processing fabrics.</p>
<p>Hyper Analytix also conducts internal research into the areas of data center computing using FPGAs, <span class="caps">FPGA</span> targeted C++ compilers, hardware-based <span class="caps">SAT</span> solvers, and analogy-based approaches to <span class="caps">AI</span> learning. We are looking to collaborate or possibly start a new venture in one of these areas. Contact <a class="reference external" href="mailto:paul@hyperanalytix.com">paul@hyperanalytix.com</a> for more info.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/yBZdf5fOIjY">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
October 17th, 2018: Avoiding Code Smells2018-10-02T00:00:00-07:002018-10-02T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2018-10-02:/october-2018.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 17th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Avoiding Code Smells</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>I’ve been writing code for over 40 years. One thing that comes with
experience is one develops a …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 17th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Avoiding Code Smells</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>I’ve been writing code for over 40 years. One thing that comes with
experience is one develops a nose for code smells. When you’re asked
to help someone find a bug in their code, you can often just glance
at it and get a pretty good idea where to hone in on where the error
is likely lurking.</p>
<p>How is this possible in a large code base? It turns out that the human
brain is a very good pattern matcher, and by experience one learns
to recognize what code looks like that has bugs in it, i.e. it smells.
Sometimes, though, it is hard for the person to say just what it is
that triggers the smell, just that it stinks. I’ve tried to distill
out what those characteristics are.</p>
<p>Inevitably, since this is based on my own personal experience, it
is a highly personal list. Many you’ve surely heard before, I hope there
will be some you haven’t recognized yet. Will eliminating smells actually
result in bug-free code? Maybe that’s too much to hope for, but I bet
we get a lot closer to it.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several other languages. He’s an expert in all areas of compiler technology, including front ends, optimizers, code generation, interpreter engines and runtime libraries. Walter regularly writes articles about compilers and programming, is known for engaging and informative presentations, and provides training in compiler development techniques. Many are surprised to discover that Walter is also the creator of the wargame Empire, which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Gordon Churchill is an embedded Linux specialist in medical devices and other safety critical systems.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/lbp6vwdnE0k">Video</a> |
<a class="reference external" href="/talks/2018/code_smells.pdf">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Meetings in September2018-08-19T00:00:00-07:002018-08-19T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2018-08-19:/sep-2018.html<div class="section" id="upcoming-meetings">
<h2>Upcoming Meetings</h2>
<p>Our <span class="caps">NWCPP</span> meeting for September will be coordinated with CppCon at the Meydenbauer Center in Bellevue. CppCon is open to everyone, with or without registration for the evening sessions and <span class="caps">ALL</span> sessions on Friday.</p>
<p>Please see the CppCon web site at <a class="reference external" href="Http://cppcon.org">Http://cppcon.org</a> for current details.</p>
</div>
<div class="section" id="featured-events-at-cppcon">
<h2>Featured …</h2></div><div class="section" id="upcoming-meetings">
<h2>Upcoming Meetings</h2>
<p>Our <span class="caps">NWCPP</span> meeting for September will be coordinated with CppCon at the Meydenbauer Center in Bellevue. CppCon is open to everyone, with or without registration for the evening sessions and <span class="caps">ALL</span> sessions on Friday.</p>
<p>Please see the CppCon web site at <a class="reference external" href="Http://cppcon.org">Http://cppcon.org</a> for current details.</p>
</div>
<div class="section" id="featured-events-at-cppcon">
<h2>Featured Events at CppCon</h2>
<p><strong>Tuesday September 25 at 8:30 <span class="caps">PM</span> - 10:00 <span class="caps">PM</span>: Embedded C++</strong> by Ben Saks, Dan Saks, Andrew Sloss and Odin Holmes</p>
<p>C++ has not always been the first language choice to use in embedded environments, but with the advent of modern C++, its use has been on the rise. Developing for embedded environments generally and the Internet of Things (IoT) specifically, presents challenges for which modern C++ offers a unique tool set. Come ask the experts on how they view C++ in this space and how to use modern C++ to get the best performance possible to meet the demands embedded systems such as IoT.</p>
<p><strong>Wednesday, September 26th at 12:30 <span class="caps">PM</span> to 1:30 <span class="caps">PM</span>: Mixing Managed and Unmanaged Code and Targeting Cross Platform Distributions</strong> by Brett Searles, Kate Gregory, Aaron Robinson, and Lloyd Moore</p>
<p>Even though we love C++, we don’t live in a C++-only world. In this session, you will be given the opportunity to ask questions about the best way to build applications in C++, yet also make them accessible to clients who use managed code. There will also be experts to answer questions about best practices for building C++ so it may be utilized efficiently in a cross-platform environment.</p>
<p><strong>Wednesday, September 26th at 6:<span class="caps">45PM</span> to 8:00 <span class="caps">PM</span>: Cross-platform C++ development is challenging - let tools help!</strong> by Marc Goodner, and Will Buik</p>
<p>Writing high-quality error-free C++ code itself is a challenging task, let alone when having to juggle multiple platforms at the same time! In this session, we will talk about many challenges in cross-platform C++ development and how tools can help: what options do I have if my production environment is different than my dev box? Can I be as productive when working with remote Linux machines? Is there any good C++ editor that works consistently on all platforms I work on? How can I efficiently build and debug CMake projects, or even get IntelliSense? How can I easily find and acquire open sourced libraries? Is there an easy way to write and run cross-platform tests? Come to see what Visual Studio 2017, Visual Studio Code, CMake, <span class="caps">WSL</span>, Vcpkg and more have to offer to make cross-platform C++ development much easier in this demo-heavy talk.</p>
<p><strong>Wednesday, September 26th at 8:30 <span class="caps">PM</span> to 10:00 <span class="caps">PM</span>: Optimizing Code Speed and Space with Build Time Switches</strong> by Xiang Fan, Ian Bearman, Michael Wong, Brett Searles and Chandler Carruth</p>
<p>Our compilers and linkers are powerful tools and like many power tools, mastery means understanding the settings. Come join compiler experts to get your questions answered on how to get the best from your code whether you are building for speed or space.</p>
<p><strong>Thursday, September 27 8:30 <span class="caps">PM</span> to 10:00 <span class="caps">PM</span>: Creating the Complete Build Package</strong> by Boris Kolpackov, Titus Winter, Robert Schumacher, Paddy McDonald and Manuel Klimek</p>
<p>Even though we all have to build our application, there may be issues that are necessary to consider. Like, how do we create build packages so that our application can be cross-platform? What about Modules? How can unit testing and end to end testing be integrated at the end of the build? Please bring questions so that you can get answers from our panelists.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><strong>Embedded C++</strong>
by Ben Saks, Dan Saks, Andrew Sloss and Odin Holmes
<a class="reference external" href="https://youtu.be/9UYUMA-5fv4">Video1</a></p>
<p><strong>Mixing Managed and Unmanaged Code and Targeting Cross Platform Distributions</strong>
by Brett Searles, Kate Gregory, Aaron Robinson, and Lloyd Moore
<a class="reference external" href="https://youtu.be/lFQUrhOo1e8">Video2</a></p>
<p><strong>Cross-platform C++ development is challenging - let tools help!</strong>
by Marc Goodner, and Will Buik
<a class="reference external" href="https://youtu.be/RorHhty3D6A">Video3</a></p>
<p><strong>Optimizing Code Speed and Space with Build Time Switches</strong>
by Xiang Fan, Ian Bearman, Michael Wong, Brett Searles and Chandler Carruth
<a class="reference external" href="https://youtu.be/FsrC6PI2TBg">Video4</a></p>
<p><strong>Creating the Complete Build Package</strong>
by Boris Kolpackov, Titus Winter, Robert Schumacher and Manuel Klimek
<a class="reference external" href="https://youtu.be/TjdCxXdjaSA">Video5</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
June 20th, 2018: Graduated, now what?2018-05-27T00:00:00-07:002018-05-27T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2018-05-27:/june-2018.html<div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are still looking for 1 more volunteer to help run the club as a couple of the current volunteers are stepping down at the end of this year. If you are interested also please contact Lloyd.</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 20th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083 …</div></div></div><div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are still looking for 1 more volunteer to help run the club as a couple of the current volunteers are stepping down at the end of this year. If you are interested also please contact Lloyd.</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 20th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Graduated, now what?</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In the past years volunteering at CppCon, it has been one of my efforts to discuss with college students some of the challenges that they face in attempting to secure post-graduation employment. Many of them have expressed their frustration at some of the job criteria listed in the job requirement and some have asked for help with their resumes. Therefore, this will be a training session to assist students and young engineers who have started their career, yet are looking to find something better.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Brett Searles - Experienced in doing multiple interviews and writing resumes for the past couple of decades. Also working on my own processor chip to be the cornerstone for the Holographic Surgical Center.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=n8S6eAT2EMQ">Video</a> |
<a class="reference external" href="/talks/2018/graduated.pdf">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 16th, 2018: Interpolation, Integration, and Coordinate Transformations2018-05-03T00:00:00-07:002018-05-03T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2018-05-03:/may-2018.html<div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are still looking for 2 more volunteers to help run the club as a couple of the current volunteers are stepping down at the end of this year. If you are interested also please contact Lloyd.</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 16th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083 …</div></div></div><div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are still looking for 2 more volunteers to help run the club as a couple of the current volunteers are stepping down at the end of this year. If you are interested also please contact Lloyd.</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 16th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Interpolation, Integration, and Coordinate Transformations: Continuous Functions Versus Discrete Samples</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In October 2017 I spoke to <span class="caps">NWCPP</span> about “Coordinate Transformations in Three Dimensions.” Due to a big storm and unavailability of the intended meeting room, very few people were there. Also my preparation was incomplete. So I agreed to try again.</p>
<p>This time, I will start from an even more fundamental computational problem: Data come into the computer as a finite set of discrete numbers, even when the underlying phenomena are continuous. How should one estimate continuous phenomena based on discrete data? That’s interpolation. The answer depends on several factors:</p>
<blockquote>
<ol class="arabic simple">
<li>What are the independent variables, or domain? Examples include time (1 dimension), position (3), orientation (3), or mix of foods (many).</li>
<li>What are the dependent variables, or range? Examples include pressure (1), position (3), orientation (3), or disease probabilities (many). Dependent variables for one process (e.g. orientation vs. time in a motion model) can be independent variables for another (e.g. sensitivity vs orientation in a sensor model).</li>
<li>How will the continuous model be used? Does the application require a different set of discrete independent values that lie between the given ones? (Example: simulated sound samples as received from a moving platform.) Or do you need to integrate some function of the dependent variables over the independent ones? (Example: sensor response to sound coming from all directions.)</li>
<li>How many discrete input values do we need to compute each output value? That’s the “order” (plus 1). I will demonstrate some consequences for getting this wrong.</li>
<li>Can it help to transform the range and/or the domain? For example, if Y(X) resembles a power law (Y equals X raised to some power), then a graph of log(Y) versus log(X) is close to a straight line, for which linear interpolation (order=1) would suffice, even for a sparse sample set.</li>
</ol>
</blockquote>
<p>Transformations return us to October’s subject: 3-D coordinate transformations. There are at least four equivalent representations of a rotation: Three angles (traditionally heading, pitch, and roll), a 3-by-3 unitary matrix (9 values), a unit quaternion (4 values), and a rotation vector (3 values). All four representations are useful, but only one is suitable for interpolation versus time.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Robert Goddard
Principal Physicist, Retired (but still active)
University of Washington, Seattle</p>
<p>Robert Goddard is a physicist and software developer. He retired (sort of) in 2017 after 37 years at the <span class="caps">UW</span> Applied Physics Laboratory, working mainly on computer modeling of underwater sound. He is still the architect and team leader for the Sonar Simulation Toolset (<span class="caps">SST</span>), which produces simulated underwater sound, suitable as input to sophisticated signal processing systems (including human ears and brains), based on user-specified descriptions of the undersea environment, the listening system, and the sound sources and reflectors placed in this simulated ocean. He has also developed systems for data acquisition and analysis, visualization, modeling of quantum mechanical scattering, and using data to infer model parameters.</p>
<p>Bob has been an active participant in the Northwest C++ Users Group for most of its existence, and is currently Treasurer. (Wouldn’t <span class="caps">YOU</span> like to be Treasurer? We are looking for my replacement.)</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>CyberData Corporation was founded by Lloyd Moore in 1996. CyberData specializes in providing custom software and hardware solutions for robotics, machine vision, embedded systems and industrial automation applications. Our mission is to create high quality, innovative technology for the global marketplace.</p>
<p>CyberData also conducts internal research into the areas of robotics, machine vision and artificial intelligence. Specific technologies are then either licensed, sold as products or released as open source, depending on the specific nature and goals of the project. Technological developments are also provided directly to our clients through our consulting services.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/0APcqutOqUc">Video</a> |
<a class="reference external" href="/talks/2018/Interpolation.pptx">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 18th, 2018: Microsoft MakeCode: from C++ to TypeScript and Blockly (and Back)2018-03-24T00:00:00-07:002018-03-24T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2018-03-24:/april-2018.html<div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are still looking for 2 more volunteers to help run the club as a couple of the current volunteers are stepping down
at the end of this year. If you are interested also please contact Lloyd.</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 18th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1915 …</div></div></div><div class="section" id="announcements">
<h2>Announcements</h2>
<p>We are still looking for 2 more volunteers to help run the club as a couple of the current volunteers are stepping down
at the end of this year. If you are interested also please contact Lloyd.</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 18th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1915 Hopper, Building 99,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+99/@47.6419787,-122.1442316,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d1295752983:0x1296ac67a4df2ea3!8m2!3d47.6419787!4d-122.1420376">Map to building 99</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note: <span class="caps">THIS</span> <span class="caps">IS</span> <span class="caps">NOT</span> <span class="caps">OUR</span> <span class="caps">NORMAL</span> <span class="caps">MEETING</span> <span class="caps">ROOM</span></strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Microsoft MakeCode: from C++ to TypeScript and Blockly (and Back)</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Across the globe, it is now commonplace for educators to engage in the making (design and development) of embedded systems in the classroom to motivate and excite their students. This new domain brings its own set of unique requirements. Historically, embedded systems development requires knowledge of languages such as C and C++, local installation of compilation toolchains, device drivers and applications. For students and educators, these requirements introduce unnecessary barriers and restrictions.</p>
<p>Over the last two years, Microsoft has invested in a new web-based programming platform for embedded systems in education, called Microsoft MakeCode (www.makecode.com), in partnership with Lancaster University, who created the C++ Component-oriented Device Abstraction Layer (<a class="reference external" href="https://github.com/lancaster-university/codal">https://github.com/lancaster-university/codal</a>). In this talk, I’ll describe the design principles behind MakeCode and <span class="caps">CODAL</span> and our experience with it to date. In particular, I’ll describe how our stack exposes C++ in the browser via TypeScript and Blockly programming APIs, with an in-browser compiler tool chain that produces executable files without the need for a C++ compiler in the core end-user experience. MakeCode is open source at <a class="reference external" href="http://github.com/microsoft/pxt">http://github.com/microsoft/pxt</a></p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Thomas Ball, Principal Researcher, Microsoft Research
<a class="reference external" href="http://research.microsoft.com/~tball/">http://research.microsoft.com/~tball/</a></p>
<p>Thomas (Tom) Ball is a principal researcher and manager at Microsoft Research. In 1999, He initiated the influential <span class="caps">SLAM</span> software model-checking project with Sriram Rajamani, which led to the creation of the Static Driver Verifier tool for finding defects in Windows device drivers. Tom is a 2011 <span class="caps">ACM</span> Fellow for ‘contributions to software analysis and defect detection’. As a manager, he has nurtured research areas such as automated theorem proving, program testing/verification and empirical software engineering. His current focus is the Microsoft Makecode platform for programming with physical computers.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Aerotek is one of the largest staffing firms in the <span class="caps">US</span> today, and specializes in staffing for contract, contract to direct, and direct hire placements in a variety of industries and skill sets. Our local Technical Recruiting staff specializes in placing entry level to senior manager level individuals in a variety of industries including Aerospace, Medical Device, Industrial, and Consumer products with a focus on embedded engineering skill sets to include Hardware, Firmware, and Embedded Software and Test Engineering professionals from initial concept to final product release. We also staff for placements as Mechanical, Electrical, Manufacturing, Process, Program and Project Management, and Quality Engineering skill sets to work in manufacturing and R&D companies in the greater Seattle area.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/tGhhV2kfJ-w">Video</a> |
<a class="reference external" href="/talks/2018/MakeCode4cpp-users-group.pdf">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 21st, 2018: Algorithms Rule2018-03-01T00:00:00-08:002018-03-01T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2018-03-01:/march-2018.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 21st, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Algorithms Rule</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk will be a local repeat of the same presentation that …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 21st, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Algorithms Rule</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk will be a local repeat of the same presentation that was given at the 2017 Embedded Systems Conference in San Jose California.The talk will look at three different implementations for the machine vision operation of connectivity analysis. We’ll look at the details of how each algorithm works and in addition we will compare the performance of each algorithm. Each of the algorithms was also used for a different purpose and in addition we will show that matching the algorithm design to it’s intended use can give large performance gains.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Lloyd Moore is the founder and owner of CyberData Corporation, which provides consulting services in the robotics, machine vision and industrial automation fields. Lloyd has worked in software industry for 25 years. His formal training in biological-based artificial intelligence, electronics, and psychology. Lloyd is also currently the president of the Northwest C++ User’s Group and an organizer of the Seattle Robotics Society Robothon event.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Mainz Brady Group is a privately held staffing firm originally based in California; with offices in San Mateo, Oakland, Portland, and Seattle. It was founded in 2003 by Richard Mainz and Eric Brady; both have over 25 years of technical staffing experience and have held executive level positions within large, international staffing organizations.</p>
<p><span class="caps">MBG</span> was created because we believed there was a better way of recruiting: one in which the needs of our clients and candidates come first. Our relationship-based approach focuses on both clients and candidates and their unique and individual needs. We want to positively impact the people and businesses of the technology communities we support.</p>
<p>Mainz Brady Group is a technology focused recruiting firm, and is recognized as a leader in providing comprehensive employment and staffing solutions to the best known companies; in finance, retail, research <span class="amp">&</span> development, sports equipment, healthcare, biotechnology, gaming, and telecommunications.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=vqQ2cDXJVss">Video</a> |
<a class="reference external" href="/talks/2018/AlgorithmsRule.pptx">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
February 21st, 2018: Chapel’s Muiltiresolution Programming Model2018-01-29T00:00:00-08:002018-01-29T00:00:00-08:00Pete Williamsontag:nwcpp.org,2018-01-29:/february-2018.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 21st, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Chapel’s Multiresolution Programming Model: Mixing high-level parallel abstractions with lower-level control</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Chapel (<a class="reference external" href="http://chapel.cray.com">http …</a></p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 21st, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Chapel’s Multiresolution Programming Model: Mixing high-level parallel abstractions with lower-level control</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Chapel (<a class="reference external" href="http://chapel.cray.com">http://chapel.cray.com</a>) is an open-source language for general parallel computing at scale whose design and development are being led by Cray Inc. Chapel is designed for portability and can be run on laptops, commodity clusters, and the cloud, in addition to supercomputers from Cray and other vendors. As a productive parallel language, Chapel has support for data and task parallelism, data-centric synchronization, distributed memory execution, type inference, iterator functions, generic programming, meta-programming, and <span class="caps">OOP</span>.</p>
<p>In my last Northwest C++ Users’ Group talk (Oct 2016), I provided a general overview of Chapel’s philosophy and features. In this talk, I’ll start with a brief introduction to Chapel for those who are new, and then dive a bit deeper into some of Chapel’s features that relate to C++ and how we use them to permit programmers to specify distributed array implementations within the language itself. This is what we refer to Chapel’s multiresolution programming model, in which high-level concepts can be implemented at lower levels of the language. I’ll also provide a snapshot of recent Chapel performance and scalability results.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Bradford Chamberlain is a Principal Engineer at Cray Inc. where he works on parallel programming models, focusing primarily on the design and implementation of the Chapel language in his role as technical lead for that project. Brad received his Ph.D. in Computer Science <span class="amp">&</span> Engineering from the University of Washington in 2001 where he focused on the design and implementation of the <span class="caps">ZPL</span> parallel array language. In the past, he has also worked on languages for embedded reconfigurable processors and on algorithms for accelerating the rendering of complex 3D scenes. Brad remains associated with the University of Washington as an affiliate faculty member. He received his Bachelor’s degree in Computer Science with honors from Stanford University in 1992.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Akvelon provides superior <span class="caps">IT</span> project support and software development solutions specializing in applying cutting-edge technology to problems in fields as diverse as mobile technology, finance, and healthcare. With over five hundred employees at seven offices worldwide, Akvelon is rapidly growing. Our firm is a global network of offices led by our partnership group. We have years of experience helping clients on a global scale drive innovation, productivity, and business performance.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=RmCT2bmENcU">Video</a> |
<a class="reference external" href="/talks/2018/ChapelForNWCPP2018-presented.pdf">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
January 17th, 2018: Source Dependency Management2017-12-28T00:00:00-08:002017-12-28T00:00:00-08:00Pete Williamsontag:nwcpp.org,2017-12-28:/january-2018.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 17th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Source Dependency Management</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>I’m careful to use the term “Dependency Management” to describe …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 17th, 2018 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="https://www.google.com/maps/place/Microsoft+Building+30/@47.645004,-122.1243829,17z/data=!3m1!4b1!4m5!3m4!1s0x54906d7a92bfda0f:0xc03a9c414544c91e!8m2!3d47.6450004!4d-122.1221942">Map to building 30</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is our *new* normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>Source Dependency Management</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>I’m careful to use the term “Dependency Management” to describe this discussion as a generalized topic. I will outline my experience managing the software dependencies in my latest C# project, a RESTful web <span class="caps">API</span>. I’ll cover software development goals such as <span class="caps">SOLID</span> and <span class="caps">DRY</span> principles, designing adaptable software components, testing, publishing and executing software in various environments.</p>
<p>I’ll discuss “Dependency Injectability” patterns that help concrete implementations fulfill the goals mentioned above. And I’ll discuss the various forms of “Dependency Injection” from “Pure <span class="caps">DI</span>”, which is just another pattern and does not require a supporting library, to the complicated and controversial world of “Dependency Injection Containers”, which do. I hope to touch on a number of patterns, anti-patterns and a few patterns in between.</p>
<p>Finally, I hope to take a tour of some <span class="caps">DI</span> Container libraries in C# (Unity, Autofac), C++ (boost::di) and D (poodinis).</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Michael Jones</p>
<p>Michael Jones has 17 years of experience coding in languages such as C++, C#, Groovy, and Python. He’s worked at Midway Games in Chicago, Cranky Pants Games in Kirkland, YouTube at Google in Mountain View, Xbox and Azure locally at Microsoft. He’s interested in cool code, and has recently integrated dependency injection techniques into his programming practices. Mike’s currently working on the Azure Identity services at Microsoft and has been programming exclusively in C# for a few years now. He enjoys the recent pace of modern language design across many languages.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Please thank VerticalMove for sponsoring our pizza this month!!</p>
<p>Verticalmove is a respected Staffing and <span class="caps">IT</span> services company with more than fifteen years of proven experience building out core product engineering teams for enterprise and start-up organizations throughout the Pacific Northwest, Norther California, Austin and the East Coast.</p>
<p>At Verticalmove we are proud to defy the industry-standard every day by building lasting relationships with everyone that we come in contact with. We also set ourselves apart by taking the time to understand the technology and trends of the industry to keep pace with the brilliant minds that we converse with on a daily basis.</p>
<p>It hasn’t been an easy, but over the years we’ve won the hearts of respected software companies such as Facebook, Zillow, Salesforce.com, and Expedia just to name a few, and of course the names of our smaller early-stage clients are top secret.</p>
<p>For a list of open positions, please visit: <a class="reference external" href="http://verticalmove.force.com/careers/">http://verticalmove.force.com/careers/</a>
Or for more general information please visit <a class="reference external" href="http://verticalmove.com">http://verticalmove.com</a></p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/--edwPyvywg">Video</a> |
<a class="reference external" href="/talks/2018/DependencyManagement.pdf">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
November 14th, 2017: C++ Terminology2017-11-05T00:00:00-07:002017-11-05T00:00:00-07:00Pete Williamsontag:nwcpp.org,2017-11-05:/november-2017.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 15th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">Microsoft Campus map</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is not our normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>C++ Termionology</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A good refresher on the basics of some of the terms used in …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 15th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1083, Building 30,
<a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">Microsoft Campus map</a>,</div>
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is not our normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="title">
<h2>Title</h2>
<p>C++ Termionology</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A good refresher on the basics of some of the terms used in C++ that may help beginners to write higher performant code.
The refresher will take a deep dive into compiler optimization, assembly generated code and computer architecture.
At first, the presentation will discuss some keywords and then move towards other terms that are used when discussing an application from the developers code down to the computer architecture.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Brett Searles</p>
<p>Currently working in the <span class="caps">AR</span>/<span class="caps">VR</span> field for mobile applications. Loves to work in embedded and low level circuitry design. Very active in the C++ community with volunteering for <span class="caps">NWCPP</span>, CppCon and trying to get a hackathon started for college age students.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p><span class="caps">AIM</span> Consulting combines technical expertise with an understanding of business goals to solve your toughest challenges. We know technology and can help you design for the user experience, build innovative software, leverage data for actionable insights, implement modern processes and tools, and maintain critical applications and systems. Our engagement model is designed with flexibility in mind for long-term partnerships. From strategy and implementation to sustained services, we provide technology consultants in custom configurations to fit your priorities and scale over the lifecycle of your solutions.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><Since this turned into a free-form discussion, there was no video made></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
October 18th 2017: Coordinate Transformation in Three dimensions2017-10-05T00:00:00-07:002017-10-05T00:00:00-07:00Pete Williamsontag:nwcpp.org,2017-10-05:/october-2017.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 18, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Adams Room, Building 43,
<a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">Microsoft Campus map</a>,</div>
</div>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is not our normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Consider: A camera is attached to an airplane via a three-axis rotating mount. The mission is …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 18, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Adams Room, Building 43,
<a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">Microsoft Campus map</a>,</div>
</div>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">*****</span></tt> <strong>Note, this is not our normal meeting room!</strong> <tt class="docutils literal"><span class="pre">*****</span></tt></div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Consider: A camera is attached to an airplane via a three-axis rotating mount. The mission is to follow a vehicle on the ground and report back the position and velocity of that vehicle. A camera operator (or computer) controls the camera mount to keep the vehicle’s image in the camera’s view, while the pilot (or computer) flies the airplane and an analyst (or computer) identifies and locates the target vehicle in the image.</p>
<p>Where is the target vehicle now?</p>
<p>Time-varying inputs include the location and orientation of the airplane, three rotation angles from the camera mount, and the X and Y locations of the vehicle in the camera’s image. Fixed inputs include location and orientation of the camera mount on the airplane and a map of ground elevation.</p>
<p>All parts of this problem, from navigation to control to image interpretation to reporting the results, depend on transforming information from one coordinate system to another. In particular, the image location on the screen (pixel row and column) somehow gets transformed, in several steps, into the inferred location of the target vehicle on the ground (latitude, longitude, and elevation). In a simulation, you would do the same thing in reverse, from a simulated 3D track to its appearance on a screen. Correctly and efficiently.</p>
<p>Computer applications of 3D coordinate transformations include image interpretation, guidance, control, games, simulations for teaching, simulations for testing sensor ideas, and more.</p>
<p>A lot of the talk will involve hand waving and manipulation of physical models. There will be mathematics (quaternions will be mentioned) and efficient C++ software will be described. But mostly it’s about how to think about this broad class of computational problems.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Robert Goddard
Principal Physicist, Retired (but still active)
University of Washington, Seattle</p>
<p>Robert Goddard is a physicist and software developer. He recently retired (sort of) after 37 years at the Applied Physics Laboratory of the University of Washington, mainly on computer modeling of underwater sound. He is still the architect and team leader for the Sonar Simulation Toolset (<span class="caps">SST</span>), which produces simulated underwater sound, suitable as input to sophisticated signal processing systems (including human ears and brains), based on user-specified descriptions of the undersea environment, the listening system, and the sound sources and reflectors placed in this simulated ocean. He has also developed systems for control of measurement devices, data analysis, visualization, modeling of quantum mechanical scattering, and using data to infer model parameters.</p>
<p>Bob has been an active participant in the Northwest C++ Users Group for most of its existence, and is currently Treasurer.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Smartsheet Inc. is the $850mm startup you’ve never heard of. We build a SaaS tool that looks like a spreadsheet and is used, among other things, to manage projects of all sizes, including opening data centers, rebuilding hospitals, and major motion pictures.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/b2qOg7z763o">Video</a> |
<a class="reference external" href="/talks/2017/CoordXform.pptx">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Meetings in September2017-09-05T00:00:00-07:002017-09-05T00:00:00-07:00Pete Williamsontag:nwcpp.org,2017-09-05:/sep-2017.html<div class="section" id="upcoming-meetings">
<h2>Upcoming Meetings</h2>
<p>Our <span class="caps">NWCPP</span> meeting for September will be coordinated with CppCon at the Meydenbauer Center in Bellevue. CppCon is open to everyone, with or without registration for the evening sessions and <span class="caps">ALL</span> sessions on Friday.</p>
<p>Please see the CppCon web site at <a class="reference external" href="Http://cppcon.org">Http://cppcon.org</a> for current details.</p>
</div>
<div class="section" id="featured-events-at-cppcon">
<h2>Featured …</h2></div><div class="section" id="upcoming-meetings">
<h2>Upcoming Meetings</h2>
<p>Our <span class="caps">NWCPP</span> meeting for September will be coordinated with CppCon at the Meydenbauer Center in Bellevue. CppCon is open to everyone, with or without registration for the evening sessions and <span class="caps">ALL</span> sessions on Friday.</p>
<p>Please see the CppCon web site at <a class="reference external" href="Http://cppcon.org">Http://cppcon.org</a> for current details.</p>
</div>
<div class="section" id="featured-events-at-cppcon">
<h2>Featured Events at CppCon</h2>
<p><strong>Tuesday at 8:30 <span class="caps">PM</span>: Mixing Managed and Unmanaged Code and Targeting Cross Platform Distributions</strong> by Brett Searles and Kenny Kerr
Even though we love C++, we don’t live in a C++-only world. In this session, you will be given the opportunity to ask questions about the best way to build applications in C++, yet also make them accessible to clients who use managed code. There will also be experts to answer questions about best practices for building C++ so it may be utilized efficiently in a cross-platform environment.</p>
<p><strong>Wednesday at 8:30 <span class="caps">PM</span>: Optimizing Code Speed and Space with Build Time Switches</strong> by Brett Searles, Chandler Carruth, and Jim Radigan
Our compilers and linkers are powerful tools and like many power tools, mastery means understanding the settings. Come join compiler experts to get your questions answered on how to get the best from your code whether you are building for speed or space.</p>
<p><strong>Thursday 8:30 <span class="caps">PM</span>: C++ in the Internet of Things</strong> by Brett Searles and Lloyd Moore
C++ has not always been the first language choice to use in embedded environments, but with the advent of modern C++, its use has been on the rise. Developing for embedded environments generally and the Internet of Things (IoT) specifically, presents challenges for which modern C++ offers a unique tool set. Come ask the experts on how they view C++ in this space and how to use modern C++ to get the best performance possible to meet the demands of IoT.</p>
<p><strong>Friday 4:45 <span class="caps">PM</span> to 5:45 <span class="caps">PM</span>: Building for the Best of us: Design and Development with Kids in Mind</strong>, Sara Chipps <span class="caps">CEO</span> of Jewelbots (<a class="reference external" href="https://cppcon2017.sched.com/event/Bkep">https://cppcon2017.sched.com/event/Bkep</a>)
Jewelbots!
Sarah Chipps will be talking about Jewelbots at CppCon. Jewelbots are a great way to get
kids (especially young ladies) into programming (in C++!).
<a class="reference external" href="https://cppcon.org/jewelbots-announce-2017/">https://cppcon.org/jewelbots-announce-2017/</a>
Coming to see her is free. You can optionally reserve a Jewelbot for the workshop for $10
There will be food trucks nearby at GameOn Bellevue
Parking for the event is free at the Meydenbauer on Fri after 3pm.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Optimizing Code Speed and Spade with Build Time Switches Panel
<a class="reference external" href="https://www.youtube.com/attribution_link?a=n0SFbCDb71zCedy1&u=/watch%3Fv%3D9RFYVbHRoLg%26feature%3Dem-upload_owner">https://www.youtube.com/attribution_link?a=n0SFbCDb71zCedy1&u=/watch%3Fv%3D9RFYVbHRoLg%26feature%3Dem-upload_owner</a></p>
<p>Internet of Things Panel
<a class="reference external" href="https://www.youtube.com/attribution_link?a=sBfkW6xhbtpa6_Ip&u=/watch%3Fv%3DgmW6b0I_t5k%26feature%3Dem-upload_owner">https://www.youtube.com/attribution_link?a=sBfkW6xhbtpa6_Ip&u=/watch%3Fv%3DgmW6b0I_t5k%26feature%3Dem-upload_owner</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
Meetings in September2017-08-26T00:00:00-07:002017-08-26T00:00:00-07:00Pete Williamsontag:nwcpp.org,2017-08-26:/aug-2017.html<div class="section" id="upcoming-meetings">
<h2>Upcoming Meetings</h2>
<p>Our next meeting will be in September, stay tuned!</p>
<p>Also, we will be hosting 3 CppCon panels during the month of September between Sep 23 and Sep 29</p>
<ol class="arabic simple">
<li>Optimizing the Build</li>
<li>Mixing managed with unmanaged code and cross platform</li>
<li>Using C++ in Iot</li>
</ol>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up …</li></ul></div><div class="section" id="upcoming-meetings">
<h2>Upcoming Meetings</h2>
<p>Our next meeting will be in September, stay tuned!</p>
<p>Also, we will be hosting 3 CppCon panels during the month of September between Sep 23 and Sep 29</p>
<ol class="arabic simple">
<li>Optimizing the Build</li>
<li>Mixing managed with unmanaged code and cross platform</li>
<li>Using C++ in Iot</li>
</ol>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
June 21 2017: Understanding Compiler Optimization2017-05-31T00:00:00-07:002017-05-31T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2017-05-31:/june-2017.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 21, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ is used in applications where resources are constrained and performance is critical. However, its power in this domain comes from the ability to build large, complex …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 21, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ is used in applications where resources are constrained and performance is critical. However, its power in this domain comes from the ability to build large, complex systems in C++. These systems leverage numerous C++ features in order to build and utilize abstractions that make reasoning about these complex systems possible. Abstractions are the very essence of how we scale software to solve ever larger and more complex problems.</p>
<p>But the common C++ idea of “zero cost” abstractions is, in some senses, a myth. The real achievement of C++ is allowing you, the programmer, to control where and how the cost of your abstractions will be paid. It does this by leveraging remarkably advanced optimizing compilers and carefully written libraries and techniques, all working together to control the cost. In order to be effective writing software that leverages this control, it is essential that the programmer understand the core fundamentals of how the compiler optimizations will behave. Without this, it is too easy to unknowingly limit it or create challenges that it cannot overcome.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Chandler Carruth leads the C++ language team and <span class="caps">LLVM</span> team at Google. He is also an active contributor to the <span class="caps">LLVM</span> and Clang open source projects, and speaks at various C++ events where he tries to help spread knowledge about C++, compilers, tools, and optimization. Previously, he worked on several components of Google’s distributed build system. He received his <span class="caps">M.S.</span> and <span class="caps">B.S.</span> in Computer Science from Wake Forest University, but disavows all knowledge of the contents of his Master’s thesis. He can usually found coding with the aid of Cherry Coke Zero in the daytime and pontificating over a single malt scotch in the evening.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>For over 50 years, Kforce has operated as a customer-centric partner offering a variety of engagement options to address the unique needs of our clients. We focus on engineering business solutions and user experience for clients ranging from start-up to enterprise level. As the 5th largest technology staffing and solutions firm, Kforce provides over 12,000 dedicated technology consultants annually. Our portfolio highlights successful partnerships with more than 1,000 customers, including 70% of the Fortune 100.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/UHv_Jog9Xuc">Video</a> |</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 17th 2017: Concepts of the Upcoming Ranges TS2017-04-21T00:00:00-07:002017-04-21T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2017-04-21:/may-2017.html<div class="section" id="job-fair">
<h2>Job Fair</h2>
<p>Continuing with our job fair activities Mainz Bradley Group will be available at 6:00 <span class="caps">PM</span> to talk to anyone looking for a job in more detail then we have done in the past. In particular this month Aim will be offering tips on how to improve your …</p></div><div class="section" id="job-fair">
<h2>Job Fair</h2>
<p>Continuing with our job fair activities Mainz Bradley Group will be available at 6:00 <span class="caps">PM</span> to talk to anyone looking for a job in more detail then we have done in the past. In particular this month Aim will be offering tips on how to improve your resume. Come have some dinner with us and bring your resume along for a once over!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 17th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Ranges <span class="caps">TS</span> is almost done. This talk introduces the latest experimental additions to the standard library, and the concepts and the design decisions behind them. We’ll also explore the future directions the Standard Library is likely to take and touch on how Ranges intersect with Coroutines. The future looks very composable! This talk would interest you if you wish the <span class="caps">STL</span> were easier to use; or if you like generators, comprehensions, and <span class="caps">LINQ</span> from python and C#.</p>
</div>
<div class="section" id="speaker-bio">
<h2>Speaker Bio</h2>
<p>Eric Niebler has been programming C++ for over 20 years (!). His first stint was at Microsoft, where he tinkered with libraries in the Visual C++ team. Then he consulted solo and with BoostPro for many years, during which time he traveled the world. He’s now resting comfortably in Seattle again, having married a local sweetheart and accepting full-time work at Facebook, where he tinkers with libraries. Eric has been a long-time contributor to Boost, the C++ Standardization Committee, and <span class="caps">NWCPP</span>. He is the author of the popular range-v3 library, and firmly believes programming can and should be artful and fun.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Mainz Brady Group is a privately held staffing firm originally based in California; with offices in San Mateo, Oakland, Portland, and Seattle. It was founded in 2003 by Richard Mainz and Eric Brady; both have over 25 years of technical staffing experience and have held executive level positions within large, international staffing organizations.</p>
<p><span class="caps">MBG</span> was created because we believed there was a better way of recruiting: one in which the needs of our clients and candidates come first. Our relationship-based approach focuses on both clients and candidates and their unique and individual needs. We want to positively impact the people and businesses of the technology communities we support.</p>
<p>Mainz Brady Group is a technology focused recruiting firm, and is recognized as a leader in providing comprehensive employment and staffing solutions to the best known companies; in finance, retail, research <span class="amp">&</span> development, sports equipment, healthcare, biotechnology, gaming, and telecommunications.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/4OgAjT6HTG8">Video</a> |
<a class="reference external" href="/talks/2017/HelloRangesTS.pptx">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 19th 2017: The Curse of Knowledge: Humane Library Design with D2017-04-01T00:00:00-07:002017-04-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2017-04-01:/april-2017.html<div class="section" id="job-fair">
<h2>Job Fair</h2>
<p>Continuing with our job fair activities Aim Consulting will be available at 6:00 <span class="caps">PM</span> to talk to anyone looking for a job in more detail then we have done in the past. In particular this month Aim will be offering interview advice. How to prepare for an …</p></div><div class="section" id="job-fair">
<h2>Job Fair</h2>
<p>Continuing with our job fair activities Aim Consulting will be available at 6:00 <span class="caps">PM</span> to talk to anyone looking for a job in more detail then we have done in the past. In particular this month Aim will be offering interview advice. How to prepare for an interview, how to handle the technical interview and what to do when you are not sure in an interview. Come have some dinner with us and bring your interview questions!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 19th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Curse of Knowledge is a cognitive bias where a highly skilled person unknowingly assumes that others have the required background to understand a given topic. But what happens when a group of intelligent, like-minded, software engineers design a library? This talk will compare and contrast library designs with an emphasis on how we can use the power of D to improve the usability of our libraries. This exploration of library design will culminate with a discussion of how well designed libraries can be used to rapidly construct the services that businesses rely on. While the examples are given in D, this presentation is applicable to anyone who builds or maintains libraries in any language.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Adam Wilson is a Software Engineer at Microsoft working on a large scale analytics service for Office 365. He has over 18 years of experience writing code in a plethora of languages, but has focused on C++, C#, and D. Adam also holds a Computer Game Development Certificate from Edmonds Community College which he earned in 2007. In his free time he enjoys spending time with his wife, reading science-fiction, flying light aircraft, and hacking on D code.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p><span class="caps">AIM</span> Consulting combines technical expertise with an understanding of business goals to solve your toughest challenges. We know technology and can help you design for the user experience, build innovative software, leverage data for actionable insights, implement modern processes and tools, and maintain critical applications and systems.
Our engagement model is designed with flexibility in mind for long-term partnerships. From strategy and implementation to sustained services, we provide technology consultants in custom configurations to fit your priorities and scale over the lifecycle of your solutions.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/_grusHT92Eg">Video</a> |
<a class="reference external" href="/talks/2017/TheCurseOfKnowledge.pptx">Slides</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 15th 2017: C++ Code Productivity with Visual Studio 20172017-02-27T00:00:00-08:002017-02-27T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2017-02-27:/march-2017.html<div class="section" id="job-fair">
<h2>Job Fair</h2>
<p>Folks we are going to try something a bit different this month. AeroTek will be available at 6:00 <span class="caps">PM</span> to talk to anyone looking for a job in more detail then we have done in the past. If you are looking for a job please bring a …</p></div><div class="section" id="job-fair">
<h2>Job Fair</h2>
<p>Folks we are going to try something a bit different this month. AeroTek will be available at 6:00 <span class="caps">PM</span> to talk to anyone looking for a job in more detail then we have done in the past. If you are looking for a job please bring a resume and show up early to get some 1:1 time with the recruiters!!!</p>
</div>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p><span class="caps">NOTE</span>: We are in Building 41, Townsend this month. This is <span class="caps">NOT</span> our normal meeting room!!!</p>
<div class="line-block">
<div class="line">March 15th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line"><a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Building 41, Townsend</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">16071 <span class="caps">NE</span> 36th Way,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>An overview of what’s new in Visual Studio 2017 for C++ developers. Take advantage of improvements to productivity tools like IntelliSense, Go To, and Find All References, see the latest debugging enhancements, and learn more about the brand new from-the-ground-up installation experience. Going even further, you can learn about our new “Open Folder” mode, which lets you bypass the usual <span class="caps">VS</span> project system to open any folder with C++ code, as well as our investments in CMake support, to help you get working in CMake-based projects more easily. Visual Studio 2017 also comes with substantial performance improvements to save you time, better standard conformance in the C++ compiler and a set of workloads focused around different types of cross-platform projects targeting Linux, Windows, iOS or Android.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Augustin Popa is a Program Manager on the Visual Studio C++ team. He works on the developer productivity experience, constantly looking for ways to save developers time in their day that can be better spent on other things. Productivity encompasses IntelliSense, code editing and navigation, refactoring, code visualization, formatting, and more. Feel free to send some feedback his way as well about Visual Studio if there is something you’d like Microsoft to work on.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/attribution_link?a=a4lIr1F3OkNPgNfT&u=/watch%3Fv%3DKXKGlTjJ6DE%26feature%3Dem-upload_owner">Video</a> |
<a class="reference external" href="/talks/2017/CPPVS2017.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Aerotek is one of the largest staffing firms in the <span class="caps">US</span> today, and specializes in staffing for contract, contract to direct, and direct hire placements in a variety of industries and skill sets. Our local Technical Recruiting staff specializes in placing entry level to senior manager level individuals in a variety of industries including Aerospace, Medical Device, Industrial, and Consumer products with a focus on embedded engineering skill sets to include Hardware, Firmware, and Embedded Software and Test Engineering professionals from initial concept to final product release.
We also staff for placements as Mechanical, Electrical, Manufacturing, Process, Program and Project Management, and Quality Engineering skill sets to work in manufacturing and R&D companies in the greater Seattle area.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
February 15th 2017: C++ Move constructors again now that we can use them2017-02-01T00:00:00-08:002017-02-01T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2017-02-01:/february-2017.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p><span class="caps">NOTE</span>: We are in Building 37, room 1717 this month. This is <span class="caps">NOT</span> our normal meeting room!!!</p>
<div class="line-block">
<div class="line">February 15th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1717, <a class="reference external" href="https://www.bing.com/maps?v=2&cp=47.6385125270791~-122.126272380441&lvl=16&dir=0&sty=r&rtp=~pos.47.6385125270791_-122.126272380441_near%2016071+NE+36th+Way%2C+Redmond%2C+WA+98052___a_&mode=D&rtop=0~0~0~&encType=1&q=16071+NE+36th+Way%2C+Redmond%2C+WA+98052">Building 37 Room 1717</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">16071 <span class="caps">NE</span> 36th Way,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Back in 2008 or so we got …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p><span class="caps">NOTE</span>: We are in Building 37, room 1717 this month. This is <span class="caps">NOT</span> our normal meeting room!!!</p>
<div class="line-block">
<div class="line">February 15th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Room 1717, <a class="reference external" href="https://www.bing.com/maps?v=2&cp=47.6385125270791~-122.126272380441&lvl=16&dir=0&sty=r&rtp=~pos.47.6385125270791_-122.126272380441_near%2016071+NE+36th+Way%2C+Redmond%2C+WA+98052___a_&mode=D&rtop=0~0~0~&encType=1&q=16071+NE+36th+Way%2C+Redmond%2C+WA+98052">Building 37 Room 1717</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">16071 <span class="caps">NE</span> 36th Way,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Back in 2008 or so we got our first introduction to move constructors that were coming with the C++0X standard. However, our compilers didn’t support it yet. Then later when our compilers did support it, we weren’t allowed to use the “new-fangled” features yet. Now that C++11 is in mainstream, let’s take another look at move constructors. Why would you use them, when would you use them, how would you use them, and how do they actually work under the hood? What is this ‘&&’ thing which does not mean logical and?</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Pete has worked as a programmer for over 25 years at Boeing, Microsoft, Amazon, Google, and other places. He has been attending <span class="caps">NWCPP</span> off and on for a lot of that time.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/KcBmR05DU7o">Video</a> |
<a class="reference external" href="/talks/2017/CopyElisionCpp.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Populus Group is built on one key belief; that everyone deserves an opportunity to succeed. This belief is what inspires us to build strong, trusting relationships with our customers, employees and partners so that we can live out this belief with them. We value the culture of our community above everything else; it feeds our service mentality and allows us to live out our beliefs every day. We get to spend our time helping those we serve to make their dreams come true, and we think that’s pretty cool.
We’re here to help our customers address challenges with their contingent workforce through solutions and services built around their needs, so they can spend their time on what matters most. We’ve built our expertise around compliance, immigration, payroll, and talent management. Our customers allow us to be their guide to mitigate risk, save time and money, find and retain top talent and meet diversity spend goals as we partner to make their organizations better. Populus Group is a privately held, certified minority and veteran owned business.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
January 18th 2017: Debugging Intermittent Issues2016-12-29T00:00:00-08:002016-12-29T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2016-12-29:/january-2017.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p><span class="caps">NOTE</span>: We are in Building 34, room 1001 this month. This is <span class="caps">NOT</span> our normal meeting room!!!</p>
<div class="line-block">
<div class="line">January 18th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Palouse Room, <a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">Building 34 Room 1001</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Debugging intermittent issues present a unique set of …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p><span class="caps">NOTE</span>: We are in Building 34, room 1001 this month. This is <span class="caps">NOT</span> our normal meeting room!!!</p>
<div class="line-block">
<div class="line">January 18th, 2017 at 7:00 <span class="caps">PM</span></div>
<div class="line">Palouse Room, <a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">Building 34 Room 1001</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Debugging intermittent issues present a unique set of challenges and requirements to the developer. Of particular interest is question “did this fix actually solve the problem, or am I just getting lucky today?” This talk will show you how to determine, with some level of confidence, if the issue is really solved or just not showing up. In addition issues which only show up rarely have a habit of accumulating until some issue seems to be happening all the time. Techniques for untangling the interaction of multiple issues will be discussed.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Lloyd Moore is the founder and owner of CyberData Corporation, which provides consulting services in the robotics, machine vision and industrial automation fields. Lloyd has worked in software industry for 25 years. His formal training in biological-based artificial intelligence, electronics, and psychology. Lloyd is also currently the president of the Northwest C++ User’s Group and an organizer of the Seattle Robotics Society Robothon event.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/7weo84Er9tQ">Video</a> |
<a class="reference external" href="/talks/2017/IntermittentDebugging.pptx">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Cascade Engineering Services, Inc. is an engineering and technical services company providing engineering services in product engineering, consumer products, avionics, lab services in testing and calibration. Cascade Engineering Services also provides engineering talents to support our clients with their hiring needs.</p>
<p>The company is a privately held corporation founded in 1994 with headquarters in Redmond, Washington. We provide our services across the globe to our customers, ranging from small startup companies to Fortune 500 companies.</p>
<p>The multidisciplinary team here at Cascade Engineering Services has experience in multiple diverse industries. This enables us to design and implement the most effective solutions, reducing product time to the market and maximizing quality. We bring together a diverse team of skilled professionals, start of the art test and lab facilities, software development team, and robust <span class="caps">CAD</span>, <span class="caps">FEA</span>, and <span class="caps">CFD</span> tools to address diverse technical challenges. We can help take a product from conceptual stage through design, development, prototype and certification activities or we can work on focused areas our customers need help.</p>
<p>Client confidentiality is of utmost importance to us. We keep projects and products confidential and do not advertise our role in helping our customers develop their products.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
November 16th 2016: Memory Safety and the D Programming Language2016-11-22T00:00:00-08:002016-11-22T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2016-11-22:/November-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 16th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>While memory safe code can be written in any language, it
has become increasingly obvious that languages need to be
able to mechanically check memory safety. Errors …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 16th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>While memory safe code can be written in any language, it
has become increasingly obvious that languages need to be
able to mechanically check memory safety. Errors in memory
safety are regularly exploited to breach security, and
is all too commonplace in code that was thought to be secure.
Relying on best practices and code reviews simply isn’t good enough anymore.</p>
<p>This presentation is about D’s approach to mechanically checking
for memory safety in a language with pointers.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several
other languages. He’s an expert in all areas of compiler technology, including front ends, optimizers, code generation,
interpreter engines and runtime libraries. Walter regularly writes articles about compilers and programming, is known for
engaging and informative presentations, and provides training in compiler development techniques. Many are surprised to
discover that Walter is also the creator of the wargame Empire, which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Video -Sorry Folks the audio for this presentation dropped out at 18 minutes in. We’ll get that fixed!</p>
<p><a class="reference external" href="/talks/2016/MemorySafetyAndD.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>For over 50 years, Kforce has operated as a customer-centric partner offering a variety of engagement options to address the unique needs of our clients. We focus on engineering business solutions and user experience for clients ranging from start-up to enterprise level. As the 5th largest technology staffing and solutions firm, Kforce provides over 12,000 dedicated technology consultants annually. Our portfolio highlights successful partnerships with more than 1,000 customers, including 70% of the Fortune 100.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
October 19th 2016: Productive Parallel Programming At Scale2016-09-24T00:00:00-07:002016-09-24T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2016-09-24:/October-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 19th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Chapel is a portable, open-source language for parallel programming on laptops, clusters, clouds, and supercomputers. Chapel strives to be as programmable as Python, as fast as Fortran …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 19th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Chapel is a portable, open-source language for parallel programming on laptops, clusters, clouds, and supercomputers. Chapel strives to be as programmable as Python, as fast as Fortran, as portable as C, and as scalable as <span class="caps">MPI</span>. In this talk, I’ll provide some motivation for Chapel and then give a brief tour of its core features. I’ll wrap up by providing some project status and priorities for the future.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bradford Chamberlain is a Principal Engineer at Cray Inc. where he works on parallel programming models, focusing primarily on the design and implementation of the Chapel language in his role as technical lead for that project. Brad received his Ph.D. in Computer Science <span class="amp">&</span> Engineering from the University of Washington in 2001 where he focused on the design and implementation of the <span class="caps">ZPL</span> parallel array language. In the past, he has also worked on languages for embedded reconfigurable processors and on algorithms for accelerating the rendering of complex 3D scenes. Brad remains associated with the University of Washington as an affiliate faculty member. He received his Bachelor’s degree in Computer Science with honors from Stanford University in 1992.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/attribution_link?a=71Nzrm4nIG8&u=/watch%3Fv%3D-AYSCE6crwU%26feature%3Dem-upload_owner">Video</a> |
<a class="reference external" href="/talks/2016/ChapelForNWCPP2016.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Mainz Brady Group is a privately held staffing firm originally based in California; with offices in San Mateo, Oakland, Portland, and Seattle. It was founded in 2003 by Richard Mainz and Eric Brady; both have over 25 years of technical staffing experience and have held executive level positions within large, international staffing organizations.</p>
<p><span class="caps">MBG</span> was created because we believed there was a better way of recruiting: one in which the needs of our clients and candidates come first. Our relationship-based approach focuses on both clients and candidates and their unique and individual needs. We want to positively impact the people and businesses of the technology communities we support.</p>
<p>Mainz Brady Group is a technology focused recruiting firm, and is recognized as a leader in providing comprehensive employment and staffing solutions to the best known companies; in finance, retail, research <span class="amp">&</span> development, sports equipment, healthcare, biotechnology, gaming, and telecommunications.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
September 2016: CppCon2016-09-09T00:00:00-07:002016-09-09T00:00:00-07:00Rohit Patnaiktag:nwcpp.org,2016-09-09:/Sep-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p><span class="caps">TBD</span></p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Northwest C++ Users Group will be hosting three panels at CPPCon!</p>
<ul class="simple">
<li>Monday 09/19/2016 - Lunch Panel: How to work with universities to get more C++ courses and improve C++ education</li>
<li>Monday 09/19/2016 - Evening: Grill The Committee/The Future of C++</li>
<li>Wednesday …</li></ul></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p><span class="caps">TBD</span></p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Northwest C++ Users Group will be hosting three panels at CPPCon!</p>
<ul class="simple">
<li>Monday 09/19/2016 - Lunch Panel: How to work with universities to get more C++ courses and improve C++ education</li>
<li>Monday 09/19/2016 - Evening: Grill The Committee/The Future of C++</li>
<li>Wednesday 09/21/2016 8:30pm: Writing Secure C++</li>
</ul>
</div>
<div class="section" id="conference-resources">
<h2>Conference Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/user/CppCon">Video</a> |
<a class="reference external" href="https://github.com/CppCon/CppCon2016">Slides</a></p>
</div>
June 15th 2016: The LIQUiD Simulator2016-05-20T00:00:00-07:002016-05-20T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2016-05-20:/June-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 15th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>LIQUiD provides a modular software architecture for the simulation of quantum algorithms. It provides a high level interface and is independent of a specific quantum architecture. Recently …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 15th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>LIQUiD provides a modular software architecture for the simulation of quantum algorithms. It provides a high level interface and is independent of a specific quantum architecture. Recently we’ve released LIQUiD to the public for academic use. It is a free package that runs on Windows, Linux and <span class="caps">OSX</span> as a provided executable with built-in examples and sample scripts as well as a development environment (using Visual Studio or mono, also freely available) that allows the user to compile their own quantum algorithms into an executable. The package includes a 100 page User’s Manual as well as over 700 pages of <span class="caps">API</span> documentation. This talk will cover the basics of Quantum Computing as well as an overview of the simulator and its applications. See: <a class="reference external" href="http://StationQ.github.io/Liquid">http://StationQ.github.io/Liquid</a> if you’d like to “kick the tires” beforehand.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Martin Rotteler of Microsoft Research, Martin Roetteler received a Ph.D. in computer science from the University of Karlsruhe, Germany, in 2001. Subsequently, from 2003-2004 he held a post-doc position at the Institute for Quantum Computing from at U Waterloo. From 2005 on, he was a Research Staff Member with <span class="caps">NEC</span> Laboratories America. From 2007-2013 he was the leader of <span class="caps">NEC</span>’s Quantum <span class="caps">IT</span> group in Princeton. In 2013, Martin joined Microsoft Research in Redmond as a Senior Researcher. He worked on projects funded by <span class="caps">ARO</span>, <span class="caps">NSA</span>, the European Union, the German <span class="caps">DFG</span>, and he was the <span class="caps">PI</span> of the <span class="caps">IARPA</span> <span class="caps">QCS</span> project <span class="caps">TORQUE</span>, a joint effort between Raytheon/<span class="caps">BBN</span> Technologies, <span class="caps">NEC</span> Labs America, U Waterloo, and U Melbourne. Martin’s research focuses on quantum algorithms, quantum programming languages, and quantum error-correction.</p>
<p>Personal website: <a class="reference external" href="http://research.microsoft.com/en-us/people/martinro/">http://research.microsoft.com/en-us/people/martinro/</a></p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=_iDDtj6UhO0">Video</a> |
<a class="reference external" href="/talks/2016/QuantumLiquid.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Coming Soon!</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 18th 2016: C++ Modules - Spring Update2016-05-01T00:00:00-07:002016-05-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2016-05-01:/May-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 18th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>“Modules” are a frequently requested and long-awaited feature by C++ programmers. The basic idea is a direct language support for (a) expressing the boundaries and dependencies of …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 18th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>“Modules” are a frequently requested and long-awaited feature by C++ programmers. The basic idea is a direct language support for (a) expressing the boundaries and dependencies of program components; (b) isolating source codes from macro vagaries; (c) scaling compile time, especially for large projects, given the ubiquity of “headers-only” template libraries; (d) spur innovation and deployment of semantics-aware developer tools. I will give an overview of the design points, goals, with emphasis on how modules address the four major problems mentioned above. I will also address standardization process and implementation issues.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Gabriel Dos Reis is a Principal Software Engineer at Microsoft, with interests in trustworthy software, programming tools and techniques. He is also a researcher and a longtime member of the C++ community.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=mbhAQIZuI5k&feature=em-upload_owner#action=share">Video</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>We are here to help our customers with their biggest challenges have guided the solutions we’ve built, and our people have been defining our fun-loving culture. Along the way, we’ve accomplished some pretty amazing things; our teams represent flags from 17 countries and 4 branches of the armed forces, 55% of our management positions are held by women, 94% of our customers continue to put their trust in us, and our service mentality is engrained in our <span class="caps">DNA</span>.</p>
<p>Are you looking for that placement that will bring the right skills and energy to your team? Do you need a recruitment team with a laser focus on technical talent? With broad experience and deep expertise placing top-notch professional, <span class="caps">IT</span>, engineering and design talent, we provide job seekers with direct access to the industry’s leading recruiters, and clients with access to the finest talent the industry serves up. Our work across multiple industries enables us to be better counselors and service providers for job seekers and clients alike. A few of the industries we serve are <span class="caps">IT</span>, engineering, biotechnology, and healthcare.
Contact: Rachel Atchison, Account Manager Phone: 425 372 1243</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 20th 2016: Untangling Threads2016-04-01T00:00:00-07:002016-04-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2016-04-01:/April-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 20th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With the direction in developing hardware with more processing power, caching of data and power efficiency, it is necessary to review the complete ecosphere of processing threads …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 20th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With the direction in developing hardware with more processing power, caching of data and power efficiency, it is necessary to review the complete ecosphere of processing threads in a multithreaded environment. What will be presented is a look at this ecosphere and a way to utilize a proposed <span class="caps">STL</span> to handle complex threading problems to be more computationally efficient.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Brett Searles is the Principal Architect and Developer for Attobotics and is working on a universal compiler for embedded systems. He has also been working on a chip design and programming language for that chipset for a Virtual Surgical Center for the past 20 years. Brett is currently the Vice President of the <span class="caps">NWCPP</span> and the volunteer chair for CppCon.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/oU93WeV_bZA">Video</a> |
<a class="reference external" href="/talks/2016/UntanglingThreads.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Here at Akvelon, we integrate technology consulting, software development, and <span class="caps">IT</span> services in order to create successful business solutions. By leveraging Microsoft technologies to provide rapid, cost-effective implementations, Akvelon, in collaboration with our partners, develops cutting-edge products spanning multiple technology domains to consistently deliver high-quality solutions to our clients.</p>
<p>Our clients need help succeeding in their strategic goals and day-to-day missions. That’s where Akvelon comes in; we are problem solvers with deep technical knowledge, cutting edge ideas, and a passion for outstanding performance. We tackle the most difficult <span class="caps">IT</span> issues and challenges our clients face, delivering long lasting results with incredible value. We have years of experience helping clients drive innovation, productivity, and business performance.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 16th 2016: Linux and IoT for VC Users2016-03-01T00:00:00-08:002016-03-01T00:00:00-08:00Rohit Patnaiktag:nwcpp.org,2016-03-01:/march-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 16th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Marc Goodner will talk about debugging remotely on Linux, debugging <span class="caps">MCU</span> targets and connecting to the Azure IoT hub, all from within Visual Studio.</p>
<p>Links to further …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 16th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Marc Goodner will talk about debugging remotely on Linux, debugging <span class="caps">MCU</span> targets and connecting to the Azure IoT hub, all from within Visual Studio.</p>
<p>Links to further details:</p>
<ul class="simple">
<li><a class="reference external" href="http://blogs.msdn.com/b/vcblog/archive/2015/11/18/announcing-the-vs-gdb-debugger-extension.aspx">http://blogs.msdn.com/b/vcblog/archive/2015/11/18/announcing-the-vs-gdb-debugger-extension.aspx</a></li>
<li><a class="reference external" href="http://azure.microsoft.com/en-us/blog/visual-studio-connected-service-for-azure-iot-hub/">http://azure.microsoft.com/en-us/blog/visual-studio-connected-service-for-azure-iot-hub/</a></li>
</ul>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Marc Goodner is a program manager on the C++ team at Microsoft, focused on IoT. In his spare time, he helps run the local chapter of the Maker Garage, and works on projects related to 3-d printing and audio synthesis.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=7ji2ATPVGBA&feature=em-upload_owner">Video</a> |
<a class="reference external" href="https://blogs.msdn.microsoft.com/vcblog/2015/11/18/announcing-the-vs-gdb-debugger-extension/"><span class="caps">GDB</span> Debugger Extension</a> |
<a class="reference external" href="https://azure.microsoft.com/en-us/blog/visual-studio-connected-service-for-azure-iot-hub/">Azure IoT Hub</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Protingent is an employee owned (<span class="caps">ESOP</span>) technical staffing firm specializing in providing <span class="caps">IT</span> and engineering professionals for all areas of product design, development and test. We place high-caliber engineers with many of the leading technology companies in the <span class="caps">U.S.</span> We were founded in 2001 by an engineer and have always been dedicated to providing the right engineers that possess a high level of skill and knowledge regarding the technologies required to drive our clients’ success.
The intrinsic value of any enterprise comes down to the quality of its people. Our clients understand that cutting-edge products aren’t designed and developed in a void. It takes exceptional people and consistent communication and collaboration. These beliefs are at the core of Protingent and have been instrumental in our ability to build a team of exceptional people.
Corporate strategy is important, but the truth is that culture beats strategy every time. At Protingent, we are committed to finding the best and brightest and supporting them to a degree that promotes a dynamic of shared purpose. Being an employee-owned company has further cemented an engaged and collaborative environment. We work every day on maintaining and strengthening our culture and the relationships we have with each other, our clients and candidates.
The results have been profound. In other words, what kind of story does the data tell? We have been one of the fastest-growing companies in the United States for a number of years, have incredibly low internal turnover and are a top-tier vendor to numerous technology companies. Protingent has been recognized multiple years as a Best in Staffing Company by Inavero, an independent survey firm.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
February 17th 2016: C++ 2D Graphics Standardization2016-01-30T00:00:00-08:002016-01-30T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2016-01-30:/february-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 17th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Since many modern day languages support 2D graphics, C++ Standards Committee wanted to incorporate into the main language standard. Even though the standardization of the 2D display …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 17th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Since many modern day languages support 2D graphics, C++ Standards Committee wanted to incorporate into the main language standard. Even though the standardization of the 2D display was a huge undertaking, the need to standardize event handling was still necessary to add to the effort. Therefore, the presentation will be about the new proposal, that will be reviewed in Jacksonville, which will cover the handling of events and how it will interact the 2D display.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Brett Searles is the principal Architect and Developer for Attobotics working on a universal compiler for embedded systems. Also been working on a chip design and programming language for that chipset for a Virtual Surgical Center for the past 20 years. Currently Vice President of the <span class="caps">NWCPP</span> and volunteer chair for CppCon.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/-ZChpX04dOs">Video</a> |
<a class="reference external" href="/talks/2016/2DGraphicsStd.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Aerotek is one of the largest staffing firms in the <span class="caps">US</span> today, and specializes in staffing for contract, contract to direct, and direct hire placements in a variety of industries and skill sets. Our local Technical Recruiting staff specializes in placing entry level to senior manager level individuals in a variety of industries including Aerospace, Medical Device, Industrial, and Consumer products with a focus on embedded engineering skill sets to include Hardware, Firmware, and Embedded Software and Test Engineering professionals from initial concept to final product release.</p>
<p>We also staff for placements as Mechanical, Electrical, Manufacturing, Process, Program and Project Management, and Quality Engineering skill sets to work in manufacturing and R&D companies in the greater Seattle area.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
January 20th 2016: C++ Coroutines: A Negative Overhead Abstraction2015-12-18T00:00:00-08:002015-12-18T00:00:00-08:00Rohit Patnaiktag:nwcpp.org,2015-12-18:/january-2016.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 20th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ coroutines are one of the few major features that may land in C++17. We will look at the current standardization status, available experimental implementations and …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 20th, 2016 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ coroutines are one of the few major features that may land in C++17. We will look at the current standardization status, available experimental implementations and develop a small coroutine adapter over raw C networking APIs that will beat hand-crafted state machine in performance.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Gor Nishanov is from Microsoft’s C++ team.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/attribution_link?a=5kfOVp9AEJk&u=/watch%3Fv%3D43xAD6DiF4Y%26feature%3Dem-upload_owner">Video</a> |
<a class="reference external" href="/talks/2016/CppCoroutines.pptx">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Design Laboratory is a consulting company based in Bellevue, <span class="caps">WA</span> and has completed consulting projects since its founding in 1995 for companies in the Pacific Northwest and around the world. Today, Design Laboratory is managed by entrepreneurial veterans of software, finance and top-tier consulting. We offer cross-industry experience, deep expertise in strategy, operational issues, product and program management, plus world-class subject matter expertise in privacy issues and <span class="caps">CRM</span> implementation. Every Design Laboratory client, from global enterprise to growing start-up, receives customized attention, solutions and services that demonstrate our hallmarks.. <span class="caps">DLI</span> offers unique solutions providing end-to-end services for compliance management, content development, training design, marketing, video production, and project management. Providing accessibility support at Microsoft has been a service since 2011. We are a preferred vendor at Microsoft in project management and learning, and our contributions to compliance at Microsoft have helped to keep us on the preferred vendor list. We work closely with Trustworthy Computing (TwC) and the Legal <span class="amp">&</span> Corporate Affairs Regulatory Affairs team to ensure that we are up to date on the most recent Microsoft compliance requirements and processes, and that we are the go to company for providing compliance vendor services.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
November 18th 2015: STL Algorithms2015-11-01T00:00:00-07:002015-11-01T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2015-11-01:/november-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 18st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This is a presentation on <span class="caps">STL</span> algorithms, their mechanics, and some interesting tricks. The talk is a piece of his upcoming book on algorithms, and is preceded …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 18st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This is a presentation on <span class="caps">STL</span> algorithms, their mechanics, and some interesting tricks. The talk is a piece of his upcoming book on algorithms, and is preceded by Michael’s talk at CPPCon 2015.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Michael VanLoon is a Principal Software Engineer at F5 Networks. He has more than 30 years experience writing software across a variety of industries. He’s currently working on a book based on his talk from CPPCon 2015, “Algorithms in Action”.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/attribution_link?a=aVgyLoa9baM&u=/watch%3Fv%3DGBD0BqNvOyI%26feature%3Dem-upload_owner">Video</a> |
<a class="reference external" href="/talks/2015/STL_Algorithms_in_Action.pptx">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>F5 Networks is a networking appliances company specializing in the security, performance and availability of applications. Headquartered in Seattle, <span class="caps">WA</span>, its first claim to fame was Big-<span class="caps">IP</span> load balancing products and <span class="caps">SSL</span> offloading. Since then, it has grown to a global company with a platform serving large enterprise service providers and cloud.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
October 21th 2015: Qt in the Embedded World - How to create a device using Qt2015-10-07T00:00:00-07:002015-10-07T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2015-10-07:/october-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 21st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This presentation will discuss the tools are necessary to develop embedded software with Qt and what differences there are between each of the supported embedded platforms. The …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 21st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This presentation will discuss the tools are necessary to develop embedded software with Qt and what differences there are between each of the supported embedded platforms. The presentation will also cover using both the open source version of Qt as well as the commercial version and what the differences are in the context of device creation. Many live demonstrations will be used to illustrate how easy it is to develop software for embedded devices with Qt and its tooling.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Matthew Zanardi – Matt is the Northwest Account Manager for The Qt Company. He was born and raised in the Bay Area and Graduated from Michigan State University. If you want to inquire about anything Qt please reach out to him. Email: <a class="reference external" href="mailto:matthew.zanardi@theqtcompany.com">matthew.zanardi@theqtcompany.com</a> (408)499-8319.</p>
<p>Shrikant Dhumal works as senior Consulting Engineer for “The Qt Company”. Shrikant has a Masters in holds Computer Science and has a real passion for the industry. He has been associated with Qt since 2001 (version Qt 3.0.x) and is one top consultants. He has worked on porting Qt to different embedded platforms which involves integrating/implementing Qt Graphics plugins.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.qt.io/resource-center/">Videos</a> |</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Mainz Brady Group is a privately held staffing firm originally based in California; with offices in San Mateo, Oakland, Portland, and Seattle. It was founded in 2003 by Richard Mainz and Eric Brady; both have over 25 years of technical staffing experience and have held executive level positions within large, international staffing organizations.</p>
<p><span class="caps">MBG</span> was created because we believed there was a better way of recruiting: one in which the needs of our clients and candidates come first. Our relationship-based approach focuses on both clients and candidates and their unique and individual needs. We want to positively impact the people and businesses of the technology communities we support.</p>
<p>Mainz Brady Group is a technology focused recruiting firm, and is recognized as a leader in providing comprehensive employment and staffing solutions to the best known companies; in finance, retail, research <span class="amp">&</span> development, sports equipment, healthcare, biotechnology, gaming, and telecommunications.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
September 16th 2015: The BBC micro:bit and C++2015-08-14T00:00:00-07:002015-08-14T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2015-08-14:/september-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 16th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The <span class="caps">BBC</span> micro:bit is a small wearable and programmable mbed-based device that visibly features a 5x5 <span class="caps">LED</span> display, accelerometer, compass, buttons, I/O pins, Micro <span class="caps">USB …</span></p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 16th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The <span class="caps">BBC</span> micro:bit is a small wearable and programmable mbed-based device that visibly features a 5x5 <span class="caps">LED</span> display, accelerometer, compass, buttons, I/O pins, Micro <span class="caps">USB</span> plug, Bluetooth Low Energy antenna, <span class="caps">ARM</span> Cortex-M0 processor, and battery plug. Just like Arduino, the micro:bit can be connected to and interact with sensors, displays, and other devices. The first wave of micro:bits will land in <span class="caps">UK</span> schools this autumn, with every Year 7 student in the <span class="caps">UK</span> receiving a micro:bit, for free. As a partner on the micro:bit project, Microsoft’s goals are to provide: (1) a browser-based introductory programming experience for students who have never programmed before; (2) an architecture that allows students to dig deeper to uncover the many capabilities of the micro:bit; (3) materials and a platform to support teachers with the micro:bit in their classrooms. We extended TouchDevelop to support a progression of languages with accompanying browser-based editors. I’ll describe the technology stack we created in partnership with <span class="caps">ARM</span> and Lancaster University to make it simple for students to get started coding with micro:bit from a web browser, and then uncover the complexity that lies underneath in the micro:bit’s C++ runtime. The Block Editor provides an introduction to structured programming via blocks that can be snapped together. Touch Develop introduces a statically-typed scripting language with syntax-directed editor. Browser-based compilers from the Block Editor to Touch Develop and from Touch Develop to C++ automate the transition from a visual language to a text-based language, and then to C++, the language of the mbed-based micro:bit. For more information: see http://www.touchdevelop.com/microbit/ and http://research.microsoft.com/microbit/</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Thomas Ball (Tom) is a Principal Researcher and Research Manager at Microsoft Research. Tom graduated with a <span class="caps">B.A.</span> in Computer Science from Cornell University in 1987 and a <span class="caps">M.S.</span> and Ph.D. from the University of Wisconsin-Madison in 1993. From 1993-1999, he was a member of the technical staff at Bell Laboratories, where he made contributions in program visualization and program profiling. In 1999, Tom moved to Microsoft Research, where he started the <span class="caps">SLAM</span> software model checking project with Sriram Rajamani, which led to the creation of the Static Driver Verifier (<span class="caps">SDV</span>) tool for finding defects in device driver code. Tom and Sriram received the 2011 <span class="caps">CAV</span> Award “for their contributions to software model checking, specifically the development of the <span class="caps">SLAM</span>/<span class="caps">SDV</span> software model checker that successfully demonstrated computer-aided verification techniques on real programs.” Tom is a 2011 <span class="caps">ACM</span> Fellow for “contributions to software analysis and defect detection”. Since becoming a manager at Microsoft, he has nurtured research areas such as automated theorem proving, program testing/verification, empirical software engineering. His current focus is programming education via the TouchDevelop and <span class="caps">BBC</span> micro:bit projects</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=AaHSoQgWzr4">Video</a> |
<a class="reference external" href="/talks/2015/BBCmicrobitAndCPP.pptx">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Akvelon integrates technology consulting, software development, and <span class="caps">IT</span> services into successful business solutions. We leverage Microsoft technologies to provide rapid and cost-effective implementations. Akvelon develops cutting-edge products in collaboration with our partners, spanning multiple technology domains to consistently deliver high-quality solutions to our clients.</p>
<p>www.Akvelon.com</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
June 17th 2015: Porting Emacs via Native Client2015-05-25T00:00:00-07:002015-05-25T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2015-05-25:/june-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 17th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Townsend Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Bldg 41, Room 1511</a>, <span class="caps">NOTE</span>: <span class="caps">THIS</span> <span class="caps">IS</span> <span class="caps">NOT</span> <span class="caps">OUR</span> <span class="caps">NORMAL</span> <span class="caps">MEETING</span> <span class="caps">ROOM</span>!!!!</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>As the preferred text editor for a multitude of software developers, Emacs has been ported to a …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 17th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Townsend Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Bldg 41, Room 1511</a>, <span class="caps">NOTE</span>: <span class="caps">THIS</span> <span class="caps">IS</span> <span class="caps">NOT</span> <span class="caps">OUR</span> <span class="caps">NORMAL</span> <span class="caps">MEETING</span> <span class="caps">ROOM</span>!!!!</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>As the preferred text editor for a multitude of software developers, Emacs has been ported to a wide range of platforms. Recently, Emacs has come to the Web by way of a technology called Native Client. This talk explores the unique challenges of porting Emacs and Elisp to Native Client and the browser.</p>
<p>Native Client (NaCl), is an open-source technology that allows native machine code to run securely sandboxed in the browser. Two layers of sandboxing, a static verification inner sandbox combined with Chrome’s outer process sandbox, ensure users can safely run untrusted applications. Modified <span class="caps">GCC</span> and an <span class="caps">LLVM</span> based toolchains allow applications to target NaCl. An I/O <span class="caps">API</span> called <span class="caps">PPAPI</span>, mirroring the security constraints of Javascript, is provided to NaCl applications.</p>
<p>This talk will focus on the challenges of porting Emacs to NaCl including: emulation of <span class="caps">POSIX</span> APIs—processes, sockets, files—on top of Web-centric APIs, porting an X11 server and client libraries, adapting Elisp to NaCl’s memory layout, and packaging for an integrated experience. I will talk about the challenges of debugging the lisp that is a part of the editor itself. I’ll demonstrate Emacs running in Google Chrome and explorer how it can interoperate with other developer tools we’ve ported to the browser.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Pete has worked as a programmer for over 25 years at Boeing, Microsoft, Amazon, Google, and other places. He has been attending <span class="caps">NWCPP</span> off and on for a lot of that time.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/GQBlOv9pLlA">Video</a> |
<a class="reference external" href="/talks/2015/FOSDEM_Building_Emacs_with_NaCl.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>CyberData Corporation was founded by Lloyd Moore in 1996. CyberData specializes in providing custom software and hardware solutions for robotics, machine vision, embedded systems and industrial automation applications. Our mission is to create high quality, innovative technology for the global marketplace.</p>
<p>CyberData also conducts internal research into the areas of robotics, machine vision and artificial intelligence. Specific technologies are then either licensed, sold as products or released as open source, depending on the specific nature and goals of the project. Technological developments are also provided directly to our clients through our consulting services.</p>
<p><a class="reference external" href="http://www.CyberData-Robotics.com">http://www.CyberData-Robotics.com</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
May 20th 2015: STL Concepts and Ranges2015-04-23T00:00:00-07:002015-04-23T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2015-04-23:/may-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 20th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With concepts and ranges coming, big changes are in store for the Standard Library and for the style of idiomatic C++. The effort to redefine the Standard …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 20th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With concepts and ranges coming, big changes are in store for the Standard Library and for the style of idiomatic C++. The effort to redefine the Standard Library is picking up pace. Come hear about one potential future from one of the key people driving the change. In this talk, Eric works through a tricky example and shows an elegant solution rooted both in yesterday’s <span class="caps">STL</span> and tomorrow’s. He will speak briefly about where we are in the process to reinvent and reinvigorate the Standard Library.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Eric Niebler is a leading expert on library design in modern C++. He has freelanced as a professional C++ developer since 2003, has contributed to numerous Open Source projects, is a member of the <span class="caps">ISO</span> C++ Standardization Committee, the Boost Steering Committee, and is a Boost Release Manager. He is a keynote speaker at this year’s C++Now conference in Aspen, and keynoted the 2013 Meeting C++ in Dusseldorf, Germany. Eric’s range-v3 library, which re-imagines the <span class="caps">STL</span> with concepts and ranges, forms the basis of several serious proposals to modernize the core of the Standard Library.</p>
<p>Eric spent over two years living nomadically, working remotely from the coffee shops of the world.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://youtu.be/uXBcwcF3ln4">Video</a> |
<a class="reference external" href="/talks/2015/ranges-calendar-nwcpp-2015-05.pdf">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Our sponsor this month is Populus Group: Since 2002, our customer’s biggest challenges have guided the solutions we’ve built, and our people have been defining our fun-loving culture. Along the way, we’ve accomplished some pretty amazing things; our teams represent flags from 17 countries and 4 branches of the armed forces, 55% of our management positions are held by women, 94% of our customers continue to put their trust in us, and our service mentality is engrained in our <span class="caps">DNA</span>.</p>
<p>Are you looking for that placement that will bring the right skills and energy to your team? Do you need a recruitment team with a laser focus on technical talent? With broad experience and deep expertise placing top-notch professional, <span class="caps">IT</span>, engineering and design talent, we provide job seekers with direct access to the industry’s leading recruiters, and clients with access to the finest talent the industry serves up. Our work across multiple industries enables us to be better counselors and service providers for job seekers and clients alike. A few of the industries we serve are <span class="caps">IT</span>, engineering, biotechnology, and healthcare.</p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
April 15th 2015: Pushing the Boundaries of C++ Code Generation2015-04-01T00:00:00-07:002015-04-01T00:00:00-07:00Rohit Patnaiktag:nwcpp.org,2015-04-01:/april-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 15th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>It is not uncommon to see projects using C++ Code Generation to build initial .h and .cpp files out of <span class="caps">UML</span> models, or serialization/marshalling code for …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 15th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>It is not uncommon to see projects using C++ Code Generation to build initial .h and .cpp files out of <span class="caps">UML</span> models, or serialization/marshalling code for data types. However there are further potential applications in aspect orientation, performance tracking, and various types of testing. In a world where developers are expected to become more and more agile, it is more important than ever to hunt down things that are automatable and this talk can give you some ideas.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bilgem Cakir is a Senior <span class="caps">SDE</span> in Amazon. After 4 years in embedded software for consumer electronics and 2 years of game development in Europe, Bilgem moved over to <span class="caps">U.S.</span> and joined the Microsoft DirectX team. Six years and two versions of <span class="caps">D2D</span> later, his passion for the field of computer graphics sent him over to Amazon Digital products group. He spent the last 3 years, working on the Dynamic Perspective feature of the Fire Phone. Bilgem is also a well-known coder in the European demoscene. In addition to computer graphics his interests include, game engines, C++ patterns, code generation and software testing.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Since 1991, Collabera has been a leading provider of <span class="caps">IT</span> staffing solutions. With over 9,000 professionals working across 3 continents Collabera is one of the top 10 <span class="caps">U.S.</span> <span class="caps">IT</span> Staffing firms. Recognized from Staffing Industry Analysts as “Best Staffing Firms to Work For” 3 years in a row, we have the history, processes and most of all jobs that make Collabera a strong option when considering your next career move.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/attribution_link?a=9Md9LWoQupw&u=/watch%3Fv%3DYM4xOjPeFWI%26feature%3Dem-upload_owner">Video</a></p>
</div>
<div class="section" id="digital-media-links">
<h2>Digital Media Links</h2>
<ul class="simple">
<li>Sign up for our <a class="reference external" href="http://groups.google.com/group/NwcppAnnounce1">announcements mailing list</a> If you want to be more involved, sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">volunteers</a> list</li>
<li>Check out our web page at <a class="reference external" href="http://www.nwcpp.org/">http://www.nwcpp.org/</a></li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook Group</a></li>
<li>Follow our <a class="reference external" href="https://plus.google.com/104974891006782790528/">Google+</a> page</li>
<li>Tune in to our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube</a> and <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo</a> channels</li>
</ul>
</div>
March 18th 2015: The Go Programming Language2015-02-28T00:00:00-08:002015-02-28T00:00:00-08:00Rohit Patnaiktag:nwcpp.org,2015-02-28:/march-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 18th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Go for C++ devs
The talks covers the basics of Go: its origin, philosophy, and main features.
It has a focus on how C++ aspects map (or …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 18th, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Go for C++ devs
The talks covers the basics of Go: its origin, philosophy, and main features.
It has a focus on how C++ aspects map (or not) onto Go, giving special detail to object orientation, inheritance vs
composition, and interfaces.
Last but not least, concurrency is a first class citizen in Go, so an overview and demonstration will conclude the talk.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Francesc Campoy Flores is a Developer Advocate for Go and the Cloud at Google. He joined the Go team in 2012 and since then he has written some considerable didactic resources and traveled the world attending conferences, organizing live courses, and meeting fellow gophers. He joined Google in 2011 as a backend software engineer working mostly in C++ and Python, but it was with Go that he rediscovered how fun programming can be.</p>
<p>You can find him on twitter as @francesc.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=y2bLGIw4o7k">Video</a>
<a class="reference external" href="http://talks.golang.org/2015/go4cpp.slide#1">Slides</a></p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>We’re thrilled to be a <span class="caps">NWCPP</span> sponsor! Xtreme Consulting is locally owned and headquartered in Kirkland, <span class="caps">WA</span>. We provide a wide-range of business and <span class="caps">IT</span> consulting solutions, managed services, and staff augmentation. We actively recruit for fun, smart, and career-driven <span class="caps">IT</span> professionals who bring an enthusiasm for personal growth and accelerating success for our clients. Xtreme’s consultants are provided the opportunity to work with and for some of the best technology companies in the industry. We work hard to create a passionate, supportive environment where employees can reach their career development goals, enjoy exceptional benefits, and have fun all at the same time.</p>
<p>Xtreme focuses on solutions and services including analysis, design, architecture, development, testing, implementation, maintenance and support of a variety of software technologies with specific emphasis on portal development, technical content creation, virtual machine environments and client and server deployment. Visitxtremeconsulting.com for more information. You can view and apply to our open positions at <a class="reference external" href="http://www.xtremeconsulting.com/careers">http://www.xtremeconsulting.com/careers</a>.
Xtreme Contact: <a class="reference external" href="mailto:info@xtremeconsulting.com">info@xtremeconsulting.com</a></p>
</div>
Feburary 18, 2015—The STM32 Microcontroller2015-02-02T00:00:00-08:002015-02-02T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2015-02-02:/february-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 18st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The talk will cover tools and techniques related to the <span class="caps">ST</span> Microelectronics <span class="caps">STM32</span> microcontrollers.
Agenda: <span class="caps">ST</span> Overview, <span class="caps">ST</span> Nucleo Ecosystem Overview, <span class="caps">ARM</span> mbed Ecosystem Overview (tentative), <span class="caps">STM32 …</span></p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 18st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The talk will cover tools and techniques related to the <span class="caps">ST</span> Microelectronics <span class="caps">STM32</span> microcontrollers.
Agenda: <span class="caps">ST</span> Overview, <span class="caps">ST</span> Nucleo Ecosystem Overview, <span class="caps">ARM</span> mbed Ecosystem Overview (tentative), <span class="caps">STM32</span> on mbed, <span class="caps">STM32</span> Rapid Prototyping Tools Demo, Q/A</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Slim Jallouli Sr. Field Applications Engineer
Slim has been with STMicro in the <span class="caps">MCU</span> group for over 12 years. He has a broad range of expertise in embedded software, <span class="caps">STM32</span> and <span class="caps">ARM</span> Cortex-M, <span class="caps">ARM7</span> and <span class="caps">ARM9</span>, <span class="caps">USB</span>, general electronics.</p>
<p>Ken Sullivan, Executive Account Manager
Ken has been with STMicro for 2 years. He has been in sales and marking in the <span class="caps">PNW</span> electronics industry for over 30years.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=Ekwyr5pW2xE">Video</a> |
<a class="reference external" href="/talks/2015/STMicro_Presentation.pdf">Slides</a></p>
</div>
January 21, 2015—Interfacing D To Legacy C++ Code—Walter Bright2015-01-24T00:00:00-08:002015-01-24T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2015-01-24:/january-2015.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 21st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ programmers have developed a vast investment of existing code.
Use of this code from other languages is normally impractical.
Walter shows how this code can be …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 21st, 2015 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ programmers have developed a vast investment of existing code.
Use of this code from other languages is normally impractical.
Walter shows how this code can be accessible from the D programming language.</p>
<p>C is the lingua franca of the programming language industry.
By presenting a C interface, most languages can connect with one another,
and connect to a vast treasure house of C code.
But C++ code is very hard to provide an interface to,
and almost no languages even attempt it.
I’d long ago decided that in order to provide a direct interface
from D to C++ would require essentially adding the full semantics of a C++ compiler to D,
and that would be impractical.
But the idea persistently recurs,
as there is a lot of interest in interfacing D to legacy C++ code.</p>
<p>It turns out that we actually can, with minor adjustments to D,
directly interface to quite a bit of C++,
especially if one is willing to be a bit flexible on both the C++ and D sides.
This presentation goes through the principles on how this works,
what works and what doesn’t work,
and how one can retain an investment in C++ code while migrating to D.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.walterbright.com/">Walter Bright</a>
is the creator and first implementer of the D programming language
and has implemented compilers for several other languages.
He’s an expert in all areas of compiler technology,
including front ends, optimizers, code generation,
interpreter engines and runtime libraries.
Walter regularly writes articles about compilers and programming,
is known for engaging and informative presentations,
and provides training in compiler development techniques.
Many are surprised to discover that Walter is also the creator of the wargame Empire,
which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Since 1991, Collabera has been a leading provider of <span class="caps">IT</span> staffing solutions. With over 9,000 professionals working across 3 continents Collabera is one of the top 10 <span class="caps">U.S.</span> <span class="caps">IT</span> Staffing firms. Recognized from Staffing Industry Analysts as “Best Staffing Firms to Work For” 3 years in a row, we have the history, processes and most of all jobs that make Collabera a strong option when considering your next career move.</p>
<p>Chase Wegman
Technical Recruiter
Phone: 425-298-1392 | Mobile: 763-227-0247 | Fax: 973-292-2838 |
<a class="reference external" href="http://www.collabera.com">Collabera</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.youtube.com/watch?v=IkwaV6k6BmM">Video</a> |
<a class="reference external" href="/talks/2015/DInterfacing.pdf">Slides</a></p>
</div>
20142014-12-31T00:00:00-08:002014-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2014-12-31:/2014-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2014.html">January 15, 2014 — Static Analysis: More than finding bugs — Bob Archer</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2014.html">February 19, 2014 — Test-Driven Development — Matt Becker and Madhavan Lakshminarayanan</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2014.html">March 19, 2014 — C++17: I See a Monad in Your Future — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2014.html">April 16, 2014 — The Chapel Programming Language — Thomas Van Doren</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2014.html">May 21, 2014 — Agile Architecture …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2014.html">January 15, 2014 — Static Analysis: More than finding bugs — Bob Archer</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2014.html">February 19, 2014 — Test-Driven Development — Matt Becker and Madhavan Lakshminarayanan</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2014.html">March 19, 2014 — C++17: I See a Monad in Your Future — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2014.html">April 16, 2014 — The Chapel Programming Language — Thomas Van Doren</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2014.html">May 21, 2014 — Agile Architecture — Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2014.html">June 18, 2014 — High Reliability Systems — Lloyd Moore</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2014.html">July 2014: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2014.html">August 2014: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2014.html">September 17, 2014 — Parallelism in the Standard C++: What to Expect in C++ 17 — Artur Laksberg</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2014.html">October 15, 2014 — Compiler Technologies — Jim Hogg</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2014.html">November 19, 2014 — Debugging, Profiling, and Diagnostics for C++ in Visual Studio vNext
and Beyond — Dan Taylor</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2014.html">December 2014: No Meeting</a></p>
December 2014: No Meeting2014-12-01T00:00:00-08:002014-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2014-12-01:/december-2014.htmlNovember 19, 2014—Debugging, Profiling, and Diagnostics for C++ in Visual Studio vNext and Beyond—Dan Taylor2014-10-19T00:00:00-07:002014-10-19T00:00:00-07:00George Reillytag:nwcpp.org,2014-10-19:/november-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 19th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Are you using the Visual Studio Debugger or Profiler
to diagnose issues in applications?
Join the Visual Studio team for a roadmap and discussion
of diagnostics features …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 19th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Are you using the Visual Studio Debugger or Profiler
to diagnose issues in applications?
Join the Visual Studio team for a roadmap and discussion
of diagnostics features for C++ developers
in the preview releases of Visual Studio “14” and beyond.
In this session we will demo the brand new and exciting capabilities
that we have added to the debugger
and the Performance and Diagnostics hub (profiler tools)
to increase your productivity.
We will then share our plans for moving forward
and solicit feedback from you to help us shape Visual Studio.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Dan Taylor is a Program Manager on the Visual Studio team.
He and his colleagues (some of whom will be joining Dan for this meetup)
are the team that designs and builds the debugging, profiling,
IntelliTrace, and other diagnostics experiences
that help make Visual Studio the most productive <span class="caps">IDE</span> on the planet.</p>
</div>
<div class="section" id="no-video-recording">
<h2>No Video Recording</h2>
<p><span class="caps">THIS</span> <span class="caps">SESSION</span> <span class="caps">WILL</span> <span class="caps">NOT</span> <span class="caps">BE</span> <span class="caps">RECORDED</span>.
It will include material which our speakers have opted to <span class="caps">NOT</span> have recorded,
as it is of a “non-public nature” at this time.
Because of this we will <span class="caps">NOT</span> be recording this session as we normally do,
so please plan to attend in person if you are interested in this topic.
We record as many sessions as possible,
but at the same time,
we also respect the speakers’ wishes to control
how the material they present is distributed.
Thanks for your understanding, and sorry for the late notice on this change.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Protingent is a locally owned staffing company
with our corporate headquarters being in Bellevue, <span class="caps">WA</span>.
Protingent provides engineering and <span class="caps">IT</span> professionals
with rewarding and exciting work opportunities
at technology businesses throughout the Pacific Northwest.
We are committed to helping you enhance your career
while engaging in meaningful and creative work
that drives your own personal spirit and passions.
Protingent recruiters work exclusively with technology professionals
and technology companies—we have technical understanding, expertise
and are well connected in the technology community.
Our principals bring deep personal understanding
of both the business of engineering
as well as the culture and nature of the engineer who operates within it.
More than a database, we have an unparalleled client network
built from years of collaboration with our clients.
We have daily access to hiring managers
at some of the most exciting technology companies.
We can get your resume directly into the right hands.
Protingent offers benefits
including health insurance, dental insurance, 401(k),
<span class="caps">PTO</span>, pre-tax commuter benefits and supplemental insurance.</p>
<p>Please visit <a class="reference external" href="http://www.protingent.com">Protingent.com</a> for additional information.</p>
<div class="line-block">
<div class="line">Attendes:</div>
<div class="line">Laura Garcia <a class="reference external" href="mailto:laura@protingent.com">laura@protingent.com</a></div>
<div class="line">Jeff Moorgate <a class="reference external" href="mailto:jeff@protingent.com">jeff@protingent.com</a></div>
<div class="line"><span class="caps">JOHN</span> <span class="caps">MARSH</span></div>
<div class="line">p 425 284 7762 f 425 642 8001</div>
<div class="line">www.protingent.com</div>
</div>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<ul>
<li><p class="first">Configuring <strong>Breakpoints</strong>
(Conditional Expressions, Hit Count, Filter, and Tracepoints)
is easier with the modern peek style <span class="caps">UI</span>,
and more discoverable with the new breakpoint toolbar.
As a bonus, you can now restore a deleted breakpoint.</p>
<blockquote>
<ul class="simple">
<li><a class="reference external" href="http://blogs.msdn.com/b/visualstudioalm/archive/2014/10/06/new-breakpoint-configuration-experience.aspx">Read the blog post</a></li>
<li><a class="reference external" href="http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/711">Watch the video</a></li>
</ul>
</blockquote>
</li>
<li><p class="first"><strong>PerfTips</strong> when you break in the debugger
(via breakpoints or stepping)
give you an unprecedented early view into potential performance issues</p>
<blockquote>
<ul class="simple">
<li><a class="reference external" href="http://blogs.msdn.com/b/visualstudioalm/archive/2014/08/18/perftips-performance-information-at-a-glance-while-debugging-with-visual-studio.aspx">Read the blog post</a></li>
<li><a class="reference external" href="http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/718">Watch the video</a></li>
</ul>
</blockquote>
</li>
<li><p class="first">We’ve made your <strong>startup debugging faster</strong>
and added resiliency during func eval</p>
<blockquote>
<ul class="simple">
<li><a class="reference external" href="http://blogs.msdn.com/b/vcblog/archive/2014/10/06/debugging-improvements.aspx">Read the blog post</a></li>
</ul>
</blockquote>
</li>
<li><p class="first">Debugging Android apps from any <span class="caps">IDE</span> and any language?
Use <strong>Visual Studio’s Emulator for Android</strong></p>
<blockquote>
<ul class="simple">
<li><a class="reference external" href="http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/introducing-visual-studio-s-emulator-for-android.aspx">Read the blog post</a></li>
<li><a class="reference external" href="http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/516">Watch the video</a></li>
</ul>
</blockquote>
</li>
<li><p class="first">Writing <strong>C++ code for Android in Visual Studio</strong>?
Use our debugging support</p>
<blockquote>
<ul class="simple">
<li><a class="reference external" href="http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/debugging-c-code-on-android-with-visual-studio-2015.aspx">Read the blog post</a></li>
<li><a class="reference external" href="http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/510">Watch the video</a></li>
</ul>
</blockquote>
</li>
<li><p class="first">Always wanted to <strong>diagnose memory issues while live debugging</strong>
(instead of post-mortem)?
Kick the tires on our new Memory Usage tool
in the all new Diagnostic Tools window</p>
<blockquote>
<ul class="simple">
<li><a class="reference external" href="http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/13/memory-usage-tool-while-debugging-in-visual-studio-2015.aspx">Read the blog post</a></li>
<li><a class="reference external" href="https://microsoft.sharepoint.com/teams/DD_VSPlat/Diagnostics/Dogfooding/Pages/default.aspx">Share your feedback in our dogfooding program</a></li>
</ul>
</blockquote>
</li>
</ul>
</div>
October 15, 2014—Compiler Technologies—Jim Hogg2014-09-29T00:00:00-07:002014-09-29T00:00:00-07:00George Reillytag:nwcpp.org,2014-09-29:/october-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 15th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Earlier this year, I taught a graduate class on Compilers
at University of Washington:
10 weeks of 3-hour, evening lectures.
The class project was an interesting mixture …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 15th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Earlier this year, I taught a graduate class on Compilers
at University of Washington:
10 weeks of 3-hour, evening lectures.
The class project was an interesting mixture of technologies:
use Java to implement a subset of itself,
but generate native machine code via an Assembler text.
In this session, I will outline what the class covered
– much of it appropriate for any language, such as C++,
that compiles to native code and has to concern itself
with calling conventions, stack frames, etc.
I’ll also reflect upon what I think worked well, and what, less well.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Jim is a Program Manager with Microsoft’s C++ Compiler Team,
involved in code-optimization.
In years gone by, he has worked on
Computational Physics, Seismic Processing and Operating Systems.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Protingent is a locally owned staffing company
with our corporate headquarters being in Bellevue, <span class="caps">WA</span>.
Protingent provides engineering and <span class="caps">IT</span> professionals
with rewarding and exciting work opportunities
at technology businesses throughout the Pacific Northwest.
We are committed to helping you enhance your career
while engaging in meaningful and creative work
that drives your own personal spirit and passions.
Protingent recruiters work exclusively with technology professionals
and technology companies—we have technical understanding, expertise
and are well connected in the technology community.
Our principals bring deep personal understanding
of both the business of engineering
as well as the culture and nature of the engineer who operates within it.
More than a database, we have an unparalleled client network
built from years of collaboration with our clients.
We have daily access to hiring managers
at some of the most exciting technology companies.
We can get your resume directly into the right hands.
Protingent offers benefits
including health insurance, dental insurance, 401(k),
<span class="caps">PTO</span>, pre-tax commuter benefits and supplemental insurance.</p>
<p>Please visit <a class="reference external" href="http://www.protingent.com">Protingent.com</a> for additional information.</p>
<div class="line-block">
<div class="line">Attendes:</div>
<div class="line">Laura Garcia <a class="reference external" href="mailto:laura@protingent.com">laura@protingent.com</a></div>
<div class="line">Jeff Moorgate <a class="reference external" href="mailto:jeff@protingent.com">jeff@protingent.com</a></div>
<div class="line"><span class="caps">JOHN</span> <span class="caps">MARSH</span></div>
<div class="line">p 425 284 7762 f 425 642 8001</div>
<div class="line">www.protingent.com</div>
</div>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/5WEX-yN34Ak">Video</a> |
<a class="reference external" href="/talks/2014/CompilerConstruction.pptx">Slides</a></p>
</div>
September 17, 2014—Parallelism in the Standard C++: What to Expect in C++ 17—Artur Laksberg2014-08-28T00:00:00-07:002014-08-28T00:00:00-07:00George Reillytag:nwcpp.org,2014-08-28:/september-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 17th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Parallelism in C++ has become more accessible
thanks to the plethora of libraries developed by the industry in the last decade or so.
The time has come …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 17th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Parallelism in C++ has become more accessible
thanks to the plethora of libraries developed by the industry in the last decade or so.
The time has come to bring the innovations developed in these libraries into the mainstream
– the <span class="caps">ISO</span> C++ Standard.
In this talk we’ll dive into a couple of proposals that are currently on the agenda
for the next major version of the C++ Standard
– the Task Regions and the Parallel <span class="caps">STL</span>.
Together, these proposals aim to make writing portable parallel code in C++
easy and productive.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Artur Laksberg leads the Visual C++ Libraries team at Microsoft.
His interests include concurrency, programming language and library design,
and modern C++.
Artur is one of the co-authors of the Parallel <span class="caps">STL</span> proposal;
his team has implemented a prototype of the proposal.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Aerotek is a leading provider of staff augmentation services
for engineering disciplines throughout the United States and abroad.
We focus on a number of disciplines in engineering
including specializing in areas of Embedded Systems
with positions in Hardware, Electrical Systems, and Software Engineering.
Positions that we offer include
Contract, Contract to Hire, and Direct Placement
with opportunities across industries
in Aerospace, Medical device, and Consumer products/Industrial goods.
In the Puget Sound
Aerotek currently has offices located in Bellevue, Everett, and Federal Way.</p>
<div class="line-block">
<div class="line">Tyler Roush</div>
<div class="line">Technical Recruiter</div>
<div class="line">Embedded Systems -Engineering</div>
<div class="line">425-893-6026 Phone</div>
<div class="line">425-893-6090 Fax</div>
<div class="line">11000 <span class="caps">N.E.</span> 33rd Pl.</div>
<div class="line">Suite 200</div>
<div class="line">Bellevue, <span class="caps">WA</span>, 98004</div>
<div class="line"><a class="reference external" href="http://www.aerotek.com/">http://www.aerotek.com/</a></div>
</div>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/d5wUSSCHLlA">Video</a> |
<a class="reference external" href="/talks/2014/NWCPP_Parallel_STL2.pptx">Slides</a></p>
</div>
CppCon, September 7–12, Bellevue, WA2014-08-08T00:00:00-07:002014-08-08T00:00:00-07:00Lloyd Mooretag:nwcpp.org,2014-08-08:/cppcon-2014.html<p>CppCon is a local C++ Conference (Bellevue, <span class="caps">WA</span>) happening on September 7–12, 2014.
Full details on the conference can be found at <a class="reference external" href="http://cppcon.org/">http://cppcon.org/</a></p>
<p>The conference will also be hosting several <span class="caps">FREE</span> sessions.
From 8:00 <span class="caps">AM</span> to 8:45 <span class="caps">AM</span> there will be several rooms holding various …</p><p>CppCon is a local C++ Conference (Bellevue, <span class="caps">WA</span>) happening on September 7–12, 2014.
Full details on the conference can be found at <a class="reference external" href="http://cppcon.org/">http://cppcon.org/</a></p>
<p>The conference will also be hosting several <span class="caps">FREE</span> sessions.
From 8:00 <span class="caps">AM</span> to 8:45 <span class="caps">AM</span> there will be several rooms holding various sessions
which are free to everyone.
The evening sessions and all sessions on Friday are also open to everyone.
In the evening one room will have a planned 90 minute presentation
and the other rooms will have two 45 minute open sessions.
<a class="reference external" href="http://cppcon.org/open-content-2014/">Full details on these sessions</a>.</p>
<p>Finally, there are also multiple volunteer opportunities available.
If you would like to help out at the conference in exchange for attendance
please get in touch with Brett Searles at
<a class="reference external" href="mailto:brett.searles@attobotics.net">brett.searles@attobotics.net</a>
to let him know that you are interested!!</p>
<p>Again, full details on the conference are available at <a class="reference external" href="http://cppcon.org/">http://cppcon.org/</a>;
please feel free to attend in which ever capacity suits you!!!</p>
August 2014: No Meeting2014-08-01T00:00:00-07:002014-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2014-08-01:/august-2014.htmlJuly 2014: No Meeting2014-07-01T00:00:00-07:002014-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2014-07-01:/july-2014.htmlJune 18, 2014—High Reliability Systems—Lloyd Moore2014-06-01T00:00:00-07:002014-06-01T00:00:00-07:00George Reillytag:nwcpp.org,2014-06-01:/june-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 18th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.vmware.com/company/careers">VMware</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk will explore various software techniques
that can be used to harden a software system
and make …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 18th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.vmware.com/company/careers">VMware</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk will explore various software techniques
that can be used to harden a software system
and make it more reliable in a harsh environment.
Specifically we will be looking at cases
where the software needs to be more reliable than “average”
but does not justify investment in a formal specification such as <span class="caps">MISRA</span> or <span class="caps">DO</span>-178B.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="https://www.linkedin.com/in/lloydamoore">Lloyd Moore</a> is the founder and owner of
<a class="reference external" href="http://www.cyberdata-robotics.com/">CyberData Corporation</a>,
which provides consulting services
in the robotics, machine vision and industrial automation fields.
Lloyd has worked in software industry for 25 years.
His formal training in biological-based artificial intelligence, electronics, and psychology.
Lloyd is also currently the president of the Northwest C++ User’s Group
and an organizer of the
<a class="reference external" href="http://www.robothon.org/">Seattle Robotics Society Robothon</a> event.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>VMware recruiting is pleased to be a <span class="caps">NWCPP</span> sponsor.
VMware has pioneered virtualization of x86 platform
separating software from underlying hardware.
We’re the leader in virtualization infrastructure solutions with three main product groups:</p>
<ol class="arabic simple">
<li><span class="caps">SDDC</span></li>
<li>end user computing</li>
<li>hybrid cloud computing</li>
</ol>
<p>VMware is currently ramping up our Bellevue office location
with roles on the Cloud Directory team.
The Cloud technology we develop continues to have an unprecedented impact on our customers,
and our rapid and continuing growth is proof of this.
To continue this momentum, we seek passionate and innovative software engineers
that can imagine, develop, and deliver transformative solutions
that impact and improve <span class="caps">IT</span> operations.</p>
<p>We’re assembling an invitation only hiring event August 14th-17th
for seasoned backend Software Developers.
If you’re interested in attending
or just would like more information about the hiring event
or opportunities VMware in general,
please send me your resume or contact me at: <a class="reference external" href="mailto:Halla@Vmware.com">Halla@Vmware.com</a></p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/9WWuSU1w_ZY">Video</a> |
<a class="reference external" href="/talks/2014/HighReliabilitySystems.pptx">Slides</a></p>
</div>
May 21, 2014—Agile Architecture—Alan Shalloway2014-04-27T00:00:00-07:002014-04-27T00:00:00-07:00George Reillytag:nwcpp.org,2014-04-27:/may-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 21st, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.xtremeconsulting.com/careers">Xtreme Consulting</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Never has architecture been more important than now.
Scrum acknowledges the need for quality code
but gives …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 21st, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Steptoe Room, <a class="reference external" href="http://nwcpp.org/steptoe-meeting-room.html">Cafeteria 40</a>,</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052.</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.xtremeconsulting.com/careers">Xtreme Consulting</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Never has architecture been more important than now.
Scrum acknowledges the need for quality code
but gives no advice on how to achieve Agile architecture.
The Kanban Method ignores it completely.
But as Agile moves into larger organizations we cannot continue to ignore it.</p>
<p>This talk discusses why Agile architecture is so important.
It then discusses what Agile architecture needs to accomplish
and provides some methods in how to achieve this.
This seminar will touch on the why, what and how as summarized here:</p>
<p><strong>Why</strong>: Architecture, whether Agile or otherwise, needs to provide the following:</p>
<ul class="simple">
<li>A vision</li>
<li>Enable extensions to the system</li>
<li>Enable new ways of implementing existing concepts</li>
<li>Foster testability throughout the system</li>
<li>De-couple systems from the application</li>
<li>Facilitate reuse of common functions across teams</li>
</ul>
<p><strong>How</strong>: To build Agile architectures, one must be able to:</p>
<ul class="simple">
<li>Do Emergent design</li>
<li>Do Testing at the behavior and functional level</li>
<li>Understand the different perspectives of conceptual Vs specification;
creation from using;
and system architecture from application architecture</li>
</ul>
<p><strong>What</strong>: Agile architectures will then enable us to:</p>
<ul class="simple">
<li>Inject new concepts with little to no rework</li>
<li>Add new implementations of existing concepts
with only minimally affecting the existing system</li>
<li>Change the system with little risk of introducing errors
and full confidence that if you do you will detect them</li>
</ul>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="https://twitter.com/alshalloway">Al Shalloway</a> is the founder and <span class="caps">CEO</span>
of <a class="reference external" href="http://www.netobjectives.com/">Net Objectives</a>.
With over 40 years of experience,
Al is an industry thought leader in Lean, Kanban,
product portfolio management, Scrum and agile design.
He helps companies transition to Lean and Agile methods enterprise-wide
as well teaches courses in these areas.
Al is a SAFe Program Consultant as well as a co-founder of the Lean Systems Society.
Al has developed training and coaching methods for Lean-Agile
that have helped Net Objectives’ clients
achieve long-term, sustainable productivity gains.
He is a popular speaker at prestigious conferences worldwide.
He is the primary author of Design Patterns Explained:
A New Perspective on Object-Oriented Design,
Lean-Agile Pocket Guide for Scrum Teams,
Lean-Agile Software Development:
Achieving Enterprise Agility and Essential Skills for the Agile Developer.
Al has worked in literally dozens of industries over his career.
He is a co-founder and board member for the Lean Software and Systems Consortium.
He has a Masters in Computer Science from <span class="caps">M.I.T.
</span>as well as a Masters in Mathematics from Emory University.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>We’re thrilled to be a <span class="caps">NWCPP</span> sponsor!
Xtreme Consulting is locally owned and headquartered in Kirkland, <span class="caps">WA</span>.
We provide a wide-range of business and <span class="caps">IT</span> consulting solutions,
managed services, and staff augmentation.
We actively recruit for fun, smart, and career-driven <span class="caps">IT</span> professionals
who bring an enthusiasm for personal growth
and accelerating success for our clients.
Xtreme’s consultants are provided the opportunity to work with and for
some of the best technology companies in the industry.
We work hard to create a passionate, supportive environment
where employees can reach their career development goals,
enjoy exceptional benefits, and have fun all at the same time.</p>
<p>Xtreme focuses on solutions and services
including analysis, design, architecture, development, testing,
implementation, maintenance and support of a variety of software technologies
with specific emphasis on portal development, technical content creation,
virtual machine environments and client and server deployment.
Visit <a class="reference external" href="http://xtremeconsulting.com">xtremeconsulting.com</a> for more information.
You can view and apply to our open positions at
<a class="reference external" href="http://xtremeconsulting.com/careers">xtremeconsulting.com/careers</a>.</p>
<div class="line-block">
<div class="line">Xtreme Contact:</div>
<div class="line">Melissa Potera – Senior Recruiter (Technical focus)</div>
<div class="line"><a class="reference external" href="mailto:melissap@xtremeconsulting.com">melissap@xtremeconsulting.com</a></div>
<div class="line">(425) 861-9460 Ext. 229</div>
</div>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/76xYZqVBDkQ">Video</a> |
<a class="reference external" href="/talks/2014/AgileArchitecture_cpp_v6as.pdf">Slides</a></p>
</div>
Microsoft Meeting Room: Steptoe, Cafeteria 402014-04-26T00:00:00-07:002014-04-26T00:00:00-07:00George Reillytag:nwcpp.org,2014-04-26:/steptoe-meeting-room.html<p>Our meetings are held at the
<a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">main Microsoft campus</a>,
in the Steptoe Room, <a class="reference external" href="https://www.google.com/maps/place/Microsoft+Cafe+40/">Cafeteria 40</a>,
at the corner of <span class="caps">NE</span> 31st and 156th Ave <span class="caps">NE</span>, in Redmond, <span class="caps">WA</span>.</p>
<p>The cafeteria lies between Building 40 and Building 41.
The Steptoe Room is at the south end of the cafeteria,
close to …</p><p>Our meetings are held at the
<a class="reference external" href="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg">main Microsoft campus</a>,
in the Steptoe Room, <a class="reference external" href="https://www.google.com/maps/place/Microsoft+Cafe+40/">Cafeteria 40</a>,
at the corner of <span class="caps">NE</span> 31st and 156th Ave <span class="caps">NE</span>, in Redmond, <span class="caps">WA</span>.</p>
<p>The cafeteria lies between Building 40 and Building 41.
The Steptoe Room is at the south end of the cafeteria,
close to the main entrance of Building 40.</p>
<p>As you turn off <span class="caps">NE</span> 31st St, you will see building 41 on your left
and a large parking structure on your right. Park there.
If you arrive after 6pm, you won’t need to register with Microsoft as a visitor.</p>
<p>Usually, we meet at 7pm on the <em>third Wednesday</em> of the month.
Come about 6:45pm for pizza.</p>
<p><em>Note</em>: You may need to knock on the window so that we can let you into the building.</p>
<div class="line-block">
<div class="line">Steptoe Room, <a class="reference external" href="https://www.google.com/maps/place/Microsoft+Cafe+40/">Cafeteria 40</a>.</div>
<div class="line">Microsoft Campus,</div>
<div class="line">156th Ave <span class="caps">NE</span>,</div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
<p>Disclaimer: <span class="caps">NWCPP</span> is not associated with Microsoft—although we take advantage of their generosity
in providing the venue (since 2006) and occasional speakers.</p>
<img alt="Microsoft Main Campus" src="http://nwcpp.org/images/MicrosoftMainCampusMap.jpg" />
April 16, 2014—The Chapel Programming Language—Thomas Van Doren2014-03-22T00:00:00-07:002014-03-22T00:00:00-07:00George Reillytag:nwcpp.org,2014-03-22:/april-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 16th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/41 Cafeteria</a>.</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.protingent.com/">Protingent</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><a class="reference external" href="http://chapel.cray.com/">Chapel</a>
is an emerging parallel programming language
whose design and development are being led by Cray Inc.
in collaboration with academia, computing centers, and …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">April 16th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/41 Cafeteria</a>.</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.protingent.com/">Protingent</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><a class="reference external" href="http://chapel.cray.com/">Chapel</a>
is an emerging parallel programming language
whose design and development are being led by Cray Inc.
in collaboration with academia, computing centers, and industry.
Chapel’s goal is to make parallel programming more productive,
from high-end supercomputers to commodity clusters
and multicore desktops and laptops.
It supports a multithreaded execution model
via high-level abstractions for data parallelism, task parallelism,
concurrency, and nested parallelism.
Chapel has a multi-resolution model that allows users
to write high level abstract code
while still maintaining control over lower level details as needed.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Thomas Van Doren is a software engineer at Cray Inc. in Seattle
where he works on Chapel.
Previously he worked at Cozi Inc.
and graduated from the University of Washington.
Thomas loves open source software, automation, and working on large scale problems.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Thank you for allowing us to be a sponsor <span class="caps">NWCPP</span>!
Protingent is a locally owned staffing company
with our corporate headquarters being in Redmond, <span class="caps">WA</span>.
Protingent provides engineering and <span class="caps">IT</span> professionals
with rewarding and exciting work opportunities at technology businesses
throughout the Pacific Northwest.
We are committed to helping you enhance your career
while engaging in meaningful and creative work
that drives your own personal spirit and passions.
Protingent recruiters work exclusively
with technology professionals and technology companies—we have technical understanding, expertise
and are well connected in the technology community.
Our principals bring deep personal understanding
of both the business of engineering
as well as the culture and nature of the engineer who operates within it.
More than a database, we have an unparalleled client network
built from years of collaboration with our clients.
We have daily access to hiring managers
at some of the most exciting technology companies.
We can get your resume directly into the right hands.
Protingent offers benefits
including health insurance, dental insurance, 401(k),
<span class="caps">PTO</span>, pre-tax commuter benefits and supplemental insurance.</p>
<p>Please visit <a class="reference external" href="http://www.protingent.com">Protingent.com</a>
for additional information.</p>
<p>Protingent Attendees:</p>
<div class="line-block">
<div class="line">John Marsh — Recruiting Manager 425-284-7762 <a class="reference external" href="mailto:john@protingent.com">john@protingent.com</a></div>
<div class="line">David Jorden — Technical Recruiter</div>
</div>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/lo3a_b34zX0">Video</a> |
<a class="reference external" href="/talks/2014/ChapelForNWCPPUsersGroup.pdf">Slides</a></p>
</div>
March 19, 2014—C++17: I See a Monad in Your Future—Bartosz Milewski2014-02-24T00:00:00-08:002014-02-24T00:00:00-08:00George Reillytag:nwcpp.org,2014-02-24:/march-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 19th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>
(Cafeteria).</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.aerotek.com/">Aerotek</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The introduction of lambdas and first class function objects
forever changed the nature of C++,
opening up the floodgates to functional programming.
Sometimes …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 19th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>
(Cafeteria).</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.aerotek.com/">Aerotek</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The introduction of lambdas and first class function objects
forever changed the nature of C++,
opening up the floodgates to functional programming.
Sometimes the best library design is based
on a pattern that’s very familiar to a Haskell programmer
but alien to a C++ programmer.
The new <tt class="docutils literal"><span class="pre">std::future</span></tt> proposal for C++17
hides several functional patterns
including that of a monad —
the boogeyman of generations of imperative programmers.
But once seen in action,
the monad becomes just one more pattern in the toolbox of a library designer.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://bartoszmilewski.com/">Bartosz Milewski</a> always tries to be where the action is.
He started as a quantum physicist when superstrings were hot,
joined the software industry to build the search engine for Microsoft Windows,
became an avid proponent of object-oriented programming,
and wrote a book on C++.
He got into concurrency and parallelism when the multicores hit the market,
and now he’s evangelizing functional programming as the Holy Grail of software development.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>We wanted to introduce ourselves to the C++ community!
Aerotek is a national staffing firm with a 30 year legacy of being the best!
Aerotek is the largest technical staffing firm in the <span class="caps">US</span>,
with over 200 offices nationwide.
We staff for a variety of industries for a wide range of skill sets,
including engineering, skilled trade, administrative and office support,
and scientific and clinical studies.
My name is Hope Rich,
and I work in our engineering division with a focus on embedded systems
as a Sr. Engineering Recruiter for the greater Seattle area.
My partner Tyler Roush and myself work with companies
in the aerospace, medical device, and consumer electronics industries
to help staff for engineering needs from an embedded <span class="caps">SW</span> background,
as well as for roles in mechanical, electrical, manufacturing,
and quality engineering skill sets.
In embedded, we focus to connect great engineers
with a background in <span class="caps">HW</span> design, Firmware, middleware,
and embedded <span class="caps">SW</span> applications development and test.
Please visit our web page for additional details at <a class="reference external" href="http://www.aerotek.com/">http://www.aerotek.com/</a></p>
<p>Sincerely, Hope Rich (<a class="reference external" href="mailto:hrich@aerotek.com">hrich@aerotek.com</a>, 425-893-6051)
and Tyler Roush (<a class="reference external" href="mailto:troush@aerotek.com">troush@aerotek.com</a>, 425-893-6026)</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/watch?v=BFnhhPehpKw">Video</a> |
<a class="reference external" href="/talks/2014/ISeeAMonadInYourFuture.pptx">Slides</a> |
<a class="reference external" href="http://bartoszmilewski.com/2014/02/26/c17-i-see-a-monad-in-your-future/">Blog Post</a></p>
</div>
February 19, 2014—Test-Driven Development—Matt Becker and Madhavan Lakshminarayanan2014-02-01T00:00:00-08:002014-02-01T00:00:00-08:00George Reillytag:nwcpp.org,2014-02-01:/february-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 19th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>
(Cafeteria).</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.amazon.com/">Amazon <span class="caps">GIP</span></a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Matt Becker and Madhavan Lakshminarayanan,
from Amazon’s Global Inventory Platform team,
will be presenting on Test Driven Development.
They will provide …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 19th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>
(Cafeteria).</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.amazon.com/">Amazon <span class="caps">GIP</span></a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Matt Becker and Madhavan Lakshminarayanan,
from Amazon’s Global Inventory Platform team,
will be presenting on Test Driven Development.
They will provide a brief overview of the problem set
their team tackles, and how it benefits Amazon customers.
They will show how and when to use Test Driven Development
as well as how to isolate their software from its dependencies</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Amazon’s Global Inventory Platform team
is responsible for the Supply Chain systems that support Amazon.com inventory worldwide.
Given that our volume doubles in size roughly every 3 years,
our team must always be at the forefront of research
into new technologies, machine learning techniques, big data analysis,
and complex forecasting models
to more accurately and efficiently have items on their way to customers
before they ever even click “buy”.
We’re predicting the future and changing it, every day.</p>
</div>
<div class="section" id="a-word-from-our-sponsor">
<h2>A Word From Our Sponsor</h2>
<p>Amazon Global Inventory Platform is mostly software development
and we are always hiring for
Senior Software Engineers, Research Scientists, Development Managers
and very Technical Project Managers.
We have new initiatives every year and are expanding like crazy!
For more information contact Amy Renhard at <a class="reference external" href="mailto:Renharda@amazon.com">Renharda@amazon.com</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/watch?v=pLeNEOBesPM">Video</a> |
<a class="reference external" href="/talks/2014/TDD.pptx">Slides</a> |
Michael Feathers’ <a class="reference external" href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a></p>
</div>
January 15, 2014—Static Analysis: More than finding bugs—Bob Archer2014-01-15T00:00:00-08:002014-01-15T00:00:00-08:00George Reillytag:nwcpp.org,2014-01-15:/january-2014.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 15th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>
(Cafeteria).</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.uasc.com/company/careers.aspx">Universal Avionics</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Static analysis is a technique for finding bugs without running the code.
This presentation will examine the technical problems of analyzing millions …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 15th, 2014 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>
(Cafeteria).</div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.uasc.com/company/careers.aspx">Universal Avionics</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Static analysis is a technique for finding bugs without running the code.
This presentation will examine the technical problems of analyzing millions of lines of code,
the philosophical problems of answering the question “what is a bug anyway?”
and the psychological problems of explaining bugs to a skeptical audience.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bob Archer has worked at <a class="reference external" href="http://www.coverity.com/">Coverity</a> for the past year.
Previously he has worked on image processing, computer games,
virtual reality and 3D simulation.
He has a particular interest in the problem of
writing high quality code in the commercial world.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/D3WzjjiC7K0">Video</a> |
<a class="reference external" href="/talks/2014/Coverity.pdf">Slides</a> |
<a class="reference external" href="http://cacm.acm.org/magazines/2010/2/69354-a-few-billion-lines-of-code-later/fulltext">A Few Billion Lines of Code Later</a></p>
</div>
20132013-12-31T00:00:00-08:002013-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2013-12-31:/2013-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2013.html">January 16th, 2013 — Metadata and reflection in C++ — Jeff Tucker</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2013.html">February 20th, 2013 — Component Programming in D — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2013.html">March 20th, 2013 — Profile Guided Optimization — Ankit Asthana</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2013.html">April 17, 2013: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2013.html">May 15th, 2013 — C++ In the Post-<span class="caps">PC</span> Era — Diego Dagum</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2013.html">June 19th, 2013 — Multi-Platform Applications with Qt …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2013.html">January 16th, 2013 — Metadata and reflection in C++ — Jeff Tucker</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2013.html">February 20th, 2013 — Component Programming in D — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2013.html">March 20th, 2013 — Profile Guided Optimization — Ankit Asthana</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2013.html">April 17, 2013: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2013.html">May 15th, 2013 — C++ In the Post-<span class="caps">PC</span> Era — Diego Dagum</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2013.html">June 19th, 2013 — Multi-Platform Applications with Qt — Tuukka Ahoniemi</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2013.html">July 17th, 2013 — The Universal Reference/Overloading Collision Conundrum — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2013.html">August 2013: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2013.html">September 18th, 2013 — Stability in Numerical Programming: An Introduction — Robert Goddard</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2013.html">October 16th, 2013 — New Adventures in C++ with Cinder and More — Ale Contenti</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2013.html">November 20th, 2013 — Real Time Debugging — Lloyd Moore</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2013.html">December 2013: No Meeting</a></p>
December 2013: No Meeting2013-12-01T00:00:00-08:002013-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2013-12-01:/december-2013.htmlNovember 20, 2013—Real Time Debugging—Lloyd Moore2013-11-01T00:00:00-07:002013-11-01T00:00:00-07:00George Reillytag:nwcpp.org,2013-11-01:/november-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 20th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>.</div>
<div class="line"><strong>Note: Cafeteria, not our normal meeting room</strong></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.amazon.com/gp/jobs">Amazon Global Inventory Platform</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Debugging real time issues
present a unique set of challenges and requirements to the …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 20th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>.</div>
<div class="line"><strong>Note: Cafeteria, not our normal meeting room</strong></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.amazon.com/gp/jobs">Amazon Global Inventory Platform</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Debugging real time issues
present a unique set of challenges and requirements to the developer.
Normal debugging techniques such as breakpoints, printf statements, and logging
frequently fail to locate the problem and can actually make the issue worse.
This presentation will examine why common debugging techniques fail
when applied to real time issues,
and then present tools and techniques
which can successfully address the unique challenges of real time debugging.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Lloyd Moore is the founder and owner of
<a class="reference external" href="http://www.cyberdata-robotics.com/">CyberData Corporation</a>,
which provides consulting services
in the robotics, machine vision and industrial automation fields.
Lloyd has worked in software industry for 25 years,
with his formal training in biological-based artificial intelligence,
electronics, and psychology.
Lloyd is also currently the president of <span class="caps">NWCPP</span>
and organizer of the <a class="reference external" href="http://www.robothon.org">Seattle Robotics Society Robothon</a> event.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/rCrO0zJ4PqI">Video</a> |
<a class="reference external" href="http://www.slideshare.net/LloydMoore/real-time-debugging">Slides</a></p>
</div>
October 16, 2013—New Adventures in C++ with Cinder and More—Ale Contenti2013-10-01T00:00:00-07:002013-10-01T00:00:00-07:00George Reillytag:nwcpp.org,2013-10-01:/october-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 16th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for sandwiches and salads
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.xtremeconsulting.com/">Xtreme Consulting</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Play and be productive with modern C++, graphics, on-the-fly projects and more!
Starting from the latest
<a class="reference external" href="http://channel9.msdn.com/Events/GoingNative/2013">Going Native 2013</a>
talks as …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 16th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for sandwiches and salads
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.xtremeconsulting.com/">Xtreme Consulting</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Play and be productive with modern C++, graphics, on-the-fly projects and more!
Starting from the latest
<a class="reference external" href="http://channel9.msdn.com/Events/GoingNative/2013">Going Native 2013</a>
talks as an inspiration,
we will explore how easy is to mold ideas into graphics apps
with C++ and <a class="reference external" href="http://libcinder.org/">Cinder</a>,
and how simple tools and techniques can help us be more productive in Visual Studio!</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Alessandro Contenti works as a Principal Development Manager
in the Visual C++ team in Microsoft, Redmond.
He oversees the development of the C++ FrontEnd Compiler,
C++ <span class="caps">AMP</span>, the C++ <span class="caps">IDE</span>, the Graphics debugging tools,
and the C++ Libraries shipped as part of Visual Studio.
He has been working in Microsoft since June 2000:
He worked as a developer on Team Server (a precursor of <span class="caps">TFS</span>),
Venus (codename for Visual Web Developer), and Visual C++.
Alessandro Contenti graduated in 1998 (magna cum laude)
from Politecnico di Milano Master <span class="caps">CS</span> program
and studied for 7 months at the École Polytechnique (aka X) in Paris,
where he developed his thesis on functional languages.
He currently lives in Seattle
and he’s the busy and proud father of ~4 years old twin boys.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/hwHYJM2GV1U">Video</a> |
<a class="reference external" href="/talks/2013/new-adventures-in-cpp.pptx">Slides</a></p>
</div>
September 18, 2013—Stability in Numerical Programming: An Introduction—Robert Goddard2013-09-05T00:00:00-07:002013-09-05T00:00:00-07:00George Reillytag:nwcpp.org,2013-09-05:/september-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 18th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.km.kongsberg.com/">Kongsberg Underwater Technology</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many numerical algorithms involve feedback loops
in which the results of each step of the algorithm
act as inputs to the following …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 18th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.km.kongsberg.com/">Kongsberg Underwater Technology</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many numerical algorithms involve feedback loops
in which the results of each step of the algorithm
act as inputs to the following steps.</p>
<p>Examples include numerical solution of differential equations,
filtering of sound (or other signals) using <span class="caps">IIR</span> (Infinite Impulse Response) filters,
and control of device motion.
Inevitably, small numerical errors are introduced at each step.
In an unstable algorithm, the effects of those errors grow in subsequent feedback steps,
eventually dominating over the “right” answer you are looking for.
In a stable system, the effects of errors shrink,
or at least do not grow, in subsequent steps.
The consequences of instability vary from “Huh?” through “aw, &%@%)$^&%*” to death.</p>
<p>In this talk, I will show examples of unstable and stable algorithms,
investigate the differences,
and introduce some methods for making sure your algorithms are stable.
The presentation will include some college-level mathematics,
but the emphasis will be on understanding
why instability happens and how to avoid it.</p>
<p>The examples will be in C++, but the principles are not language-specific.
This seminar will build on the general principles
outlined in my <a class="reference external" href="http://nwcpp.org/november-2011.html">previous <span class="caps">NWCPP</span> talk</a>
in November 2011, entitled “Introduction to Scientific Computing.”
This talk begins where that one ends:
with a demonstration of an unstable algorithm for solving a differential equation.
(Sorry about the sound in that video.
We have improved our technology since then, with your help. Thanks.)</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<div class="line-block">
<div class="line">Robert P. Goddard, Ph.D.</div>
<div class="line">Principal Physicist, Applied Physics Laboratory, University of Washington</div>
<div class="line">Treasurer (a.k.a. hat-passer), Northwest C++ Users’ Group</div>
</div>
<p>Robert Goddard is a physicist and software developer.
For the last 32 years, he has worked at
the Applied Physics Laboratory of the University of Washington,
mainly on computer modeling of underwater sound.
He is the architect and team leader for the Sonar Simulation Toolset (<span class="caps">SST</span>),
which produces simulated underwater sound,
suitable as input to sophisticated signal processing systems
(including human ears and brains),
based on user-specified descriptions of the undersea environment,
the listening system, and the sound sources and targets that might be out there.
He has also developed systems for control of measurement devices,
data analysis, visualization, modeling of quantum mechanical scattering,
and optimization of parameter values to fit observations.</p>
<p>Bob has been an active participant in <span class="caps">NWCPP</span> for most of its existence,
and is currently Treasurer.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/amez0WdSJX8">Video</a> |
<a class="reference external" href="/talks/2013/Stability.pdf">Slides</a></p>
</div>
August 2013: No Meeting2013-08-01T00:00:00-07:002013-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2013-08-01:/august-2013.htmlJuly 17, 2013—The Universal Reference/Overloading Collision Conundrum—Scott Meyers2013-06-25T00:00:00-07:002013-06-25T00:00:00-07:00George Reillytag:nwcpp.org,2013-06-25:/july-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 17th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1261–Constance</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.f5.com/about/careers/">F5 Networks</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>To help address the confusion that arises
when rvalue references become lvalue references through reference collapsing,
Scott Meyers introduced the notion of “universal …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">July 17th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1261–Constance</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.f5.com/about/careers/">F5 Networks</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>To help address the confusion that arises
when rvalue references become lvalue references through reference collapsing,
Scott Meyers introduced the notion of “universal references.”
In this presentation, he builds on this foundation
by explaining that overloading functions on rvalue references is sensible and useful,
while seemingly similar overloading on universal references
yields confusing, unhelpful behavior.
But what do you do when you want to write a perfect forwarding function
(which requires universal references),
yet you want to customize its behavior for certain types?
If overloading is off the table, what’s on?
In this talk, Scott surveys a variety of options.</p>
<p>Though Scott will give a one-slide overview
of the idea behind universal references at the beginning of the presentation,
attendees are encouraged to familiarize themselves with the notion
in more detail prior to the talk.
Links to written and video introductions to universal references are available
<a class="reference external" href="http://scottmeyers.blogspot.com/2012/11/universal-references-in-c11-now-online.html">here</a>.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://aristeia.com/">Scott Meyers</a> is one of the world’s foremost authorities on C++.
He wrote the best-selling <em>Effective C++</em> series
(<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-92488-9/">Effective C++</a>,
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-63371-X/">More Effective C++</a>,
and <a class="reference external" href="http://www.awl.com/cseng/titles/0-201-74962-9/">Effective <span class="caps">STL</span></a>);
published and maintains the annotated training materials
<a class="reference external" href="http://www.artima.com/shop/overview_of_the_new_cpp">Overview of the New C++ (C++11)</a>
and <a class="reference external" href="http://www.artima.com/shop/effective_cpp_in_an_embedded_environment">Effective C++ in an Embedded Environment</a>;
is Consulting Editor for Addison Wesley’s
<a class="reference external" href="http://www.informit.com/imprint/series_detail.aspx?st=61267">Effective Software Development Series</a>,
and, with Herb Sutter and Andrei Alexandrescu, is a principal in
<a class="reference external" href="http://cppandbeyond.com/">C++ and Beyond</a>.
He has a Ph.D in Computer Science from Brown University.
He’s currently working on a new book, Effective C++11/14,
which he hopes to publish in early 2014.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://youtu.be/T5swP3dr190">Video</a> |
<a class="reference external" href="/talks/2013/URefs-and-Overloading-revised.pdf">Slides</a></p>
</div>
June 19, 2013—Multi-Platform Applications with Qt—Tuukka Ahoniemi2013-05-29T00:00:00-07:002013-05-29T00:00:00-07:00George Reillytag:nwcpp.org,2013-05-29:/june-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 19th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.coverity.com/">Coverity</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Software services often have a requirement
to run on multiple different platforms and operating systems.
A basic use case of a cross-platform software service …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 19th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://www.coverity.com/">Coverity</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Software services often have a requirement
to run on multiple different platforms and operating systems.
A basic use case of a cross-platform software service
is to target across different desktop operating systems
with the same code base.
<a class="reference external" href="http://en.wikipedia.org/wiki/Qt_(framework)">Qt</a>
is a cross-platform application and user interface framework for C++
that allows you to use the same code and deploy to multiple platforms.
Going across different desktop operating systems
has been the backbone for Qt users for over 15 years.
Qt is well adopted within the Linux world,
especially within the <span class="caps">KDE</span> community
together with which Qt started way back then,
forming the basis for <span class="caps">KDE</span> applications.</p>
<p>Since the past decade
the way software is used has changed
from just personal computers to mobile phones
and then lately to tablets, cars
and all kinds of other different connected embedded devices.
Regardless of being the same application
the user experience can vary a lot across these different platforms.
This adds a lot to the requirements of writing these software services:
How to target all these different platforms with different user experiences
and still try to maintain a reasonable workload,
or not to re-write the application in its entirety for all the platforms.</p>
<p>Qt in year 2013 with Qt 5 introduces technical enablers
for creating modern, truly multi-platform applications
that are written with Qt/C++
and besides desktop OSs can run on Android, iOS, BlackBerry 10, embedded Linux,
Windows Embedded and various Real-Time Operating Systems.
With Qt Quick, the <span class="caps">UI</span> layout can be easily customized
to match the desired user experience on the various devices
yet re-using the same application code.</p>
<p>In this talk, I will introduce Qt 5
and discuss approaches on how to create multi-platform C++ applications
with Qt from a technical and architectural perspective.
No previous Qt knowledge required.
Live coding is going to take place.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.cs.tut.fi/~ahoniemt/">Tuukka Ahoniemi</a>
works as a technical product marketing manager for
<a class="reference external" href="http://qt.digia.com/">Qt by Digia</a>.
For the past years he has traveled around the world
spreading the message of Qt supremacy
in the form of having held over 100 Qt training courses,
speaking in various conferences and trade shows.
Still trying to “finish” his PhD
he holds a M.Sc (tech) in Computer Sciences
with the background in academic teaching of C++ programming and research around it.
Still being passionate about teaching
he is a certified Qt trainer,
Nokia Developer Certified Trainer, Certified Qt Specialist
and a Nokia Developer Champion.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/watch?v=lCyfWRef5Oo">Video</a> |
<a class="reference external" href="/talks/2013/Multi_platform_apps_with_Qt.pdf">Slides</a></p>
</div>
May 15, 2013—C++ In the Post-PC Era—Diego Dagum2013-04-30T00:00:00-07:002013-04-30T00:00:00-07:00George Reillytag:nwcpp.org,2013-04-30:/may-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 15th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Smartphones and tablets made personal computing more personal than ever.
This post-<span class="caps">PC</span> era, with its new platforms and technologies,
disrupted how developers design, build and deliver software.
Moreover the fact the traditional …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">May 15th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Smartphones and tablets made personal computing more personal than ever.
This post-<span class="caps">PC</span> era, with its new platforms and technologies,
disrupted how developers design, build and deliver software.
Moreover the fact the traditional <span class="caps">PC</span> renewal / replacement cycle is now longer
confirms the notion that attention has shifted to the new form factors.</p>
<p>What role do C++ and C++ developers play in this new scenario?</p>
<p>In this talk, Diego reviews aspects that make C++ unique for <span class="caps">ARM</span>-based development,
together with the many challenges and overlooked costs
that C++ developers face when jumping in.
Diego shows how the leading platforms enable C++ through technologies and tools.
He also discusses the state-of-the art in cross-platform approaches with their pros and cons.</p>
<p>You’ll leave this talk with a panorama of the many ways
to use C++ in the post-<span class="caps">PC</span> world,
what’s already achieved and what still needs to be done.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.linkedin.com/in/diegum">Diego Dagum</a>
is a professional developer and architect.
He got his first job in C-language back in 1991.
The new century, though, caught him applying Java during the first dot-com wave.
During the last decade, he focused more in the .<span class="caps">NET</span> platform.
However, Diego’s all-times passion is C++,
precisely because he considers that true developers don’t need to be managed.</p>
<p>Beside software development,
he writes the column “New Age C++” for
<a class="reference external" href="http://visualstudiomagazine.com/articles/list/new-age-c.aspx">Visual Studio Magazine</a>.
You can follow him on Twitter, <a class="reference external" href="http://twitter.com/diedagum">@diedagum</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/watch?v=hg7HhkbbEz4">Video</a> |
<a class="reference external" href="/talks/2013/Cpp-post-pc.pdf">Slides</a></p>
</div>
April 17, 2013—No Meeting2013-04-08T00:00:00-07:002013-04-08T00:00:00-07:00George Reillytag:nwcpp.org,2013-04-08:/april-2013.html<p>The April 2013 Meeting has been rescheduled to July.</p>
<p>The speaker is unavailable, board members are not available to record talks,
and we had no pizza provider.</p>
March 20, 2013—Profile Guided Optimization—Ankit Asthana2013-03-02T00:00:00-08:002013-03-02T00:00:00-08:00George Reillytag:nwcpp.org,2013-03-02:/march-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 20th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
Gordon Churchill.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk focuses on one of critical optimization
provided as a part of the <span class="caps">VC</span>++ compiler:
‘Profile Guided Optimization (<span class="caps">PGO</span>)’.
<span class="caps">PGO</span> in simple …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">March 20th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
Gordon Churchill.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk focuses on one of critical optimization
provided as a part of the <span class="caps">VC</span>++ compiler:
‘Profile Guided Optimization (<span class="caps">PGO</span>)’.
<span class="caps">PGO</span> in simple words is somewhat a major component
of the secret sauce for high performant Microsoft internal products
(Windows, Internet Explorer, Lync, Office, Surface and many others).
To summarize, <span class="caps">PGO</span> helps in improving the runtime performance
of the application by training it for a set of common user scenarios.
This talk will go over a brief description of this optimization,
the improvements that we have made recently
followed by an exercise and demo on how <span class="caps">PGO</span> can be performed
to performance boost your native application.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Ankit Asthana is a program manager for the backend C/C++ compiler.
He is knowledgeable in compiler technologies
(dynamic and static compilation, optimizer, code generation),
distributed computing and server side development.
He has in the past worked for <span class="caps">IBM</span> and Oracle Canada
as a developer building Java 7 (hotspot) and telecommunication products.
Ankit back in 2008 also published a book on C++ titled
<a class="reference external" href="http://www.amazon.com/C-Beginners-Masters-Ankit-Asthana/dp/8122420249">C++ for Beginners to Masters</a>
which sold over a few thousand copies.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/watch?v=zEsdBcu4R00">Video</a> |
<a class="reference external" href="/talks/2013/ProfileGuidedOptimizationMarch21st.pptx">Slides</a></p>
</div>
February 20, 2013—Component Programming in D—Walter Bright2013-01-27T00:00:00-08:002013-01-27T00:00:00-08:00George Reillytag:nwcpp.org,2013-01-27:/february-2013.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 20th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>.</div>
<div class="line"><strong>Note: Cafeteria, not our normal meeting room</strong></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://http://aws.amazon.com/">Amazon Web Services</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The idea of writing reusable software is as old as programming,
and is so well …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">February 20th, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>.</div>
<div class="line"><strong>Note: Cafeteria, not our normal meeting room</strong></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://http://aws.amazon.com/">Amazon Web Services</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The idea of writing reusable software is as old as programming,
and is so well ingrained into programmers that we take it as an axiom.
It’s accepted, and non-controversial.
Of course we all strive to produce reusable software;
after all, we’re professionals.
But as I look back on 35 years of programming,
I note with chagrin that practically none of the code I’ve written
has been usable in another project.
I will ‘reuse’ code by copy-paste-modify, but that’s cheating,
and even that doesn’t happen too often.
Somehow, I seemed to have missed the boat somewhere.
I ask other long-time programmers,
and they seem to have the same frustrating experience.
This starts out, then, as a journey into figuring out what went wrong.
Why does that hash table I wrote before not work in another project?
Why is my macro expander not reusable?
Why did I chuck all my carefully written <span class="caps">UTF</span> code?
Why do I write symbol tables over (and over again)?
Why is that disassembler I wrote completely unusable in another application?
Why do I keep reinventing the wheel?</p>
<p>This talk tries to answer that question,
and delves into how component programming works
and how it can address code reusability.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.walterbright.com/">Walter Bright</a>
is the creator and first implementer of the D programming language
and has implemented compilers for several other languages.
He’s an expert in all areas of compiler technology,
including front ends, optimizers, code generation,
interpreter engines, and runtime libraries.
Walter regularly writes articles about compilers and programming,
is known for engaging and informative presentations,
and provides training in compiler development techniques.
Many are surprised to discover that
Walter is also the creator of the wargame Empire,
which is still popular today over 30 years after its debut.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://www.youtube.com/watch?v=0cX1f41Fnkc">Video</a> |
<a class="reference external" href="/talks/2013/ComponentProgrammingInD.pdf">Slides</a></p>
</div>
2013 Website Refresh2013-01-15T00:00:00-08:002013-01-15T00:00:00-08:00George Reillytag:nwcpp.org,2013-01-15:/2013-website-refresh.html<p>Over the last couple of weeks, I’ve moved the <span class="caps">NWCPP</span> website
from an instance of the <a class="reference external" href="http://www.joomla.org/">Joomla</a> <span class="caps">CMS</span> at <a class="reference external" href="http://www.justhost.com/">Just Host</a>
to a static website generated by <a class="reference external" href="http://blog.getpelican.com/">Pelican</a> at <a class="reference external" href="http://pages.github.com/">Github Pages</a>.</p>
<div class="figure">
<a class="reference external image-reference" href="http://nwcpp.org/images/joomla-screenshot.png"><img alt="Old Joomla-based website" src="http://nwcpp.org/images/joomla-screenshot.png" style="width: 500px;" /></a>
<p class="caption">Old Joomla-based website</p>
</div>
<div class="section" id="the-background">
<h2>The Background</h2>
<p>The annual hosting bill was due next month,
but I wasn’t happy …</p></div><p>Over the last couple of weeks, I’ve moved the <span class="caps">NWCPP</span> website
from an instance of the <a class="reference external" href="http://www.joomla.org/">Joomla</a> <span class="caps">CMS</span> at <a class="reference external" href="http://www.justhost.com/">Just Host</a>
to a static website generated by <a class="reference external" href="http://blog.getpelican.com/">Pelican</a> at <a class="reference external" href="http://pages.github.com/">Github Pages</a>.</p>
<div class="figure">
<a class="reference external image-reference" href="http://nwcpp.org/images/joomla-screenshot.png"><img alt="Old Joomla-based website" src="http://nwcpp.org/images/joomla-screenshot.png" style="width: 500px;" /></a>
<p class="caption">Old Joomla-based website</p>
</div>
<div class="section" id="the-background">
<h2>The Background</h2>
<p>The annual hosting bill was due next month,
but I wasn’t happy with Joomla
and I didn’t feel like organizing another whipround to pay for it.
Also, the nwcpp.org domain was about to expire
and <a class="reference external" href="https://www.networksolutions.com/">Network Solutions</a> wanted a surprisingly large amount of money to renew it.
So I transferred the domain to <a class="reference external" href="http://www.namecheap.com/">Namecheap</a>
and set to work creating a static site.</p>
<p>A <span class="caps">CMS</span> like Joomla seemed like a good idea
when I took over from the previous webmaster three years ago.
The preceding website had been built with <a class="reference external" href="http://www.fogcreek.com/citydesk/">CityDesk</a>,
which generated static <span class="caps">HTML</span> files
and required a lot of messing around with <span class="caps">FTP</span>.
Joomla turned out to be a big pain
and I spent a lot of time fighting with it.
And then there was the time when I was on vacation
and learned that the <span class="caps">NWCPP</span> website had been defaced,
thanks to an unpatched vulnerability in our installation.</p>
<p>A recent trend has been to move away from CMSes and dynamic blogs
to <a class="reference external" href="http://www.mickgardner.com/2012/12/an-introduction-to-static-site.html">static site generators</a> for simpler sites.
I wanted to explore some of them and I quickly settled on <a class="reference external" href="http://blog.getpelican.com/">Pelican</a>.
It’s built on Python (my primary language nowadays)
and accepts input in the lightweight markup languages,
<a class="reference external" href="http://docutils.sf.net/rst.html">reStructuredText</a>, <a class="reference external" href="http://en.wikipedia.org/wiki/Markdown">Markdown</a>, and <a class="reference external" href="http://www.methods.co.nz/asciidoc/index.html">AsciiDoc</a>.
I have extensive <a class="reference external" href="http://www.georgevreilly.com/blog/CategoryView,category,reStructuredText.aspx">history with reStructuredText</a>,
though I would also have been happy with Markdown.</p>
<p>In a typical <span class="caps">CMS</span>, the content is stored in a database.
I’m a developer; I like Git for version control of my documents.
Pelican and other SSGs lend themselves to this.</p>
</div>
<div class="section" id="converting-html-to-restructuredtext">
<h2>Converting <span class="caps">HTML</span> to reStructuredText</h2>
<p>I <a class="reference external" href="http://fosswire.com/post/2008/04/create-a-mirror-of-a-website-with-wget/">mirrored</a> the Joomla website with <a class="reference external" href="http://www.gnu.org/software/wget/">Wget</a>
and used <a class="reference external" href="http://johnmacfarlane.net/pandoc/">Pandoc</a> to convert the <span class="caps">HTML</span> to reST.
That was followed by a lot of hand-editing to clean up the files—13 years of near-monthly meetings led to about 150 files.
In retrospect, I could probably have saved some editing time
if I had used <a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> to filter out some of the <span class="caps">HTML</span> cruft on each page
before feeding it to <a class="reference external" href="http://johnmacfarlane.net/pandoc/">Pandoc</a> or <a class="reference external" href="http://pypi.python.org/pypi/html2rest">html2rest</a>.</p>
<p>I <a class="reference external" href="http://docs.getpelican.com/en/3.1.1/getting_started.html">set up Pelican</a>, plugged the reST in, and ran the devserver locally.
Already, it looked pretty good.</p>
</div>
<div class="section" id="multiple-identities-at-github">
<h2>Multiple Identities at Github</h2>
<p>I wanted to create a separate <a class="reference external" href="https://github.com/nwcpp/">Github identity for nwcpp</a>,
as I won’t be the webmaster forever.
That was a little tricky to manage,
but I found enough clues in a <a class="reference external" href="http://stackoverflow.com/questions/3225862/multiple-github-accounts-ssh-config">StackOverflow question</a>
to figure it out.</p>
<p>Here’s my <tt class="docutils literal"><span class="pre">~/.ssh/config</span></tt>:</p>
<div class="highlight"><pre><span></span><span class="nb">Host</span><span class="w"> </span>github-gvr
<span class="w"> </span><span class="nb">HostName</span><span class="w"> </span>github.com
<span class="w"> </span><span class="nb">User</span><span class="w"> </span>git
<span class="w"> </span><span class="nb">PreferredAuthentications</span><span class="w"> </span>publickey
<span class="w"> </span><span class="nb">IdentityFile</span><span class="w"> </span>~/.ssh/id_rsa
<span class="w"> </span><span class="nb">IdentitiesOnly</span><span class="w"> </span>yes
<span class="nb">Host</span><span class="w"> </span>github-nwcpp
<span class="w"> </span><span class="nb">HostName</span><span class="w"> </span>github.com
<span class="w"> </span><span class="nb">User</span><span class="w"> </span>git
<span class="w"> </span><span class="nb">PreferredAuthentications</span><span class="w"> </span>publickey
<span class="w"> </span><span class="nb">IdentityFile</span><span class="w"> </span>~/.ssh/id_rsa_nwcpp
</pre></div>
<p>I have two <span class="caps">SSH</span> keys: <tt class="docutils literal"><span class="pre">github-gvr</span></tt> is tied to my primary Github account
while <tt class="docutils literal"><span class="pre">github-nwcpp</span></tt> is tied to the <span class="caps">NWCPP</span> account.
Note the <tt class="docutils literal">IdentitiesOnly</tt>.</p>
<p>I have to use a different <em>git remote</em> for the latter,
instead of <tt class="docutils literal"><span class="pre">git@github.com:nwcpp/pelican-site.git</span></tt>:</p>
<div class="highlight"><pre><span></span>$<span class="w"> </span>git<span class="w"> </span>remote<span class="w"> </span>-v
origin<span class="w"> </span>git@github-nwcpp:nwcpp/pelican-site.git<span class="w"> </span><span class="o">(</span>fetch<span class="o">)</span>
origin<span class="w"> </span>git@github-nwcpp:nwcpp/pelican-site.git<span class="w"> </span><span class="o">(</span>push<span class="o">)</span>
</pre></div>
<div class="section" id="update">
<h3>Update</h3>
<p>It’s much simpler just to have the <a class="reference external" href="https://github.com/nwcpp/">@nwcpp</a> user
add my own username as a <a class="reference external" href="https://help.github.com/articles/adding-collaborators-to-a-personal-repository/">collaborator to the repository</a>.
The <span class="caps">SSH</span> config and different remotes is unnecessary.</p>
<p>Note that I’m holding my GitHub credentials in a <a class="reference external" href="http://stackoverflow.com/questions/6031214/git-how-to-use-netrc-file-on-windows-to-save-user-and-password">netrc</a>:
(<tt class="docutils literal"><span class="pre">~/.netrc</span></tt> on Mac/Linux; <tt class="docutils literal"><span class="pre">%<span class="caps">HOME</span>%\_netrc</span></tt> on Windows).
Another collaborator in the repository had success with
<tt class="docutils literal">git remote <span class="pre">set-url</span> origin <span class="pre">https://{<span class="caps">USERNAME</span>}:{<span class="caps">PASSWORD</span>}@github.com/nwcpp/pelican-site.git</span></tt></p>
</div>
</div>
<div class="section" id="github-pages">
<h2>Github Pages</h2>
<p><a class="reference external" href="http://pages.github.com/">Github Pages</a> is an easy, free way to publish static websites from a Github repo.
Pelican provides documentation on <a class="reference external" href="http://docs.getpelican.com/en/3.1.1/tips.html">publishing to Github Pages</a>.</p>
<p>To get the <em>nwcpp.org</em> domain hosted there,
I had to set up a <a class="reference external" href="https://help.github.com/articles/setting-up-a-custom-domain-with-pages">custom domain</a>
and change the <a class="reference external" href="http://dreamand.me/github-page/github-page-custom-domain/">Namecheap <span class="caps">DNS</span> configuration</a>.
I also had to <a class="reference external" href="https://help.github.com/articles/adding-a-cname-file-to-your-repository/">add a <span class="caps">CNAME</span> file to the repository</a>
and ensure that Pelican published it to the root of the output.</p>
</div>
<div class="section" id="contact-form">
<h2>Contact Form</h2>
<p>I wanted to add a <a class="reference external" href="http://nwcpp.org/contact.html">contact form</a> rather than
publishing email addresses for the <span class="caps">NWCPP</span> board.
Obviously, there’s no server-side piece in a pure static site,
so it has to be handled by a third party.
I found a helpful article on setting up a <a class="reference external" href="http://www.bloggerbuster.com/2012/04/create-contact-form-with-google-docs.html">Google Docs contact form</a>,
which emails us as well as saving the form details in a spreadsheet.</p>
</div>
<div class="section" id="conclusion">
<h2>Conclusion</h2>
<p>Pelican is fine for me and I’m much happier with it than Joomla.
It clearly wouldn’t work for non-developers.</p>
<p>One annoyance is that Pelican is very blog-centric
and wants to generate a timeline of posts.
For dated announcements of monthly meetings,
that works very well.
For pages that don’t fit on the timeline,
such as the <a class="reference external" href="http://nwcpp.org/contact.html">contact form</a> or the <a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsorship howto</a>,
it’s awkward.</p>
</div>
January 16, 2013 — Metadata and reflection in C++ — Jeff Tucker2013-01-03T00:00:00-08:002013-01-03T00:00:00-08:00George Reillytag:nwcpp.org,2013-01-03:/january-2013.html<p>Please <a class="reference external" href="http://nwcpp.org/camera-donations.html">donate towards better video recordings</a>.</p>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 16, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>.</div>
<div class="line"><strong>Note: Cafeteria, not our normal meeting room</strong></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://technologies.randstadusa.com/">Randstad Technologies</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A robust reflection/metadata system in C++ can be extremely …</p></div><p>Please <a class="reference external" href="http://nwcpp.org/camera-donations.html">donate towards better video recordings</a>.</p>
<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 16, 2013 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+40">Building 40/1450–Steptoe</a>.</div>
<div class="line"><strong>Note: Cafeteria, not our normal meeting room</strong></div>
</div>
<p>Come at 6:45 for pizza
<a class="reference external" href="http://nwcpp.org/sponsors-howto.html">sponsored</a> by
<a class="reference external" href="http://technologies.randstadusa.com/">Randstad Technologies</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A robust reflection/metadata system in C++ can be extremely powerful
and has many applications, particularly in game programming.
It can facilitate sophisticated debug output and logging,
trivial factory implementation,
automatic serialization and deserialization for any arbitrary object,
automatic binding to a <span class="caps">GUI</span> system,
and even automatic binding of objects and functions to a scripting language
(both Lua and Python are popular).
The typeinfo/<span class="caps">RTTI</span> system currently in C++ however
is simply not up to this level of functionality,
so a more sophisticated solution is necessary.
In this talk, I will implement a simple, yet powerful, meta reflection system in C++,
completely from scratch,
and using test-driven development.
I will also show how I leverage a similar system in my own game engine.
Finally, I promise there will be no more than three PowerPoint slides.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Jeff Tucker is a <a class="reference external" href="https://www.digipen.edu/academics/faculty/department-of-computer-science/#c31719">lecturer of Computer Science</a>
at DigiPen Institute of Technology,
where he teaches classes on networking, databases, programming, and
software engineering.
He has been a software engineer for the past 13 years
and formerly worked at Microsoft on the Windows Core Networking team.
He also currently does research in procedural content generation
and graphics algorithms as well as making computer games.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/57720314">Video</a> |
<a class="reference external" href="/talks/2013/MetaReflectionDemo.zip">Code</a></p>
</div>
Welcome to the Northwest C++ Users’ Group2013-01-01T00:00:00-08:002013-01-01T00:00:00-08:00George Reillytag:nwcpp.org,2013-01-01:/about.html<p>The Northwest C++ Users’ Group (<span class="caps">NWCPP</span>) is a group of professional developers and hobbyists
living and working in the Pacific Northwest
who meet monthly to discuss trends, techniques, and technology
regarding the C++ language and industry.
The group meetings and resources are free, and anyone and everyone is welcome to …</p><p>The Northwest C++ Users’ Group (<span class="caps">NWCPP</span>) is a group of professional developers and hobbyists
living and working in the Pacific Northwest
who meet monthly to discuss trends, techniques, and technology
regarding the C++ language and industry.
The group meetings and resources are free, and anyone and everyone is welcome to attend.</p>
<p>We are interested in C++, C, the D language, concurrency, scalability,
performance, Boost, software engineering, design patterns, debugging,
compilers, tools, functional programming, software architecture,
machine architecture, DSLs, embedded software, test-driven development,
cross-platform development, distributed programming, and more.</p>
<div class="section" id="meetings">
<h2>Meetings</h2>
<p>Our meetings are held at the
<a class="reference external" href="/images/MicrosoftMainCampusMap.jpg">main Microsoft campus</a>,
One Microsoft Way, Redmond, <span class="caps">WA</span> 98052,
in the Steptoe Room, <a class="reference external" href="https://www.google.com/maps/place/Microsoft+Cafe+40/">Cafeteria 40</a>,
at the corner of <span class="caps">NE</span> 31st and 156th Ave <span class="caps">NE</span>.
Usually, we meet at 7pm on the <em>third Wednesday</em> of the month.
You may need to knock on the window so that we can let you into the building.</p>
<p>Disclaimer: <span class="caps">NWCPP</span> is not associated with Microsoft—although we take advantage of their generosity
in providing the venue (since 2006) and occasional speakers.</p>
<p>Past speakers at our meetings include
<a class="reference external" href="http://www.moderncppdesign.com">Andrei Alexandrescu</a>,
<a class="reference external" href="http://www.walterbright.com/">Walter Bright</a>,
<a class="reference external" href="http://www.bruceeckel.com/">Bruce Eckel</a>,
<a class="reference external" href="http://blogs.msdn.com/slippman">Stan Lippman</a>,
<a class="reference external" href="http://www.construx.com/">Steve McConnell</a>,
<a class="reference external" href="http://www.aristeia.com/">Scott Meyers</a>,
<a class="reference external" href="http://bartoszmilewski.com/">Bartosz Milewski</a>,
<a class="reference external" href="http://ericniebler.com/">Eric Niebler</a>,
<a class="reference external" href="http://www.wintellect.com/CS/blogs/jeffreyr/default.aspx">Jeffrey Richter</a>,
<a class="reference external" href="http://www.linkedin.com/in/rhschmidt">Bobby Schmidt</a>,
<a class="reference external" href="http://www.netobjectives.com/bio-alan-shalloway">Alan Shalloway</a>,
<a class="reference external" href="http://www.gotw.ca/">Herb Sutter</a>,
and
<a class="reference external" href="http://steve-yegge.blogspot.com/">Steve Yegge</a>.</p>
<div class="section" id="social-media-1">
<span id="social-media"></span><h3>Social Media</h3>
<ul class="simple">
<li>Sign up for our
<a class="reference external" href="http://groups.google.com/group/NwcppAnnounce">Announcements</a> mailing list.
If you want to be more heavily involved,
please sign up for our <a class="reference external" href="http://groups.google.com/group/nwcpp-volunteers">Volunteers</a> list.</li>
<li>Follow <a class="reference external" href="http://twitter.com/nwcpp">@nwcpp</a> on Twitter.</li>
<li>Join our <a class="reference external" href="http://www.facebook.com/group.php?gid=344125680930">Facebook group</a>.</li>
<li>Follow our <a class="reference external" href="http://www.youtube.com/user/NWCPP">YouTube channel</a>.</li>
<li>Follow our <a class="reference external" href="https://vimeo.com/nwcpp">Vimeo channel</a>.</li>
<li>Join our <a class="reference external" href="https://www.linkedin.com/groups/2770106/">LinkedIn group</a>.</li>
<li>View slides at <a class="reference external" href="https://speakerdeck.com/nwcpp">Speaker Deck</a>.</li>
<li>View slides at <a class="reference external" href="http://www.slideshare.net/nwcpp">SlideShare</a>.</li>
</ul>
</div>
<div class="section" id="jobs">
<h3>Jobs</h3>
<p>Seeking or offering a <strong>job</strong>?
Use our <a class="reference external" href="http://www.linkedin.com/groupAnswers?viewQuestions=&gid=2770106&forumID=5&sik=1268291239461">LinkedIn Jobs Board</a>.</p>
</div>
<div class="section" id="sponsoring-nwcpp">
<h3>Sponsoring <span class="caps">NWCPP</span></h3>
<p>Want to sponsor <span class="caps">NWCPP</span>?
Here’s <a class="reference external" href="http://nwcpp.org/sponsors-howto.html">how</a>.</p>
</div>
<div class="section" id="contacting-nwcpp">
<h3>Contacting <span class="caps">NWCPP</span></h3>
<p>Please use our <a class="reference external" href="http://nwcpp.org/contact.html">contact form</a>.</p>
</div>
</div>
20122012-12-31T00:00:00-08:002012-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2012-12-31:/2012-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2012.html">January 25th, 2012 — Finding Race Condition and Data Races Effectively — Madan Musuvathi</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2012.html">February 15th, 2012 — Expressing Parallel Patterns in Modern C++ — Rahul V. Patil</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2012.html">March 21st, 2012 — A Multi-Core Algorithmic Differentiation Benchmarking System — Brad Bell</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2012.html">April 18th, 2012 — Essential Skills for the Agile Developer – Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2012.html">May 16th, 2012 — An …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2012.html">January 25th, 2012 — Finding Race Condition and Data Races Effectively — Madan Musuvathi</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2012.html">February 15th, 2012 — Expressing Parallel Patterns in Modern C++ — Rahul V. Patil</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2012.html">March 21st, 2012 — A Multi-Core Algorithmic Differentiation Benchmarking System — Brad Bell</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2012.html">April 18th, 2012 — Essential Skills for the Agile Developer – Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2012.html">May 16th, 2012 — An Introduction to Microsoft’s C++ Accelerated Massive Parallelism – Don McCrady</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2012.html">June 20th, 2012 — LKRhash: The design of a scalable hashtable — George V. Reilly</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2012.html">July 2012: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2012.html">August 2012: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2012.html">September 19th, 2012 — Functional Patterns in C++ — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2012.html">October 17th, 2012 — Casablanca: C++ in the Cloud — Steve Gates</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2012.html">November 21st, 2012 — TouchDevelop: Tips and Types for Programming via Touch — Tom Ball</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2012.html">December 2012: No Meeting</a></p>
NWCPP Sponsors2012-12-31T00:00:00-08:002012-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2012-12-31:/sponsors.html<p><span class="caps">NWCPP</span> thanks the following organizations for their sponsorship.</p>
<ul class="simple">
<li><a class="reference external" href="http://www.microsoft.com/">Microsoft</a></li>
<li><a class="reference external" href="http://technologies.randstadusa.com/">Randstad Technologies</a></li>
<li><a class="reference external" href="http://www.summitgroupsolutions.com/">Summit Group Solutions</a></li>
<li><a class="reference external" href="http://www.amazon.com/gp/digital/careers/jobs.html">Amazon Digital</a></li>
</ul>
<div class="section" id="sponsoring-nwcpp">
<h2>Sponsoring <span class="caps">NWCPP</span></h2>
<p>Want to sponsor <span class="caps">NWCPP</span>? Here’s <a class="reference external" href="http://nwcpp.org/sponsors-howto.html">how</a>.</p>
</div>
Donate towards better video recordings2012-12-10T00:00:00-08:002012-12-10T00:00:00-08:00Lloyd Mooretag:nwcpp.org,2012-12-10:/camera-donations.html<style>
.left-float {float: left}
.right-float {float: right; padding-left: 5em; }
</style><div class="figure">
<img alt="Donation Thermometer" class="right-float" src="http://nwcpp.org/images/thermometer.jpg" />
</div>
<p>The bulk of the feedback we have received over the last year
on the videotaping of our meetings
has been that the sound quality is very poor.
To address this issue, the club would like to purchase a new video camera
that …</p><style>
.left-float {float: left}
.right-float {float: right; padding-left: 5em; }
</style><div class="figure">
<img alt="Donation Thermometer" class="right-float" src="http://nwcpp.org/images/thermometer.jpg" />
</div>
<p>The bulk of the feedback we have received over the last year
on the videotaping of our meetings
has been that the sound quality is very poor.
To address this issue, the club would like to purchase a new video camera
that will allow us to use a remote microphone for the speaker.
The Northwest C++ Users’ Group is currently collecting donations
to fund a new camera to record our meetings.
Ideally we would like to collect $700 to purchase the following:</p>
<ul class="simple">
<li>new <span class="caps">HD</span> video camera, $400</li>
<li>wireless microphone for the presenter, $150</li>
<li>tripod, $100</li>
<li>camera bag, $50</li>
</ul>
<p>This equipment will be used to improve the quality of the recordings for our monthly meetings,
in particular the sound quality.
The videos of our meetings will continue to be posted
on our <a class="reference external" href="http://vimeo.com/nwcpp">Vimeo channel</a>
so those who cannot attend our meeting in person
can still benefit from our speaker presentations.</p>
<p>Watch our president, Lloyd Moore, <a class="reference external" href="https://vimeo.com/55217359">announce our fundraiser</a>.</p>
<p>If you would like to help us in this effort, please click on the “Donate” button.</p>
<br />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input name="cmd" type="hidden" value="_s-xclick" />
<input name="hosted_button_id" type="hidden" value="NH22STZVNWVC4" />
<input alt="PayPal - The safer, easier way to pay online!"
name="submit" type="image"
src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" />
<img src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif"
border="0" width="1" height="1" />
</form>
<br /><p>The <a class="reference external" href="/">Northwest C++ Users’ Group</a> is registered
as a 501(c)(3) non-profit organization.
Contributions to the Northwest C++ Users’ Group
are tax-deductible to the extent permitted by law.
Our tax identification number is <strong>91-1718733</strong>.</p>
<p>Thank you very much for your continued support of the Northwest C++ Users’ Group
and we look forward to bringing you another year of interesting and engaging speakers!</p>
December 2012: No Meeting2012-12-01T00:00:00-08:002012-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2012-12-01:/december-2012.htmlNovember 21st, 2012 — TouchDevelop: Tips and Types for Programming via Touch — Tom Ball2012-11-01T00:00:00-07:002012-11-01T00:00:00-07:00George Reillytag:nwcpp.org,2012-11-01:/november-2012.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 21, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><a class="reference external" href="http://www.touchdevelop.com">TouchDevelop</a> brings a modern programming experience
to devices where touch is the primary input mechanism, such as smartphones and tablets.
The TouchDevelop environment does this through an interlocking set of features, including:</p>
<ul class="simple">
<li>a …</li></ul></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">November 21, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><a class="reference external" href="http://www.touchdevelop.com">TouchDevelop</a> brings a modern programming experience
to devices where touch is the primary input mechanism, such as smartphones and tablets.
The TouchDevelop environment does this through an interlocking set of features, including:</p>
<ul class="simple">
<li>a simple statically-typed scripting language;</li>
<li>syntax-directed editing with a context-sensitive virtual keyboard;</li>
<li>code completion and refactoring features;</li>
<li>integrated search of platform APIs;</li>
<li>cloud-based sharing, searching, and synthesis of code.</li>
</ul>
<p>In this talk, I’ll demonstrate the TouchDevelop Web App
and focus on some of the unique features of the TouchDevelop language,
including support for client/cloud shared data.
Additionally, I’ll describe how the TouchDevelop Web App was written in
<a class="reference external" href="http://www.typescriptlang.org">TypeScript</a>,
a typed superset of JavaScript that compiles to plain JavaScript.
The TouchDevelop web application is a complete rewrite of the C#/<span class="caps">XAML</span>-based TouchDevelop
application for Windows Phone.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://research.microsoft.com/en-us/people/tball/">Thomas (Tom) Ball</a>
is a Principal Researcher and Research Manager at Microsoft Research Redmond,
where he works in the area of software engineering,
having made contributions in program profiling, software model checking,
and empirical software engineering.
Tom is a 2011 <span class="caps">ACM</span> Fellow.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/54243075">Video</a> |
<a class="reference external" href="/talks/2012/touchdevelop2012.pptx">Slides</a></p>
</div>
October 17th, 2012 — Casablanca: C++ in the Cloud — Steve Gates2012-10-01T00:00:00-07:002012-10-01T00:00:00-07:00George Reillytag:nwcpp.org,2012-10-01:/october-2012.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 17, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In this talk, I’ll introduce the Microsoft incubation project
<a class="reference external" href="http://msdn.microsoft.com/en-us/devlabs/casablanca.aspx">Casablanca</a>,
the aim of which is to help C++ developers
productively take advantage of cloud-based computing without sacrificing performance.
Through a series of …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">October 17, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In this talk, I’ll introduce the Microsoft incubation project
<a class="reference external" href="http://msdn.microsoft.com/en-us/devlabs/casablanca.aspx">Casablanca</a>,
the aim of which is to help C++ developers
productively take advantage of cloud-based computing without sacrificing performance.
Through a series of libraries and tooling,
Casablanca provides support for accessing Azure’s platform as a service (PaaS) functionality
and general purpose client and server <span class="caps">REST</span> communication.
Key aspects about the libraries in Casablanca include cross platform support,
leveraging modern C++11 features for productivity,
and <span class="caps">API</span> design asynchrony in mind to improve application responsiveness and scalability.</p>
<p>With this talk, we’ll go through the fundamental principles that
Casablanca is built on, an overview of the features it provides,
and several demos and examples illustrating what kind of applications can be built.
If you have interest in using C++ to author or interact with services in Azure
or <span class="caps">REST</span> services in general, this talk is for you.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Steve Gates is a senior tester on the Visual C++ team at Microsoft.
He has been at Microsoft for the past 5 years working on parallel computing in C++,
specifically the C++ Concurrency Runtime, <span class="caps">PPL</span>, and Agents Library.
Now he is focusing on the C++ experience for the cloud and Azure.
In his free time, Steve is interested in growing vegetables and food preservation.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://vimeo.com/51695153">Video</a> |
<a class="reference external" href="/talks/2012/casablanca.pptx">Slides</a></p>
</div>
September 19th, 2012 — Functional Patterns in C++ — Bartosz Milewski2012-09-01T00:00:00-07:002012-09-01T00:00:00-07:00George Reillytag:nwcpp.org,2012-09-01:/september-2012.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 19, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We are familiar with at least some of the GoF patterns like Visitor or Factory.
Less known are some very powerful abstract patterns used primarily in functional languages.
I will show you how …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">September 19, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We are familiar with at least some of the GoF patterns like Visitor or Factory.
Less known are some very powerful abstract patterns used primarily in functional languages.
I will show you how to implement them in C++,
as long as you don’t get intimidated by names
like Type Constructor, Functor, Applicative Functor, or Monad.
Examples of those patterns are everywhere:
<tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt>, <tt class="docutils literal"><span class="pre">std::vector</span></tt>, <tt class="docutils literal"><span class="pre">std::function</span></tt>, and many more.
What piqued my interest in those patterns was their use in C#
to solve some of the problem of abstracting asynchronous APIs and threads.
Their understanding might help in fixing C++11 support for concurrency.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski has a Ph.D. in Quantum Physics and many years of
experience as a C++ programmer.
He worked at Microsoft on the Context Index—a search engine before the Internet—still an active part of Windows.
He designed the first distributed version control system,
<a class="reference external" href="http://www.relisoft.com/co_op/">Code Co-op</a> (before BitKeeper and Git).
Bartosz took part in the design of the <a class="reference external" href="http://www.digitalmars.com/d/2.0/index.html">D language</a>.
His main topics of interest are concurrent and distributed computing.
He works as a Software Architect at <span class="caps">FP</span> Complete,
a company whose goal is to make Haskell an industrial language.
He regularly publishes a blog at
<a class="reference external" href="http://bartoszmilewski.wordpress.com/">http://BartoszMilewski.com</a>
and at <a class="reference external" href="http://fpcomplete.com/blog">http://FPComplete.com/blog</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://fpcomplete.com/functional-patterns-in-c/">Video and Slides</a></p>
</div>
August 2012: No Meeting2012-08-01T00:00:00-07:002012-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2012-08-01:/august-2012.htmlJuly 2012: No Meeting2012-07-01T00:00:00-07:002012-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2012-07-01:/july-2012.htmlContact NWCPP2012-06-01T00:00:00-07:002012-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2012-06-01:/contact.html<p>If you need to contact the <span class="caps">NWCPP</span> board and the
<a class="reference external" href="http://nwcpp.org/about.html">social media channels</a> aren’t enough,
use this form to email us.</p>
<!-- :ref:`social-media` aren't enough, -->
<!-- Adapted from http://www.bloggerbuster.com/2012/04/create-contact-form-with-google-docs.html -->
<iframe src="https://docs.google.com/spreadsheet/embeddedform?formkey=dHlUZmZGbFFhMjd6a0M0NGh1WGtQanc6MQ"
width="760" height="891" frameborder="0" marginheight="0" marginwidth="0">
Loading…
</iframe>June 20th, 2012 — LKRhash: The design of a scalable hashtable — George V. Reilly2012-06-01T00:00:00-07:002012-06-01T00:00:00-07:00George Reillytag:nwcpp.org,2012-06-01:/june-2012.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 20th, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>LKRhash is a hashtable that scales to multiple processors and millions of items.
LKRhash was invented at Microsoft in 1997 by Paul Larson, Murali Krishnan, and George Reilly,
and has been used in …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">June 20th, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+41">Building 41/1511–Townsend</a></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>LKRhash is a hashtable that scales to multiple processors and millions of items.
LKRhash was invented at Microsoft in 1997 by Paul Larson, Murali Krishnan, and George Reilly,
and has been used in many Microsoft products.
George will discuss the techniques that give LKRhash its performance,
including <a class="reference external" href="http://en.wikipedia.org/wiki/Linear_hashing">linear hashing</a>,
cache-friendly data structures,
and fine-grained locking.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="https://plus.google.com/114544378971035279158/about">George Reilly</a>
is a lead developer at <a class="reference external" href="http://www.cozi.com/">Cozi</a>
who spent 10 years working at Microsoft.
He is a graduate of Trinity College Dublin and Brown University.
He cowrote <a class="reference external" href="http://www.amazon.com/Beginning-ATL-3-Com-Programming/dp/1861001207">Beginning <span class="caps">ATL</span> 3 <span class="caps">COM</span> Programming</a>
(Wrox 1999) and <a class="reference external" href="http://www.amazon.com/Professional-Active-Server-Pages-3-0/dp/B0000B0SYJ/">Professional Active Server Pages 3.0</a>
(Wrox 1999).
George is, among other things, a cyclist;
the President of <a class="reference external" href="http://freelyspeaking.org/">Freely Speaking Toastmasters</a>;
the Director <span class="amp">&</span> Dramaturg of the <a class="reference external" href="http://www.wildgeeseseattle.org/">Wild Geese Players of Seattle</a>;
and the Secretary/Webmaster of <a class="reference external" href="http://nwcpp.org/"><span class="caps">NWCPP</span></a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://vimeo.com/44575071">Video</a> |
<a class="reference external" href="/talks/2012/lkrhash.pptx">Slides</a> |
<a class="reference external" href="/talks/2012/hashtable.py.txt">Python hashtable simulator</a> |
<a class="reference external" href="http://www.csd.uoc.gr/~hy460/pdf/Dynamic%20Hash%20Tables.pdf">Linear Hashing paper</a></p>
</div>
May 16th, 2012 — An Introduction to Microsoft’s C++ Accelerated Massive Parallelism – Don McCrady2012-05-01T00:00:00-07:002012-05-01T00:00:00-07:00George Reillytag:nwcpp.org,2012-05-01:/may-2012.html<p>Come at 6:45 for pizza sponsored by
<a class="reference external" href="http://technologies.randstadusa.com/">Randstad Technologies</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft’s C++ <span class="caps">AMP</span> (<a class="reference external" href="http://msdn.microsoft.com/en-us/library/hh265136(v=vs.110).aspx">Accelerated Massive Parallelism</a>)
is a C++ programming model and language extension that allows any C++ developer
to take advantage of the massive parallelism available in today’s <span class="caps">GPU</span>’s.
It offers a developer-friendly, lightweight, and …</p></div><p>Come at 6:45 for pizza sponsored by
<a class="reference external" href="http://technologies.randstadusa.com/">Randstad Technologies</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft’s C++ <span class="caps">AMP</span> (<a class="reference external" href="http://msdn.microsoft.com/en-us/library/hh265136(v=vs.110).aspx">Accelerated Massive Parallelism</a>)
is a C++ programming model and language extension that allows any C++ developer
to take advantage of the massive parallelism available in today’s <span class="caps">GPU</span>’s.
It offers a developer-friendly, lightweight, and portable interface
that can enable programmers to achieve impressive performance boosts
on a variety of hardware platforms.
As an integrated part of Visual C++,
it is also supported by a full suite of familiar developer tools
including the editor, debugger, and profiler.
This presentation will introduce C++ <span class="caps">AMP</span>
and talk about its projected future as the hardware ecosystem evolves.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Madan Musuvathi is a Senior Researcher in the
Don McCrady is the development lead for the C++ <span class="caps">AMP</span> project.
He has worked for Microsoft for nearly 15 years in many diverse areas
including <span class="caps">COM</span> services, workflow services, and concurrency programming models.
In his spare time, he is an avid (if highly frustrated) astrophotographer and amateur astronomer.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/42419539">Video</a> |
<a class="reference external" href="/talks/2012/accelerated-massive-parallelism.pptx">Slides</a></p>
</div>
April 18th, 2012 — Essential Skills for the Agile Developer – Alan Shalloway2012-04-01T00:00:00-07:002012-04-01T00:00:00-07:00George Reillytag:nwcpp.org,2012-04-01:/april-2012.html<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many developers have been suddenly thrown into developing code in stages
whereas they used to be able to do bigger designs up front.
Many people tell them to do test-driven development and emergent design
while ignoring the fact that their work with legacy systems may prevent such actions.
In …</p></div><div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many developers have been suddenly thrown into developing code in stages
whereas they used to be able to do bigger designs up front.
Many people tell them to do test-driven development and emergent design
while ignoring the fact that their work with legacy systems may prevent such actions.
In any event, new methods require new skills – skills they don’t have time to get.
At first, it may appear that the required developer skill set for this new way of writing code
is huge and daunting.
Fortunately, it isn’t.
One of the things we’ve learned at Net Objectives,
is that there are often a few simple things one can do that make a huge difference.
We like to have people start with these trim tabs.
We refer to these as trim tabs since they are small things that make a big difference.
This talk introduces some trim tabs for the new agile developer.</p>
<p>Outline:</p>
<ul class="simple">
<li>Programming by Intention</li>
<li>Separating Use from Construction</li>
<li>Define tests Up Front</li>
<li>Shalloway’s Law</li>
<li>Encapsulate That</li>
</ul>
<p>The lessons learned are taken from Net Objectives’ new book
<a class="reference external" href="http://www.netobjectives.com/resources/books/essential-skills-agile-developers">Essential Skills for the Agile Developer</a>:</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><strong>Alan Shalloway</strong> is the founder and <span class="caps">CEO</span> of <a class="reference external" href="http://www.netobjectives.com/">Net Objectives</a>.
With over 40 years of experience, Alan is an industry thought leader
in Lean, Kanban, Scrum and design patterns.
He helps companies transition to Lean and Agile methods enterprise-wide
as well teaches courses in these areas.
Alan has developed training and coaching methods for Lean-Agile
that have helped his clients achieve long-term, sustainable productivity gains.
He is a popular speaker at prestigious conferences worldwide.
He is the primary author of
<a class="reference external" href="http://www.netobjectives.com/resources/books/design-patterns-explained">Design Patterns Explained: A New Perspective on Object-Oriented Design</a>,
<a class="reference external" href="http://www.netobjectives.com/resources/books/lean-agile-pocket-guide-scrum-teams">Lean-Agile Pocket Guide for Scrum Teams</a>,
<a class="reference external" href="http://www.netobjectives.com/resources/books/lean-agile-software-development">Lean-Agile Software Development: Achieving Enterprise Agility</a>,
and is currently writing
<a class="reference external" href="http://www.netobjectives.com/resources/books/essential-skills-agile-developers">Essential Skills for the Agile Developer</a>.
Alan has worked in literally dozens of industries over his career.
He is a co-founder and board member for the
<a class="reference external" href="http://www.leanssc.org/">Lean Software and Systems Consortium</a>.
He has a Masters in Computer Science from <span class="caps">M.I.T.
</span>as well as a Masters in Mathematics from Emory University.
You can follow Alan on Twitter,
<a class="reference external" href="http://twitter.com/alshalloway">@alshalloway</a></p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/40726192">Video</a> |
<a class="reference external" href="/talks/2012/essential-skills-for-the-agile-developer-2012.pdf">Slides</a></p>
</div>
March 21st, 2012 — A Multi-Core Algorithmic Differentiation Benchmarking System — Brad Bell2012-03-01T00:00:00-08:002012-03-01T00:00:00-08:00George Reillytag:nwcpp.org,2012-03-01:/march-2012.html<p>Please join us at 6:45 for pizza sponsored by
<a class="reference external" href="http://www.summitgroupsolutions.com/">Summit Group Solutions</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Implementing code that is fast in a multi-core environment
is one of the challenges of modern software engineering.</p>
<p>To meet this challenge, future Automatic Differentiation (<span class="caps">AD</span>) software
will have to avoid excessive synchronization barriers between threads …</p></div><p>Please join us at 6:45 for pizza sponsored by
<a class="reference external" href="http://www.summitgroupsolutions.com/">Summit Group Solutions</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Implementing code that is fast in a multi-core environment
is one of the challenges of modern software engineering.</p>
<p>To meet this challenge, future Automatic Differentiation (<span class="caps">AD</span>) software
will have to avoid excessive synchronization barriers between threads as
well as manage memory efficiently.</p>
<p>This talk presents a benchmarking system that is being used as an aid in
the development of the C++ <span class="caps">AD</span> software package
<a class="reference external" href="http://www.coin-or.org/CppAD/">CppAD</a>.</p>
<p>Different threading systems, and different versions of this software package,
are easily compared for speed of execution.</p>
<p>As an example of the importance of this benchmark testing,
and how it has improved this software package,
we compare the results for three versions of CppAD.
These versions correspond to improvements
in a general purpose C++ multi-threading memory allocator
that is now part of the CppAD library.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.seanet.com/~bradbell/">Dr. Bell</a> received his <span class="caps">BA</span> in math
and physics from Saint Lawrence University in 1973,
his <span class="caps">MA</span> in mathematics from the University of Washington in 1976,
and his Ph.D. in mathematics from the University of Washington in 1984.
Currently he is employed by the Applied Physics Laboratory of the University of Washington.
Much of his current work is in collaboration with the <span class="caps">UW</span> School of Public Health
as a member of the The Institute for Health Metrics and Evaluation.
He is also the project manager for the Coin-<span class="caps">OR</span> Algorithmic Differentiation project CppAD.
His current research is focused on statistically motivated numerical methods
for scientific modeling and data analysis.
This includes: algorithmic differentiation, Kalman filtering and smoothing,
stochastic function estimation (Tikhonov regularization),
nonlinear mixed effects estimation, optimization, and monte-carlo simulation.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/39008544">Video</a> |
<a class="reference external" href="/talks/2012/cppad-benchmark.pdf">Slides</a></p>
<p>CppAD pages are best viewed with Firefox, as they make heavy use of
<a class="reference external" href="http://en.wikipedia.org/wiki/MathML">MathML</a> to display math.</p>
<p><a class="reference external" href="http://www.coin-or.org/CppAD/">CppAD homepage</a>
| <a class="reference external" href="http://www.coin-or.org/CppAD/Doc/thread_test.cpp.xml">multi-threading test routine</a>
| <a class="reference external" href="http://www.coin-or.org/CppAD/Doc/introduction.xml">intro to theory of <span class="caps">AD</span></a>
| <a class="reference external" href="http://www.coin-or.org/CppAD/Doc/get_started.cpp.xml">getting started with CppAD</a></p>
</div>
February 15th, 2012 — Expressing Parallel Patterns in Modern C++ — Rahul V. Patil2012-02-01T00:00:00-08:002012-02-01T00:00:00-08:00George Reillytag:nwcpp.org,2012-02-01:/february-2012.html<p>Come at 6:30pm for pizza supplied by
<a class="reference external" href="http://www.amazon.com/gp/digital/careers/jobs.html">Amazon Digital</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We’ll do a lap around the most commonly applicable parallel patterns.
The goal of the talk is to map each of these parallel patterns to equivalent C++ code,
while taking advantage of the modern constructs in the language …</p></div><p>Come at 6:30pm for pizza supplied by
<a class="reference external" href="http://www.amazon.com/gp/digital/careers/jobs.html">Amazon Digital</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We’ll do a lap around the most commonly applicable parallel patterns.
The goal of the talk is to map each of these parallel patterns to equivalent C++ code,
while taking advantage of the modern constructs in the language.
We’ll demonstrate this by looking at the Parallel Patterns Library
available in Visual Studio and Intel’s <span class="caps">TBB</span>.
We’ll also look at some tools within Intel’s Parallel Studio and Microsoft’s Visual Studio
that help identify, debug and analyze parallel programs.</p>
<p>This talk is for you, if you are looking to learn
generally accepted parallel patterns and start using them in your C++ code.
The talk will scale between 200 level and 400 level.</p>
<p>Note: The talk will <em>not</em> discuss C++ <span class="caps">AMP</span>, which deserves a full hour of its own.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Rahul V. Patil is a Lead Program Manager, in Microsoft’s C++ Parallel Computing team.
He started at Microsoft 8 years ago and has been a part
of the C++ concurrency runtime team since its inception.</p>
<p>About Rahul’s team: Parallel Computing team was founded 5 years ago
with the mission of bringing programming models and tools to developers,
so they may take advantage of the multi-cores and GPUs on the machine.</p>
<ul class="simple">
<li><a class="reference external" href="http://msdn.microsoft.com/en-us/concurrency/bb964701">Microsoft <span class="caps">MSDN</span> concurrency</a></li>
<li><a class="reference external" href="http://blogs.msdn.com/b/nativeconcurrency/">C++ <span class="caps">PPL</span> and <span class="caps">AMP</span> blog</a></li>
</ul>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Watch the <a class="reference external" href="http://vimeo.com/36917212">video</a> of Rahul’s talk
or read the <a class="reference external" href="/talks/2012/parallel_talk_nwcpp_redux.pptx">slides</a>.</p>
</div>
January 25th, 2012 — Finding Race Condition and Data Races Effectively — Madan Musuvathi2012-01-01T00:00:00-08:002012-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2012-01-01:/january-2012.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 25th, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+43">Building 43/1540–Adams</a></div>
<div class="line">(note room change).</div>
<div class="line">This meeting was originally scheduled for Jan 18th but postponed due to snow.</div>
</div>
<p>Come at 6:30pm for pizza supplied by
<a class="reference external" href="http://bit.ly/STBjobs">Microsoft Server and Tools</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In this talk, I will …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<div class="line-block">
<div class="line">January 25th, 2012 at 7:00 <span class="caps">PM</span></div>
<div class="line">Microsoft Campus.</div>
<div class="line"><a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft+Building+43">Building 43/1540–Adams</a></div>
<div class="line">(note room change).</div>
<div class="line">This meeting was originally scheduled for Jan 18th but postponed due to snow.</div>
</div>
<p>Come at 6:30pm for pizza supplied by
<a class="reference external" href="http://bit.ly/STBjobs">Microsoft Server and Tools</a>.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In this talk, I will describe two <span class="caps">MSR</span> tools,
Cuzz and DataCollider, for finding concurrency errors.
Cuzz uses a randomized algorithm to insert delays
in a concurrent program to force race conditions with probabilistic guarantees.
Cuzz is easy to use and is integrated with Microsoft’s Application Verifier.
DataCollider uses hardware facilities in interesting ways
to find data races with little runtime overhead.
While other data-race detection techniques incur a 1000% runtime overhead or more,
DataCollider incurs about 0 to 20% overhead.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Madan Musuvathi is a Senior Researcher in the
<a class="reference external" href="http://research.microsoft.com/groups/rise/">Research in Software Engineering</a> group at
<a class="reference external" href="http://research.microsoft.com/">Microsoft Research</a>.
His research focus is on scalable analysis of concurrent systems.
More broadly, his interests include systems, program analysis, model checking,
verification, and theorem proving.
He also spends a lot of time at Microsoft
building analysis tools to improve the productivity of software developers and testers.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/35722387">Video</a> |
<a class="reference external" href="/talks/2012/nwcpp-2012-01-musuvathi-cuzz-datacollider.pptx">Slides</a> |
<a class="reference external" href="http://research.microsoft.com/pubs/118655/asplos277-pct.pdf">Cuzz paper</a> |
<a class="reference external" href="http://research.microsoft.com/pubs/139266/DataCollider%20-%20OSDI2010.pdf">DataCollider paper</a>.</p>
</div>
20112011-12-31T00:00:00-08:002011-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2011-12-31:/2011-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2011.html">January 19th, 2011 — Determinism and Fail-Stop Races for Sane Multiprocessing — Luis Ceze</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2011.html">February 16th, 2011 — The Thought Process of Patterns: Essential Design Skills — Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2011.html">March 16th, 2011 — Debuggers and Mago — Aldo Nunez</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2011.html">April 20th, 2011: ‘C’ for Microcontrollers, Just Being Efficient — Lloyd Moore</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2011.html">May 18th, 2011 — C++0x Lambda …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2011.html">January 19th, 2011 — Determinism and Fail-Stop Races for Sane Multiprocessing — Luis Ceze</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2011.html">February 16th, 2011 — The Thought Process of Patterns: Essential Design Skills — Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2011.html">March 16th, 2011 — Debuggers and Mago — Aldo Nunez</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2011.html">April 20th, 2011: ‘C’ for Microcontrollers, Just Being Efficient — Lloyd Moore</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2011.html">May 18th, 2011 — C++0x Lambda Functions — Herb Sutter</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2011.html">June 15th, 2011 — Avoiding Over and Under Design — Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2011.html">July 2011: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2011.html">August 2011: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2011.html">September 21st, 2011 — Beyond Threads — Rick Molloy</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2011.html">October 19th, 2011 — Asynchronous Tasks in C++11 — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2011.html">November 16th, 2011 — Introduction to Scientific Computing — Robert Goddard</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2011.html">December 2011: No Meeting</a></p>
December 2011: No Meeting2011-12-01T00:00:00-08:002011-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2011-12-01:/december-2011.htmlNovember 16th, 2011 — Introduction to Scientific Computing — Robert Goddard2011-11-01T00:00:00-07:002011-11-01T00:00:00-07:00George Reillytag:nwcpp.org,2011-11-01:/november-2011.html<p>Come at 6:30pm for pizza supplied by
<a class="reference external" href="http://www.km.kongsberg.com/">Kongsberg Underwater Technology</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Computing in science and engineering involves modeling part of the physical world.
The inputs could be detailed measurements of the environment,
or a randomized set of potential measurements that might characterize some environment in the future.
The outputs …</p></div><p>Come at 6:30pm for pizza supplied by
<a class="reference external" href="http://www.km.kongsberg.com/">Kongsberg Underwater Technology</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Computing in science and engineering involves modeling part of the physical world.
The inputs could be detailed measurements of the environment,
or a randomized set of potential measurements that might characterize some environment in the future.
The outputs could be images, or sound, or predictions of whether
a system will succeed or fail to perform its function,
or actions to make it more (or less) likely that some system will succeed.
The algorithms might involve solving a set of differential equations,
or integrating some function over a multi-dimensional domain,
or searching multi-dimensional parameter spaces to optimize some measure of quality or fit,
or sifting through noise to find a buried signal.
Speed requirements might be real-time (hard or soft), or much faster,
or just fast enough to fit into your project cost and schedule.
The answers must be accurate enough to accomplish the mission:
Personnel training, or performance prediction, or advance of scientific knowledge,
or control of a system or device, or life, or death.</p>
<p>Scientific computing typically involves a whole lot of arithmetic.
So, I will begin with a review of floating point arithmetic, specifically the <span class="caps">IEEE</span> 754 standard.
(You might be surprised at how much you thought you knew, but didn’t.)
Then I will move on to <span class="caps">R. W.</span> Hamming’s five main ideas about computation:
Emphasis on the purpose of the computation,
generalization of algorithms into families, roundoff error, truncation error,
and feedback (stability).
I hope to give enough practical information to help you avoid the most common problems
inherent in numerical computation,
and to point out resources that could help you go further.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Robert Goddard is a physicist and software developer.
For the last 31 years, he has worked at the
Applied Physics Laboratory of the University of Washington,
mainly on computer modeling of underwater sound.
He is the architect and team leader for the Sonar Simulation Toolset (<span class="caps">SST</span>),
which produces simulated underwater sound,
suitable as input to sophisticated signal processing systems
(including human ears and brains),
based on user-specified descriptions of the undersea environment,
the listening system, and the sound sources and targets that might be out there.
He has also developed systems for control of measurement devices,
data analysis, visualization, modeling of quantum mechanical scattering,
and optimization of parameter values to fit observations.</p>
<p>Bob has been an active participant in <span class="caps">NWCPP</span> for most of its existence,
and is currently Treasurer.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/32281584">Video</a> and
<a class="reference external" href="/talks/2011/scientificcomputing.pdf">slides</a></p>
</div>
October 19th, 2011 — Asynchronous Tasks in C++11 — Bartosz Milewski2011-10-01T00:00:00-07:002011-10-01T00:00:00-07:00George Reillytag:nwcpp.org,2011-10-01:/october-2011.html<p>Come at 6:30 for pizza provided by
<a class="reference external" href="http://www.summitgroupsolutions.com/">Summit Group Solutions, <span class="caps">LLC</span></a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>One of the goals of the new <a class="reference external" href="http://en.wikipedia.org/wiki/C%2B%2B11">C++11 Standard</a>
was to provide support for concurrency, in particular for thread-based concurrency.
But threads don’t scale very well.
Do C++ tasks, which are created using <tt class="docutils literal"><span class="pre">std::async …</span></tt></p></div><p>Come at 6:30 for pizza provided by
<a class="reference external" href="http://www.summitgroupsolutions.com/">Summit Group Solutions, <span class="caps">LLC</span></a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>One of the goals of the new <a class="reference external" href="http://en.wikipedia.org/wiki/C%2B%2B11">C++11 Standard</a>
was to provide support for concurrency, in particular for thread-based concurrency.
But threads don’t scale very well.
Do C++ tasks, which are created using <tt class="docutils literal"><span class="pre">std::async</span></tt>, offer a scalable solution?
Can they implement task-based parallelism?</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski has a Ph.D. in Quantum Physics and many years of experience as a C++ programmer.
He worked at Microsoft on the Context Index—a search engine before the Internet—still an active part of Windows 7.
He designed the first distributed version control system,
<a class="reference external" href="http://www.relisoft.com/co_op/">Code Co-op</a> (before BitKeeper and Git).
Bartosz took part in the design of the <a class="reference external" href="http://www.digitalmars.com/d/2.0/index.html">D language</a>.
His main topics of interest are concurrent and distributed computing.
He works at Corensic, a Seattle startup that makes a concurrency bug detector,
<a class="reference external" href="http://www.corensic.com/Products.aspx">Jinx</a>.
He regularly publishes a blog at
<a class="reference external" href="http://BartoszMilewski.wordpress.com">http://BartoszMilewski.wordpress.com</a>
and a series of <a class="reference external" href="http://www.corensic.com/Learn/Resources/ConcurrencyTutorialPartOne.aspx">C++11 Concurrency tutorials</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2011/asynctasksinc11.pptx">Slides</a> and
<a class="reference external" href="http://vimeo.com/30868784">video</a> of Bartosz’s talk.</p>
</div>
September 21st, 2011 — Beyond Threads — Rick Molloy2011-09-01T00:00:00-07:002011-09-01T00:00:00-07:00George Reillytag:nwcpp.org,2011-09-01:/september-2011.html<p>Come at 6:30 for pizza provided by <a class="reference external" href="http://www.amazon.com/">Amazon Digital</a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A stroll through actor and task based programming using Visual Studio.</p>
<p>Developing concurrent applications and libraries is hard.
Making them robust and inherently scalable is even more challenging.
This talk will walk through a small handful of examples of …</p></div><p>Come at 6:30 for pizza provided by <a class="reference external" href="http://www.amazon.com/">Amazon Digital</a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A stroll through actor and task based programming using Visual Studio.</p>
<p>Developing concurrent applications and libraries is hard.
Making them robust and inherently scalable is even more challenging.
This talk will walk through a small handful of examples of using Microsoft’s
<a class="reference external" href="http://msdn.microsoft.com/en-us/library/dd492627(VS.100).aspx">Agents</a>
<span class="amp">&</span> <a class="reference external" href="http://msdn.microsoft.com/en-us/library/dd492418(VS.100).aspx">Parallel Pattern Library</a>
that implement patterns from actor-based and dataflow programming.
An emphasis will be made on providing examples that are drawn from real situations
I’ve encountered in code in the last few years
and how the patterns help resolve them,
rather than just providing a simple inventory of the APIs.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://parallelroads.wordpress.com/">Rick Molloy</a> has worked at
Microsoft at various roles since 1999
and is currently working as a developer in the Startup Business Group.
Rick developed a passion for programing models while working on the Parallel Computing team and
contributing to Microsoft’s Concurrency Runtime and C++ <span class="caps">AMP</span>
and a passion for performance when working on Windows.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2011/beyondthreads-rickmolloy-2011-09-21.pptx">Slides</a>,
<a class="reference external" href="/talks/2011/beyondthreads-code-rickmolloy-2011-09-21.zip">code</a>,
and <a class="reference external" href="http://www.vimeo.com/29672551">video</a> of Rick’s talk.</p>
</div>
August 2011: No Meeting2011-08-01T00:00:00-07:002011-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2011-08-01:/august-2011.htmlJuly 2011: No Meeting2011-07-01T00:00:00-07:002011-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2011-07-01:/july-2011.htmlHow to Sponsor NWCPP2011-06-13T00:00:00-07:002011-06-13T00:00:00-07:00George Reillytag:nwcpp.org,2011-06-13:/sponsors-howto.html<p>Several companies have chosen to sponsor our monthly meetings.
Often these companies supply free pizza for the meeting.
Other companies may choose to give away products.</p>
<p>If you sponsor us, we will add a brief mention on the front page which
links to our <a class="reference external" href="http://nwcpp.org/sponsors.html">sponsorship page</a>.</p>
<p><span class="caps">NWCPP</span> welcomes your sponsorship …</p><p>Several companies have chosen to sponsor our monthly meetings.
Often these companies supply free pizza for the meeting.
Other companies may choose to give away products.</p>
<p>If you sponsor us, we will add a brief mention on the front page which
links to our <a class="reference external" href="http://nwcpp.org/sponsors.html">sponsorship page</a>.</p>
<p><span class="caps">NWCPP</span> welcomes your sponsorship, subject to the following guidelines.</p>
<ol class="arabic simple">
<li>Donations to get onto the sponsor page must be at least $50 in value.</li>
<li>All contributions must go to one or more members of our organization;
no equipment or assets will be held at this time by the organization itself.</li>
<li>In those cases where specific items are being given away,
the recipient of those items must be determined by a drawing
from all those wishing to participate.
The drawing must be open to everyone and free to enter.
You may collect business cards or email addresses.
Board members of <span class="caps">NWCPP</span> are not eligible to enter the drawings.</li>
<li><span class="caps">NWCPP</span> maintains a separate web page for sponsorship postings.
Each month we will add the latest sponsors to the top of the page,
and remove the postings that are 1+ years old.</li>
</ol>
<p><span class="caps">NWCPP</span> is a 501(c)3 organization. Our <span class="caps">EIN</span> is <strong>91-1718733</strong>.</p>
June 15th, 2011 — Avoiding Over and Under Design — Alan Shalloway2011-06-01T00:00:00-07:002011-06-01T00:00:00-07:00George Reillytag:nwcpp.org,2011-06-01:/june-2011.html<p>Come at 6:30pm for the pizza provided by <a class="reference external" href="http://www.corensic.com/">Corensic</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The question of how much design to do up-front on a project is an engaging one.
Too much design often results in overkill, complexity, and wasted work.
Too little design results in insufficient system structures
that require rework, additional …</p></div><p>Come at 6:30pm for the pizza provided by <a class="reference external" href="http://www.corensic.com/">Corensic</a>.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The question of how much design to do up-front on a project is an engaging one.
Too much design often results in overkill, complexity, and wasted work.
Too little design results in insufficient system structures
that require rework, additional complexity, and wasted effort.
How can we know what the right balance is?
Alan Shalloway shows how to use the advice from Design Patterns
coupled with the attitude of not building what you don’t need from Agile.
The trick is in discovering what you don’t know, how it may affect you,
and then how to isolate these risks in your code in a simple manner.
Alan describes the essence of emergent design
– that is, starting with a simple design and letting it evolve as the requirements evolve.
He also demonstrates how to refactor to better designs
and how this is different from refactoring bad code.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><strong>Alan Shalloway</strong> is the founder and <span class="caps">CEO</span> of <a class="reference external" href="http://www.netobjectives.com/">Net Objectives</a>.
With over 40 years of experience, Alan is an industry thought leader
in Lean, Kanban, Scrum and design patterns.
He helps companies transition to Lean and Agile methods enterprise-wide
as well teaches courses in these areas.
Alan has developed training and coaching methods for Lean-Agile
that have helped his clients achieve long-term, sustainable productivity gains.
He is a popular speaker at prestigious conferences worldwide.
He is the primary author of
<a class="reference external" href="http://www.netobjectives.com/resources/books/design-patterns-explained">Design Patterns Explained: A New Perspective on Object-Oriented Design</a>,
<a class="reference external" href="http://www.netobjectives.com/resources/books/lean-agile-pocket-guide-scrum-teams">Lean-Agile Pocket Guide for Scrum Teams</a>,
<a class="reference external" href="http://www.netobjectives.com/resources/books/lean-agile-software-development">Lean-Agile Software Development: Achieving Enterprise Agility</a>,
and is currently writing
<a class="reference external" href="http://www.netobjectives.com/resources/books/essential-skills-agile-developers">Essential Skills for the Agile Developer</a>.
Alan has worked in literally dozens of industries over his career.
He is a co-founder and board member for the
<a class="reference external" href="http://www.leanssc.org/">Lean Software and Systems Consortium</a>.
He has a Masters in Computer Science from <span class="caps">M.I.T.
</span>as well as a Masters in Mathematics from Emory University.
You can follow Alan on Twitter,
<a class="reference external" href="http://twitter.com/alshalloway">@alshalloway</a></p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2011/avoidingoverandunderdesigncpp.pdf">Slides</a>
and <a class="reference external" href="http://vimeo.com/25209064">video</a> of Alan’s talk.</p>
</div>
May 18th, 2011 — C++0x Lambda Functions — Herb Sutter2011-05-01T00:00:00-07:002011-05-01T00:00:00-07:00George Reillytag:nwcpp.org,2011-05-01:/may-2011.html<p>The Northwest C++ Users Group’ would like to extend a very special
welcome to Herb Sutter as the speaker for the May 2011 meeting.</p>
<p>Come at 6:30 for <em>pizza</em> provided by
<a class="reference external" href="http://http//www.corensic.com//">Corensic</a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Why care about <a class="reference external" href="http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions">C++0x lambda functions</a>?
Syntactically, they are nothing but sugar for function objects …</p></div><p>The Northwest C++ Users Group’ would like to extend a very special
welcome to Herb Sutter as the speaker for the May 2011 meeting.</p>
<p>Come at 6:30 for <em>pizza</em> provided by
<a class="reference external" href="http://http//www.corensic.com//">Corensic</a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Why care about <a class="reference external" href="http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions">C++0x lambda functions</a>?
Syntactically, they are nothing but sugar for function objects.
However, they are an essential and enabling sugar that will change the way
we will write C++ code more often than most people realize.</p>
<p>This talk will cover what lambda functions are and how to use them effectively,
including how lambdas touch many wide-ranging kinds of code
— from their convenience when writing concurrent and scalable parallel code,
to how they stand to revolutionize <span class="caps">STL</span> usability and programming,
to how they enable such small conveniences as local functions and local variable initialization.</p>
<p>Note that lambda functions, although futuristic, are not a far-future feature.
They are available today in several shipping C++ compilers,
including Intel C++ 11, Microsoft Visual Studio 2010, and gcc 4.5.
The future is now.
Come find out how this powerful feature affects you and your code.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://en.wikipedia.org/wiki/Herb_Sutter">Herb Sutter</a>
is the chair of the <span class="caps">ISO</span> C++ committee.
He is responsible for the design of lambda functions in Visual C++ 2010
and their integration in the Parallel Patterns Library.
He is partly responsible for the design of lambda functions in the C++0x standard,
notably capture defaults and final syntax.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2011/lambda.pdf">Slides</a> and
<a class="reference external" href="http://vimeo.com/23975522">video</a> of Herb’s standing-room-only talk.</p>
</div>
April 20th, 2011: ‘C’ for Microcontrollers, Just Being Efficient — Lloyd Moore2011-04-01T00:00:00-07:002011-04-01T00:00:00-07:00George Reillytag:nwcpp.org,2011-04-01:/april-2011.html<p>Come at 6:30 for pizza provided by Amazon Digital!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microcontrollers represent a highly resource constrained environment.
Very small microcontrollers typically have only several <span class="caps">KB</span> of program space available
and several hundred bytes of memory, in addition to very low clock speeds.
This talk will look at how to …</p></div><p>Come at 6:30 for pizza provided by Amazon Digital!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microcontrollers represent a highly resource constrained environment.
Very small microcontrollers typically have only several <span class="caps">KB</span> of program space available
and several hundred bytes of memory, in addition to very low clock speeds.
This talk will look at how to address these resource limitations.
Many of the techniques examined also apply to larger / <span class="caps">PC</span> class hardware,
and can be used to improve the performance for those systems.
In addition the techniques explored are also beneficial
for optimizing the power consumption of mobile devices and applications.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><strong>Lloyd Moore</strong> is the founder and owner of
<a class="reference external" href="http://www.CyberData-Robotics.com">CyberData Corporation</a>,
which provides consulting services in the robotics and industrial automation field.
Lloyd has worked in software industry for 25 years,
with his formal training in biological based artificial intelligence, electronics, and psychology.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2011/c%20for%20microcontrollers.ppt">Slides</a> and
<a class="reference external" href="http://vimeo.com/nwcpp/april2011">video</a> of Lloyd’s talk.</p>
</div>
March 16th, 2011 — Debuggers and Mago — Aldo Nunez2011-03-01T00:00:00-08:002011-03-01T00:00:00-08:00George Reillytag:nwcpp.org,2011-03-01:/march-2011.html<p>Come at 6:30pm to socialize and eat pizza provided by
<a class="reference external" href="http://www.summitgroupsolutions.com/">Summit Group Solutions</a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Debuggers are an important tool for helping software engineers
get to the root of certain problems.
<a class="reference external" href="http://dsource.org/projects/mago_debugger">Mago</a>
is a graphical debugger dedicated to the
<a class="reference external" href="http://en.wikipedia.org/wiki/D_(programming_language)">D programming language</a>
on Windows.
It is made up of several …</p></div><p>Come at 6:30pm to socialize and eat pizza provided by
<a class="reference external" href="http://www.summitgroupsolutions.com/">Summit Group Solutions</a>!</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Debuggers are an important tool for helping software engineers
get to the root of certain problems.
<a class="reference external" href="http://dsource.org/projects/mago_debugger">Mago</a>
is a graphical debugger dedicated to the
<a class="reference external" href="http://en.wikipedia.org/wiki/D_(programming_language)">D programming language</a>
on Windows.
It is made up of several independent libraries that can be used
for other purposes such as tracing and code analysis.</p>
<p>In this talk, we’ll cover the process of debugging in general,
specifics on Windows, and details about Mago’s connection to D.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Aldo Nunez has worked on embedded software since
graduating with a <span class="caps">B.A.</span> in Computer Science from New York University in 2001.
He first programmed <span class="caps">BASIC</span> on the VTech PreComputer 1000,
and is interested in programming language tools and video games.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Aldo’s <a class="reference external" href="/talks/2011/mago%20debugger%20inner%20workings.pptx">slides</a>.
Video, <a class="reference external" href="http://vimeo.com/21323893">Part I</a> and <a class="reference external" href="http://vimeo.com/21605995">Part <span class="caps">II</span></a>.</p>
</div>
February 16th, 2011 — The Thought Process of Patterns: Essential Design Skills — Alan Shalloway2011-02-01T00:00:00-08:002011-02-01T00:00:00-08:00George Reillytag:nwcpp.org,2011-02-01:/february-2011.html<p>Pizza will be supplied by <a class="reference external" href="http://www.netobjectives.com/">Net Objectives</a></p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Patterns have been known as “Solutions to Recurring Problems in a Context.”
However, they are really more than just that.
In fact, Christopher Alexander, the inspirer of design patterns in general and
the author of this quote later says at the end …</p></div><p>Pizza will be supplied by <a class="reference external" href="http://www.netobjectives.com/">Net Objectives</a></p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Patterns have been known as “Solutions to Recurring Problems in a Context.”
However, they are really more than just that.
In fact, Christopher Alexander, the inspirer of design patterns in general and
the author of this quote later says at the end of his book
– “At this final stage, the patterns are no longer important:
the patterns have taught you to be receptive to what is real.”
This talk is about the thought process of patterns – what to be receptive to.
These concepts will be discussed in the context of emerging application architectures
and so will be of particular interest to agile developers.
However, these concepts are equally important to creating designs that are to endure,
regardless of the methodology involved.</p>
<p>The lessons learned will be taken from Net Objectives’ upcoming book
<a class="reference external" href="http://www.netobjectives.com/resources/books/essential-skills-agile-developers">Essential Skills for the Agile Developer</a>:</p>
<ul class="simple">
<li>Programming by Intention</li>
<li>Separating Use from Construction</li>
<li>Define tests Up Front</li>
<li>Shalloway’s Law</li>
<li>Encapsulate That</li>
</ul>
<p>Attendees will learn a new respect for design patterns
and how they are more useful today than ever before.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><strong>Alan Shalloway</strong> is the founder and <span class="caps">CEO</span> of <a class="reference external" href="http://www.netobjectives.com/">Net Objectives</a>.
With over 40 years of experience, Alan is an industry thought leader
in Lean, Kanban, Scrum and design patterns.
He helps companies transition to Lean and Agile methods enterprise-wide
as well teaches courses in these areas.
Alan has developed training and coaching methods for Lean-Agile
that have helped his clients achieve long-term, sustainable productivity gains.
He is a popular speaker at prestigious conferences worldwide.
He is the primary author of
<a class="reference external" href="http://www.netobjectives.com/resources/books/design-patterns-explained">Design Patterns Explained: A New Perspective on Object-Oriented Design</a>,
<a class="reference external" href="http://www.netobjectives.com/resources/books/lean-agile-pocket-guide-scrum-teams">Lean-Agile Pocket Guide for Scrum Teams</a>,
<a class="reference external" href="http://www.netobjectives.com/resources/books/lean-agile-software-development">Lean-Agile Software Development: Achieving Enterprise Agility</a>,
and is currently writing
<a class="reference external" href="http://www.netobjectives.com/resources/books/essential-skills-agile-developers">Essential Skills for the Agile Developer</a>.
Alan has worked in literally dozens of industries over his career.
He is a co-founder and board member for the
<a class="reference external" href="http://www.leanssc.org/">Lean Software and Systems Consortium</a>.
He has a Masters in Computer Science from <span class="caps">M.I.T.
</span>as well as a Masters in Mathematics from Emory University.
You can follow Alan on Twitter,
<a class="reference external" href="http://twitter.com/alshalloway">@alshalloway</a></p>
</div>
January 19th, 2011 — Determinism and Fail-Stop Races for Sane Multiprocessing — Luis Ceze2011-01-01T00:00:00-08:002011-01-01T00:00:00-08:00George Reillytag:nwcpp.org,2011-01-01:/january-2011.html<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Current multicore systems are nondeterministic.
Each time they execute a multithreaded application, even if supplied with the same input,
they can produce a different output.
This frustrates debugging, limits the ability to properly test multithreaded code
and hinders fault-tolerant scenarios.
Moreover, data-races often lead to surprising behavior
and complicate …</p></div><div class="section" id="abstract">
<h2>Abstract</h2>
<p>Current multicore systems are nondeterministic.
Each time they execute a multithreaded application, even if supplied with the same input,
they can produce a different output.
This frustrates debugging, limits the ability to properly test multithreaded code
and hinders fault-tolerant scenarios.
Moreover, data-races often lead to surprising behavior
and complicate the semantics of programming languages.</p>
<p>In this talk, I will argue that nondeterminism should be kept at a minimum
both during development as well as in the field,
making the benefits of deterministic execution go beyond debugging.
I will also argue that concurrency errors should be treated as exceptions,
have fail-stop behavior and precise semantics.
I will present our work on fully deterministic shared memory multiprocessing (<span class="caps">DMP</span>),
exploring multiple deterministic execution strategies
with different performance, complexity and scalability trade-offs.
I will also present some of our work on architecture support
for fail-stop behavior of data-races.
I will end the talk with a brief overview of our efforts
in complex concurrency bug detection and avoidance.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.cs.washington.edu/homes/luisceze/">Luis Ceze</a>
is an Assistant Professor in the Computer Science and Engineering Department
at the University of Washington.
His research focuses on computer architecture, compiler, programming models and <span class="caps">OS</span>
to improve the programmability, reliability and energy efficiency of multiprocessor systems.
He has co-authored over 40 papers in these areas,
and had several papers selected as <span class="caps">IEEE</span> Micro Top Picks and <span class="caps">CACM</span> research Highlights.
He participated in the Blue Gene, Cyclops, and <span class="caps">PERCS</span> projects at <span class="caps">IBM</span>
and is a recipient of several <span class="caps">IBM</span> awards.
He is also a recipient of an <span class="caps">NSF</span> <span class="caps">CAREER</span> Award, a Sloan Research Fellowship,
and a Microsoft Research Faculty Fellowship.
He co-founded Corensic, a <span class="caps">UW</span>-<span class="caps">CSE</span> spin-off company, where he is a part-time consultant.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2011/nwcpp-jan2011.pdf">Slides</a>.</p>
</div>
20102010-12-31T00:00:00-08:002010-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2010-12-31:/2010-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2010.html">January 2010: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2010.html">February 2010: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2010.html">March 17th, 2010 — Short Talks on Concurrency</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2010.html">April 21st, 2010 — New C++0x Features in Visual Studio 2010 — Mark Roberts</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2010.html">May 19th, 2010 — The Anatomy of Message Passing — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2010.html">June 16th, 2010 — Massive Multithreading on the <span class="caps">GPU</span> — Gavriel Plotke</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2010.html">July 2010 …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2010.html">January 2010: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2010.html">February 2010: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2010.html">March 17th, 2010 — Short Talks on Concurrency</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2010.html">April 21st, 2010 — New C++0x Features in Visual Studio 2010 — Mark Roberts</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2010.html">May 19th, 2010 — The Anatomy of Message Passing — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2010.html">June 16th, 2010 — Massive Multithreading on the <span class="caps">GPU</span> — Gavriel Plotke</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2010.html">July 2010: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2010.html">August 2010: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2010.html">September 15th, 2010 — The Many Faces of D — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2010.html">October 20th, 2010 — Steve Yegge — Scaling and Standardizing Programming Language Analysis at Google</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2010.html">November 17th, 2010 — Bartosz Milewski — C++ vs. Haskell: Type Classes vs. Concepts</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2010.html">December 2010: No Meeting</a></p>
December 2010: No Meeting2010-12-01T00:00:00-08:002010-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2010-12-01:/december-2010.htmlNovember 17th, 2010 — Bartosz Milewski — C++ vs. Haskell: Type Classes vs. Concepts2010-11-01T00:00:00-07:002010-11-01T00:00:00-07:00George Reillytag:nwcpp.org,2010-11-01:/november-2010.html<div class="section" id="abstract">
<h2>Abstract</h2>
<p><a class="reference external" href="http://en.wikipedia.org/wiki/Concepts_(C%2B%2B)">C++ Concepts</a>
got a lot of bad press and were dropped from
<a class="reference external" href="http://en.wikipedia.org/wiki/C%2B%2B0x">C++0x</a>.
They were considered too complex with too few benefits.
And yet their equivalent in Haskell,
<a class="reference external" href="http://en.wikipedia.org/wiki/Type_class">type classes</a>,
are considered simple and powerful.
I will talk about both languages, explaining some Haskell and C++ concept syntax …</p></div><div class="section" id="abstract">
<h2>Abstract</h2>
<p><a class="reference external" href="http://en.wikipedia.org/wiki/Concepts_(C%2B%2B)">C++ Concepts</a>
got a lot of bad press and were dropped from
<a class="reference external" href="http://en.wikipedia.org/wiki/C%2B%2B0x">C++0x</a>.
They were considered too complex with too few benefits.
And yet their equivalent in Haskell,
<a class="reference external" href="http://en.wikipedia.org/wiki/Type_class">type classes</a>,
are considered simple and powerful.
I will talk about both languages, explaining some Haskell and C++ concept syntax as I go.
I’ll give examples of problems that type classes solve and C++ concepts could have solved.
I’ll show you the hair-raising forensics of a C++ <span class="caps">ADL</span>
(Argument-Dependent Lookup) mishap that could have been avoided by using concepts.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski has a Ph.D. in High-Energy Physics
and many years of experience as a C++ programmer.
He worked at Microsoft on the Context Index—a search engine before the Internet,
still an active part of Windows 7.
He designed the first distributed version control system,
<a class="reference external" href="http://www.relisoft.com/co_op/">Code Co-op</a>
(before BitKeeper and Git).
Bartosz took part in the design of the
<a class="reference external" href="http://www.digitalmars.com/d/">D language</a>.
His main topics of interest are concurrent and distributed computing and language design.
He regularly publishes a blog at
<a class="reference external" href="http://BartoszMilewski.wordpress.com">http://BartoszMilewski.wordpress.com</a>.
You may see him occasionally at <span class="caps">CSE</span> 950 P at the <span class="caps">UW</span>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://bartoszmilewski.wordpress.com/2010/11/29/understanding-c-concepts-through-haskell-type-classes/">Video</a>
of the presentation.</p>
</div>
October 20th, 2010 — Steve Yegge — Scaling and Standardizing Programming Language Analysis at Google2010-10-01T00:00:00-07:002010-10-01T00:00:00-07:00George Reillytag:nwcpp.org,2010-10-01:/october-2010.html<p>Wednesday, October 20, 2010, at 7pm. 41/1511, Microsoft.
Come early to socialize and eat pizza.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Modern IDEs and compilers generate a wealth of information,
and you can’t have any of it.
Tools in the compiler family — even the best IDEs — tend to be monolithic, language-specific,
generally non-scalable …</p></div><p>Wednesday, October 20, 2010, at 7pm. 41/1511, Microsoft.
Come early to socialize and eat pizza.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Modern IDEs and compilers generate a wealth of information,
and you can’t have any of it.
Tools in the compiler family — even the best IDEs — tend to be monolithic, language-specific,
generally non-scalable special-purpose applications.
Even when they do support headless analysis, none of them do it the same way,
and very few of them can do cross-language analysis.
At Google, I’ve put together a team with the long-term goal of addressing these problems
in a general way.
We’ve built infrastructure to run <span class="caps">IDE</span>-quality code analyzers such
as <a class="reference external" href="http://www.eclipse.org/">Eclipse</a> and <a class="reference external" href="http://en.wikipedia.org/wiki/Clang">clang</a>
over Google’s entire corpus and all open-source code.
We translate the intermediate representations into a language-neutral index,
then serve the index data back through language-neutral APIs and query interfaces.
In this talk I’ll share what we’ve done so far,
then about our longer-term plans for an open platform.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://steve-yegge.blogspot.com/">Steve Yegge</a> graduated
from the University of Washington with a <span class="caps">B.S.</span> in Computer Science.
He spent five years as a developer and team lead at Geoworks,
several years at various startups,
and then more than six years at Amazon.com as a Senior Development Manager.
He joined Google in 2005 and is a Staff Software Engineer in the Kirkland office,
currently working on scaling language analysis.
Steve lives in downtown Kirkland with his lovely wife Linh and their faithful furry sidekick Cino.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="http://vimeo.com/16069687">Video</a> of Steve’s talk.</p>
</div>
September 15th, 2010 — The Many Faces of D — Walter Bright2010-09-01T00:00:00-07:002010-09-01T00:00:00-07:00George Reillytag:nwcpp.org,2010-09-01:/september-2010.html<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There are many mainstream programming paradigms —
imperative, object oriented, meta, functional, etc.
Each has their proponents and languages oriented around it.
But larger applications tend to not fit easily into any particular paradigm.</p>
<p>In extreme cases, developers will resort to using multiple languages
with an uneasy interface between them …</p></div><div class="section" id="abstract">
<h2>Abstract</h2>
<p>There are many mainstream programming paradigms —
imperative, object oriented, meta, functional, etc.
Each has their proponents and languages oriented around it.
But larger applications tend to not fit easily into any particular paradigm.</p>
<p>In extreme cases, developers will resort to using multiple languages
with an uneasy interface between them.
The <a class="reference external" href="http://www.digitalmars.com/d/index.html">D programming language</a>
takes a different approach, offering multiple programming paradigms within one language,
making it easy to select the most suitable paradigm for each task within the application.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.walterbright.com/">Walter Bright</a> graduated from Caltech in 1979
with a degree in mechanical engineering.
He worked for Boeing for 3 years on the development of the 757 stabilizer trim system.
He then switched to writing software, in particular compilers,
and has been writing them ever since.</p>
<p>There will be door prizes—3 copies of Andrei Alexandrescu’s book,
<a class="reference external" href="http://www.amazon.com/D-Programming-Language-Andrei-Alexandrescu/dp/0321635361/">The D Programming Language</a>—plus light refreshments.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Here are <a class="reference external" href="/talks/2010/nwcpp-2010-09.pdf">Walter’s slides</a>.</p>
</div>
August 2010: No Meeting2010-08-01T00:00:00-07:002010-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2010-08-01:/august-2010.htmlJuly 2010: No Meeting2010-07-01T00:00:00-07:002010-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2010-07-01:/july-2010.htmlJune 16th, 2010 — Massive Multithreading on the GPU — Gavriel Plotke2010-06-01T00:00:00-07:002010-06-01T00:00:00-07:00George Reillytag:nwcpp.org,2010-06-01:/june-2010.html<div class="section" id="abstract">
<h2>Abstract</h2>
<p>GigaFlops or… TerraFlops?
The modern <span class="caps">GPU</span> is a massively parallel supercomputer
that has 2 orders of magnitude more processing power than a single <span class="caps">CPU</span> Core.
But the threading model is very different than the <span class="caps">CPU</span>.
Don’t get left behind on knowing about this different paradigm.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Gavriel Plotke …</p></div><div class="section" id="abstract">
<h2>Abstract</h2>
<p>GigaFlops or… TerraFlops?
The modern <span class="caps">GPU</span> is a massively parallel supercomputer
that has 2 orders of magnitude more processing power than a single <span class="caps">CPU</span> Core.
But the threading model is very different than the <span class="caps">CPU</span>.
Don’t get left behind on knowing about this different paradigm.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Gavriel Plotke, Microsoft Senior <span class="caps">SDET</span>.
I’ve been with Microsoft for 3 years on the DirectX High Level Shader Language compiler test team.
I’ve been a champion of the new Compute Shader features of DirectX11.
While I have some graphics background,
it was my assembler language and compiler writing background that got me the job.
Early in my career I worked on the internals of
a mainframe spreadsheet product as a competitor to VisiCalc and Lotus123.
It was a time when everyone in a big office would have a mainframe terminal and
no one had a <span class="caps">PC</span>.
It was a great product, but time moved on, and Excel on inexpensive PCs ate our lunch.
After that I spent many years doing business contract work
— different projects, different platforms, lots of database design.
Now I help support programming on today’s supercomputer, the modern graphics card.</p>
</div>
May 19th, 2010 — The Anatomy of Message Passing — Bartosz Milewski2010-05-01T00:00:00-07:002010-05-01T00:00:00-07:00George Reillytag:nwcpp.org,2010-05-01:/may-2010.html<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The message passing paradigm makes multithreaded programming safer.
In this talk I’ll be trying to get to the bottom of message passing—
finding low level primitives from which a variety of message queues or
mailboxes may be built.
I’ll make a few digressions into Haskell’s MVars …</p></div><div class="section" id="abstract">
<h2>Abstract</h2>
<p>The message passing paradigm makes multithreaded programming safer.
In this talk I’ll be trying to get to the bottom of message passing—
finding low level primitives from which a variety of message queues or
mailboxes may be built.
I’ll make a few digressions into Haskell’s MVars and OCaml’s channels,
but mainly I’ll talk about C++.
I’ll show you how to separate synchronization from message storage
for a composable and type-safe system.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>I’m one part physicist, one part software engineer, and one part computer scientist.
I have a Ph.D. in Theoretical Physics;
I worked for Microsoft and for my own company, Reliable Software;
and I frequent graduate seminars in programming languages at the University of Washington.
I also keep a blog at
<a class="reference external" href="http://BartoszMilewski.wordpress.com">http://BartoszMilewski.wordpress.com</a>,
mostly about concurrent programming.</p>
</div>
April 21st, 2010 — New C++0x Features in Visual Studio 2010 — Mark Roberts2010-04-01T00:00:00-07:002010-04-01T00:00:00-07:00George Reillytag:nwcpp.org,2010-04-01:/april-2010.html<p>On Wednesday, April 21st, 2010 at 7pm, Mark Roberts from Microsoft will
talk about new C++0x features implemented in Visual Studio 2010.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Why wait for the C++ committee to finish the specification when you can
enjoy much of the power of C++0x today!
C++0x, the next …</p></div><p>On Wednesday, April 21st, 2010 at 7pm, Mark Roberts from Microsoft will
talk about new C++0x features implemented in Visual Studio 2010.</p>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Why wait for the C++ committee to finish the specification when you can
enjoy much of the power of C++0x today!
C++0x, the next C++ standard, is almost upon us
and it contains the most important updates to the language since the mid-90s.
It even accepts the existence of multiple threads for the first time in the language’s history.
Needless to say, these new features bring more expressiveness and power to the native C++ developer.
Visual Studio 2010 has added support for some of these key features
in order to enable these modern programming techniques.
This talk will clarify what features are in Visual C++ 2010 and what is yet to come.
It will illustrate how new constructs such as lambda expressions
enable better use of existing libraries
and how your code can be simpler, safer and faster all at the same time.
If you are itching to show off how C++ is one of the coolest languages on the planet,
this talk is for you!</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Mark Roberts is a program manager on the Microsoft Visual C++ compiler team.
He has worked on various aspects of the C++ development experience
over the past 3 years, including the debugger and <span class="caps">IDE</span>.
He is currently focused on implementing new language features in the C++ compiler
while enhancing the accuracy and performance of intellisense.</p>
</div>
March 17th, 2010 — Short Talks on Concurrency2010-03-01T00:00:00-08:002010-03-01T00:00:00-08:00George Reillytag:nwcpp.org,2010-03-01:/march-2010.html<div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p>Wednesday, March 17th, 2010 at
<a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft%20Building%2040,%20WA&encType=1">Building 40/1450</a>
(Steptoe), One Microsoft Way, Redmond, <span class="caps">WA</span> 98052, at 7pm.</p>
<p>Three short talks on Concurrency from
Bartosz Milewski, George Reilly, and Max Wilson.</p>
<div class="section" id="tasks-vs-sparks-comparing-ms-task-parallel-library-with-multicore-haskell-bartosz-milewski">
<h3>Tasks vs. Sparks, comparing <span class="caps">MS</span> Task Parallel Library with Multicore Haskell — Bartosz Milewski</h3>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft
<a class="reference external" href="http://msdn.microsoft.com/en-us/magazine/cc163340.aspx"><span class="caps">TPS</span></a> is …</p></div><div class="section" id="time-and-location">
<h2>Time and Location</h2>
<p>Wednesday, March 17th, 2010 at
<a class="reference external" href="http://www.bing.com/maps/?v=2&where1=Microsoft%20Building%2040,%20WA&encType=1">Building 40/1450</a>
(Steptoe), One Microsoft Way, Redmond, <span class="caps">WA</span> 98052, at 7pm.</p>
<p>Three short talks on Concurrency from
Bartosz Milewski, George Reilly, and Max Wilson.</p>
<div class="section" id="tasks-vs-sparks-comparing-ms-task-parallel-library-with-multicore-haskell-bartosz-milewski">
<h3>Tasks vs. Sparks, comparing <span class="caps">MS</span> Task Parallel Library with Multicore Haskell — Bartosz Milewski</h3>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft
<a class="reference external" href="http://msdn.microsoft.com/en-us/magazine/cc163340.aspx"><span class="caps">TPS</span></a> is a
.<span class="caps">NET</span> library that allows the programmer to parallelize fragments of
code. Haskell support for parallelization goes deeper into the runtime.
Of course these are apples and oranges;
Haskell is a functional language, <span class="caps">TPS</span> is mostly used from C#.
But the implementation details are similar (both projects come from Microsoft Research).</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://bartoszmilewski.wordpress.com/">Bartosz Milewski</a> is the
president of the <span class="caps">NWCPP</span> and has spoken many times.</p>
<div class="section" id="read-mostly-data-structures-george-v-reilly">
<h3>Read-Mostly Data Structures — George V. Reilly</h3>
</div>
</div>
<div class="section" id="abstract-1">
<h2>Abstract</h2>
<p>When shared data is read frequently, but seldom modified,
the lock can become a bottleneck.
Callers are serialized on the lock and the memory underlying the lock
sloshes between different processor caches.
Since the data is rarely modified,
it seems like we should be able to read it without taking a lock at all.
This talk presents a safe, lock-free way to access shared data.</p>
</div>
<div class="section" id="bio-1">
<h2>Bio</h2>
<p><a class="reference external" href="http://www.georgevreilly.com/">George Reilly</a> has developed
software since the 1980s, working in television, graphics, operating
systems, editors, advertising, and Web 2.0.
He became fascinated with concurrency during the seven years
he spent on the Internet Information Services development team at Microsoft,
where he concentrated on performance.
He now works for <a class="reference external" href="http://www.cozi.com/">Cozi</a>,
a small company in Seattle’s Pioneer Square,
which just won the <span class="caps">WTIA</span>’s Consumer Product of the Year award
for its software that simplifies family life.</p>
<div class="section" id="futures-in-c-max-wilson">
<h3>Futures in C++ — Max Wilson</h3>
</div>
</div>
<div class="section" id="abstract-2">
<h2>Abstract</h2>
<p>the new C++0x standard requires support for
<a class="reference external" href="http://bartoszmilewski.wordpress.com/2009/03/03/broken-promises-c0x-futures/">“futures.”</a>
In general, “futures” are a programming language abstraction for data
that will be produced asynchronously by other threads. We will discuss
the conceptual benefits to programming with futures vs. other
synchronization mechanisms, and show which techniques can be used in C++
and how they make concurrent APIs easier to consume.</p>
</div>
<div class="section" id="bio-2">
<h2>Bio</h2>
<p>Max Wilson is a bit of a language geek, and is a developer on Microsoft’s
<a class="reference external" href="http://msdn.microsoft.com/en-us/netframework/aa663324.aspx"><span class="caps">WCF</span></a> team.
Other than that he is a totally normal guy.</p>
</div>
February 2010: No Meeting2010-02-01T00:00:00-08:002010-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2010-02-01:/february-2010.htmlJanuary 2010: No Meeting2010-01-01T00:00:00-08:002010-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2010-01-01:/january-2010.html20092009-12-31T00:00:00-08:002009-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2009-12-31:/2009-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2009.html">January 21st, 2009 — Metaprogramming in D — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2009.html">February 18th, 2009 — <span class="caps">CCR</span>: Concurrency and Coordination Runtime — Andreas Ulbrich</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2009.html">March 18th, 2009 — How Compilers Work — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2009.html">April 15th, 2009 — Axum: The Language Of Agents — Artur Laksberg</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2009.html">May 20th, 2009 — Concurrency Runtime and Parallel Pattern Library — Dana Groff, Don McCrady, and …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2009.html">January 21st, 2009 — Metaprogramming in D — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2009.html">February 18th, 2009 — <span class="caps">CCR</span>: Concurrency and Coordination Runtime — Andreas Ulbrich</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2009.html">March 18th, 2009 — How Compilers Work — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2009.html">April 15th, 2009 — Axum: The Language Of Agents — Artur Laksberg</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2009.html">May 20th, 2009 — Concurrency Runtime and Parallel Pattern Library — Dana Groff, Don McCrady, and Rick Molloy</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2009.html">June 17th, 2009 — Concurrent Programming in the D Programming Language — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2009.html">July 2009: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2009.html">August 2009: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2009.html">September 16th, 2009 — Ownership System Against Data Races — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2009.html">October 21st, 2009 — Haskell and C++ Template Metaprogramming — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2009.html">November 18th, 2009 — Metaprogramming in D : Some Real-world Examples — Bill Baxter</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2009.html">December 2009: No Meeting</a></p>
December 2009: No Meeting2009-12-01T00:00:00-08:002009-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2009-12-01:/december-2009.htmlNovember 18th, 2009 — Metaprogramming in D : Some Real-world Examples — Bill Baxter2009-11-01T00:00:00-07:002009-11-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-11-01:/november-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In the D Programming Language
it is possible for even mere mortals to write code that executes at compile-time.
And the resulting code is generally even human readable!
In this talk I’ll show some of the metaprogramming …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In the D Programming Language
it is possible for even mere mortals to write code that executes at compile-time.
And the resulting code is generally even human readable!
In this talk I’ll show some of the metaprogramming techniques available in D today,
primarily by examining various tricks I’ve found useful in my own code —
in vector and matrix classes, in my port of the OpenMesh C++ library to D, and so on.
I’ll make some attempt to relate these back to C++ as well,
though my threshold for pain is not very high.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bill Baxter is a researcher in the eXtreme Computing Group of Microsoft Research,
currently working on <span class="caps">GPU</span> applications.
Before moving to Washington earlier this year,
Bill was a computer graphics researcher and frequent sushi consumer at <span class="caps">OLM</span> Digital in Tokyo,
the company best known for its Pokemon animations.
Bill has been using C++ for about 15 years, and D for the last three.
Bill has a Ph.D. in computer science from the University of North Carolina at Chapel Hill.
Sometimes he can be found strumming a guitar
to temporarily escape the workaday worries of the world.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2009/NWCPP-D-meta-baxter-11-18-2009.pptx">Slides</a></p>
</div>
October 21st, 2009 — Haskell and C++ Template Metaprogramming — Bartosz Milewski2009-10-01T00:00:00-07:002009-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-10-01:/october-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>It’s a well known fact in C++ metaprogramming circles
that it’s all based on functional programming.
What else is based on functional programming?
Haskell!
I will go through functional features of Haskell, one by one,
and …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>It’s a well known fact in C++ metaprogramming circles
that it’s all based on functional programming.
What else is based on functional programming?
Haskell!
I will go through functional features of Haskell, one by one,
and show you how they are implemented using C++ templates.
Functions, recursion, pattern matching, higher-order functions,
list processing, list comprehension and more…
No previous contact with Haskell is required,
although some familiarity with C++ templates will be assumed.
I’ll also talk about C++0x variadic templates and template parameter packs.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski has a Ph.D. in Theoretical Physics.
He published several papers on Quantum Gravity and String Theory
before he switched to programming and Computer Science.
He was project lead for the Microsoft search engine before the Internet explosion.
He published a book, <em>C++ In Action</em>.
Bartosz keeps up with the latest developments in <span class="caps">CS</span>
by attending graduate courses and seminars at the <span class="caps">UW</span>.
He actively works on the design of the D language.
He regularly blogs about programming languages and concurrency at
<a class="reference external" href="http://BartoszMilewski.wordpress.com">http://BartoszMilewski.wordpress.com</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2009/Haskell_and_C___Template.pdf">Slides</a> |
<a class="reference external" href="http://www.vimeo.com/7211030">Video</a></p>
</div>
September 16th, 2009 — Ownership System Against Data Races — Bartosz Milewski2009-09-01T00:00:00-07:002009-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-09-01:/september-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>After reading a bunch of papers about type systems
that prevent data races in multithreaded programs,
I asked myself the question:
Short of a type system, can a clever methodology be used to prevent data races?
It turns …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>After reading a bunch of papers about type systems
that prevent data races in multithreaded programs,
I asked myself the question:
Short of a type system, can a clever methodology be used to prevent data races?
It turns out that clear understanding of what data is shared
and which operations are inherently unsafe
goes a long way towards eliminating sources of data races.
I’ll talk about monitors, ownership, alias control,
unique objects and lock-free programming,
all in the service of race-free concurrency.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski has a Ph.D. in Theoretical Physics.
He published several papers on Quantum Gravity and String Theory
before he switched to programming and Computer Science.
He was project lead for the Microsoft search engine before the Internet explosion.
He published a book, <em>C++ In Action</em>.
Bartosz keeps up with the latest developments in <span class="caps">CS</span>
by attending graduate courses and seminars at the <span class="caps">UW</span>.
He actively works on the design of the D language.
He regularly blogs about concurrency at
<a class="reference external" href="http://BartoszMilewski.wordpress.com">http://BartoszMilewski.wordpress.com</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2009/Ownership_Systems_against_Data_Races.pdf">Slides</a> |
<a class="reference external" href="http://www.vimeo.com/6689999">Video</a></p>
</div>
August 2009: No Meeting2009-08-01T00:00:00-07:002009-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-08-01:/august-2009.htmlJuly 2009: No Meeting2009-07-01T00:00:00-07:002009-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-07-01:/july-2009.htmlJune 17th, 2009 — Concurrent Programming in the D Programming Language — Walter Bright2009-06-01T00:00:00-07:002009-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-06-01:/june-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many-core concurrent programming offers exciting and compelling advantages.
The single-core, single-thread programming model
is assumed by imperative programming languages.
This model offers sequential consistency as its fundamental characteristic.
Because many-core systems use layered cache memory systems,
sequential consistency …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Many-core concurrent programming offers exciting and compelling advantages.
The single-core, single-thread programming model
is assumed by imperative programming languages.
This model offers sequential consistency as its fundamental characteristic.
Because many-core systems use layered cache memory systems,
sequential consistency is not guaranteed among threads.
Because imperative programming languages
allow implicit sharing of data between threads,
many misguided idioms and optimizations are possible
that erroneously assume sequential consistency.
One example of this is the double-checked locking optimization.
The pernicious nature of these sorts of bugs is
they defy programmers’ natural intuition about how programs behave,
they are not statically detectable,
and there is no way to reliably test a program to rule out the existence of such bugs.
A program may appear to work, but have problems appear years later,
fail when ported to a different platform,
and such problems may be extremely hard to reproduce and track down.
In essence, the correctness of the program
relies entirely on the expertise and care of the programmer.
This is not an acceptable situation for developers of programs that require high reliability.</p>
<p>The D programming language is an imperative programming language
with an innovative type system that prevents implicit sharing
and also fosters a complete, integrated pure functional subset.
It is possible to statically verify that D programs do not have sequential consistency bugs.
The double-checked locking optimization bug is not possible.
Type support for shared data and immutable data, as well as pure functions,
means that mutating data interactions between threads
can occur only under carefully controlled conditions.
This dramatically reduces the problem space for concurrency bugs
from the whole of the source code to a small subset of it,
making it a much more tractable problem.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright graduated from Caltech in 1979 with a degree in mechanical engineering.
He worked for Boeing for 3 years on the development of the 757 stabilizer trim system.
He then switched to writing software, in particular compilers,
and has been writing them ever since.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2009/accu.pdf">slides</a> from the presentation.</p>
</div>
May 20th, 2009 — Concurrency Runtime and Parallel Pattern Library — Dana Groff, Don McCrady, and Rick Molloy2009-05-01T00:00:00-07:002009-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-05-01:/may-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="c-building-scalable-applications-in-visual-studio-2010-with-the-concurrency-runtime-and-parallel-pattern-library">
<h2>C++: Building scalable applications in Visual Studio 2010 with the Concurrency Runtime and Parallel Pattern Library</h2>
<p>In this talk, we’ll do a deep dive of the Concurrency Runtime
and the Parallel Libraries built on top of them,
and …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="c-building-scalable-applications-in-visual-studio-2010-with-the-concurrency-runtime-and-parallel-pattern-library">
<h2>C++: Building scalable applications in Visual Studio 2010 with the Concurrency Runtime and Parallel Pattern Library</h2>
<p>In this talk, we’ll do a deep dive of the Concurrency Runtime
and the Parallel Libraries built on top of them,
and talk about what’s new since the Visual Studio 2010 <span class="caps">CTP</span>.
We’ll provide a hands on look at how to use the Parallel Pattern Library
and the Asynchronous Agents Library together
to express parallelism and maintain responsiveness in applications.
We’ll discuss how to use the Concurrency Runtime
to manage multiple scheduler instances within an application,
how to extend the Concurrency Runtime itself for additional programming models,
and how to fulfill quality of service requirements with the Resource Manager.
Finally we’ll talk about how the Concurrency Runtime
takes advantage of the new Windows 7 functionality,
User Mode Scheduled Threads and support for > 64 processors,
to enable additional scalability on the Windows Platform.</p>
<p>The presentation will be given by members of the Concurrency Runtime team:
Dana Groff, Don McCrady and Rick Molloy.</p>
</div>
April 15th, 2009 — Axum: The Language Of Agents — Artur Laksberg2009-04-01T00:00:00-07:002009-04-01T00:00:00-07:00nwcpptag:nwcpp.org,2009-04-01:/april-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Axum is an incubation project in Microsoft’s Parallel Computing Team.
A .Net programming language based on asynchronous agents, isolation, and message-passing,
Axum allows developers to partition their applications
into isolated components that communicate with each other via …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Axum is an incubation project in Microsoft’s Parallel Computing Team.
A .Net programming language based on asynchronous agents, isolation, and message-passing,
Axum allows developers to partition their applications
into isolated components that communicate with each other via message passing
and access shared state in a disciplined way.</p>
<p>Axum has not yet been released by Microsoft but it is nearing its first public beta.
Please check out Axum team blog at
<a class="reference external" href="http://blogs.msdn.com/maestroteam">http://blogs.msdn.com/maestroteam</a>.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Artur Laksberg is a software design engineer in the Parallel Computing Team at Microsoft.
During his career, Artur was involved in various projects
including Visual C++ compiler and <span class="caps">SQL</span> Server.
Over the last year, Artur has been a member of a small team in the Developer Division
incubating new technologies for parallel programming.
Native of Estonia, Artur lives in Redmond with his wife and son.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<ul class="simple">
<li>Download the <a class="reference external" href="/talks/2009/Axum_Presentation.pptx">slides</a>
and <a class="reference external" href="/talks/2009/Axum_Presentation_code.zip">source code</a>
from the presentation.</li>
<li>Watch the <a class="reference external" href="http://www.vimeo.com/4438927">video</a> for a video of the presentation.</li>
<li><a class="reference external" href="http://blogs.msdn.com/maestroteam/archive/2009/05/07/the-first-axum-bits-are-now-available.aspx">Axum is now publicly available!</a></li>
</ul>
</div>
March 18th, 2009 — How Compilers Work — Walter Bright2009-03-01T00:00:00-08:002009-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2009-03-01:/march-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Compilers are a fundamental tool for programmers.
Knowing how they work enables a much more effective use of them.
This presentation covers how they work—the various passes like lexing, parsing semantic analysis,
optimization, and code generation—and …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Compilers are a fundamental tool for programmers.
Knowing how they work enables a much more effective use of them.
This presentation covers how they work—the various passes like lexing, parsing semantic analysis,
optimization, and code generation—and how they fit together to transform source code into executable code.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright graduated from Caltech in 1979 with a degree in mechanical engineering.
He worked for Boeing for 3 years on the development of the 757 stabilizer trim system.
He then switched to writing software, in particular compilers,
and has been writing them ever since.
He’s written compilers for Pascal, <span class="caps">ABEL</span>, C, C++, Javascript, Java,
and now the D programming language.</p>
</div>
February 18th, 2009 — CCR: Concurrency and Coordination Runtime — Andreas Ulbrich2009-02-01T00:00:00-08:002009-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2009-02-01:/february-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Concurrency and Coordination Runtime (<span class="caps">CCR</span>)
provides developers an easy way to create and coordinate
loosely-coupled, data-driven applications.
It is one of the core building blocks of Microsoft Robotics Developer Studio
but has applications far beyond robotics.
<span class="caps">CCR …</span></p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Concurrency and Coordination Runtime (<span class="caps">CCR</span>)
provides developers an easy way to create and coordinate
loosely-coupled, data-driven applications.
It is one of the core building blocks of Microsoft Robotics Developer Studio
but has applications far beyond robotics.
<span class="caps">CCR</span> provides a message-passing architecture with powerful orchestration primitives
enabling the coordination of data and work.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andreas is a Senior Engineer in the Microsoft Robotics Group,
where he works on <span class="caps">CCR</span>, <span class="caps">DSS</span>, and the Visual Programming Language.
Prior to joining Microsoft,
he worked on telecommunication and interactive television products
and was a Research Assistant at Technische Universtitaet Berlin in Germany.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2009/NWCPP-CCR.pptx">slides</a>
and <a class="reference external" href="/talks/2009/NWCPPDemos.zip">source code</a>
from the presentation.</p>
</div>
January 21st, 2009 — Metaprogramming in D — Walter Bright2009-01-01T00:00:00-08:002009-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2009-01-01:/january-2009.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Metaprograms are programs that output other programs.
They can greatly increase the expressive power of a language.
Familiar metaprogramming languages are the C text preprocessor and C++ templates.
Walter will show how some simple language features
like string …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Metaprograms are programs that output other programs.
They can greatly increase the expressive power of a language.
Familiar metaprogramming languages are the C text preprocessor and C++ templates.
Walter will show how some simple language features
like string mixins and compile time function execution
can lead to powerful metaprogramming facilities,
with examples in the D programming language.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright graduated from Caltech in 1979 with a degree in mechanical engineering.
He worked for Boeing for 3 years on the development of the 757 stabilizer trim system.
He then switched to writing software, in particular compilers,
and has been writing them ever since.
He’s written compilers for Pascal, <span class="caps">ABEL</span>, C, C++, Javascript, Java,
and now the D programming language.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Watch the <a class="reference external" href="http://www.vimeo.com/4333802">video</a> of the presentation.</p>
</div>
20082008-12-31T00:00:00-08:002008-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2008-12-31:/2008-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2008.html">January 16th, 2008 — Design Patterns in an Agile Environment — Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2008.html">February 20th, 2008 — Memory Allocation: Either Love It or Hate It. (Or Just Think It’s <span class="caps">OK</span>.) — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2008.html">March 19th, 2008 — shared_ptr, Or: How I Learned To Stop Worrying And Love Resource Management — Stephan T. Lavavej</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2008.html">April 16th …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2008.html">January 16th, 2008 — Design Patterns in an Agile Environment — Alan Shalloway</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2008.html">February 20th, 2008 — Memory Allocation: Either Love It or Hate It. (Or Just Think It’s <span class="caps">OK</span>.) — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2008.html">March 19th, 2008 — shared_ptr, Or: How I Learned To Stop Worrying And Love Resource Management — Stephan T. Lavavej</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2008.html">April 16th, 2008 — Programming Declaratively in C++ Using the Logic Paradigm — Roshan Naik</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2008.html">May 20th, 2008 — Enforcing Code Feature Requirements in C++ — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2008.html">June 18th, 2008 — The C++ Memory Model — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2008.html">July 16th, 2008 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2008.html">August 20th, 2008 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2008.html">September 17th, 2008 — Functional Programming with F# — Chris Smith</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2008.html">October 15th, 2008 — Concepts in C++0X — Gary Powell</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2008.html">November 19th, 2008 — Things You Never Wanted to Know about Memory Fences — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2008.html">December 2008: No Meeting</a></p>
December 2008: No Meeting2008-12-01T00:00:00-08:002008-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2008-12-01:/december-2008.htmlNovember 19th, 2008 — Things You Never Wanted to Know about Memory Fences — Bartosz Milewski2008-11-01T00:00:00-07:002008-11-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-11-01:/november-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="things-you-never-wanted-to-know-about-memory-fences-but-were-afraid-would-be-explained-to-you-anyway">
<h2>Things You Never Wanted to Know about Memory Fences (But were afraid would be explained to you anyway)</h2>
<p>Why study fences on an x86, other than to satisfy one’s curiosity?
One reason is that, even when you program …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="things-you-never-wanted-to-know-about-memory-fences-but-were-afraid-would-be-explained-to-you-anyway">
<h2>Things You Never Wanted to Know about Memory Fences (But were afraid would be explained to you anyway)</h2>
<p>Why study fences on an x86, other than to satisfy one’s curiosity?
One reason is that, even when you program in a higher-level language (C++ included),
you want to know a bit of assembly to understand some of the tradeoffs.
The other is to fight the temptation to do low-level concurrency tricks.
If you don’t appreciate the complexities of even the simplest relaxed memory model,
that of the x86,
you may be tempted to join the dark side—to feel the power of lock-free programming.</p>
<p>I’ll analyze a simple algorithm, the Peterson lock,
which, unlike the double-checked locking pattern,
will not work on an x86 multicore without actual fences.
I’ll show how Java and C++0x deal with this problem.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski has a Ph.D. in Theoretical Physics.
He published several papers on Quantum Gravity and String Theory
before he switched to programming and Computer Science.
He was project lead for the Microsoft search engine before the Internet explosion.
He published a book, <em>C++ In Action</em>.
Bartosz keeps up with the latest developments in <span class="caps">CS</span>
by attending graduate courses and seminars at the <span class="caps">UW</span>.
He actively works on the design of the D language.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/Memory_Fences.pdf">slides</a> of the presentation.</p>
</div>
October 15th, 2008 — Concepts in C++0X — Gary Powell2008-10-01T00:00:00-07:002008-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-10-01:/october-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>An introduction to the Standard Library and Concepts in C++0X.
A general overview, and a couple of in-depth analyses of
how to understand and use this new feature of the language.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Programming since ‘74, using C …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>An introduction to the Standard Library and Concepts in C++0X.
A general overview, and a couple of in-depth analyses of
how to understand and use this new feature of the language.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Programming since ‘74, using C++ since ‘87.
Gary has been one of the early abusers of the C++ language and compiler
to twist it to make functional programing a reality.
A technical consultant and volunteer to the C++ standards committee since 2001
where he has worked with many others on getting
“bind”, “variadac templates”, “lambda”, “decl_type”
and other useful stuff into the C++0X standard.
A Google search of <tt class="docutils literal">"Gary Powell" C++</tt> will yield a large number of hits
only a few of which are not him.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/concepts-intro.ppt">slides</a> from the presentation.</p>
</div>
September 17th, 2008 — Functional Programming with F# — Chris Smith2008-09-01T00:00:00-07:002008-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-09-01:/september-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With developers reaching the limits for what Object-Oriented programming can do,
they are looking for a new programming paradigm to lead to
cleaner, more elegant solutions.
Functional Programming has been around since the 1930s
but has never been …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With developers reaching the limits for what Object-Oriented programming can do,
they are looking for a new programming paradigm to lead to
cleaner, more elegant solutions.
Functional Programming has been around since the 1930s
but has never been able to go mainstream… until now.
This talk will cover Functional Programming
and how it improves on traditional Imperative or Object-Oriented paradigms
by introducing the F# programming language,
Microsoft’s latest addition to the .<span class="caps">NET</span> pantheon.</p>
<p>As for concurrency,
F# can not only build off the .<span class="caps">NET</span> threading libraries (which are <span class="caps">OK</span>)
but also introduces a concept called
<a class="reference external" href="http://www.strangelights.com/blog/archive/2007/10/15/1599.aspx">Asynchronous Workflows</a>,
which makes writing async code trivial.
I’ll be sure to cover that in my talk.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Chris Smith is a tester at Microsoft on the F# team,
working hard to bring functional programming to the .<span class="caps">NET</span> community.
Before joining with F#, Chris worked on various parts of Visual Studio
from <span class="caps">WCF</span> support to the Settings and Resource designers.
Chris lives in the Seattle area and enjoys skiing, indoor soccer,
and blogging about F# at
<a class="reference external" href="http://blogs.msdn.com/chrsmith">http://blogs.msdn.com/chrsmith</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/Functional_Programming_with_F.pdf">slides</a>
from the presentation.</p>
</div>
August 20th, 2008 — Roundtable Meeting — Open Discussion2008-08-01T00:00:00-07:002008-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-08-01:/august-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.terrabite.org">Terra Bite Lounge</a></div>
<div class="line">219 Kirkland Ave</div>
<div class="line">Kirkland, <span class="caps">WA</span></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.</p>
</div>
July 16th, 2008 — Roundtable Meeting — Open Discussion2008-07-01T00:00:00-07:002008-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-07-01:/july-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.terrabite.org">Terra Bite Lounge</a></div>
<div class="line">219 Kirkland Ave</div>
<div class="line">Kirkland, <span class="caps">WA</span></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.</p>
</div>
June 18th, 2008 — The C++ Memory Model — Bartosz Milewski2008-06-01T00:00:00-07:002008-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-06-01:/june-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>What is a memory model and why does C++ need it so badly?
I’ll try to explain both the practical and the theoretical side of things.
We’ll look into a few simple multithreaded idioms,
sketch the …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>What is a memory model and why does C++ need it so badly?
I’ll try to explain both the practical and the theoretical side of things.
We’ll look into a few simple multithreaded idioms,
sketch the Java memory model,
and show the differences between Java and C++.
For the theoretically minded, I’ll do my best to explain sequential consistency
and the “happens before” relationship necessary to describe data races.
We’ll look into the C++ atomic library.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski has a Ph.D. in Theoretical Physics.
He published several papers on Quantum Gravity and String Theory
before he switched to programming and Computer Science.
He was project lead for the Microsoft search engine before the Internet explosion.
He published a book, <em>C++ In Action</em>.
Bartosz keeps up with the latest developments in <span class="caps">CS</span>
by attending graduate courses and seminars at the <span class="caps">UW</span>.
He actively works on the design of the D language.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/C___Memory_Model.pdf">slides</a>
of the presentation.</p>
<p>Watch the <a class="reference external" href="http://video.google.com/videoplay?docid=1457624331939812949">video</a>
of the presentation.</p>
</div>
May 20th, 2008 — Enforcing Code Feature Requirements in C++ — Scott Meyers2008-05-01T00:00:00-07:002008-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-05-01:/may-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Functions often depend on particular behavioral characteristics (“features”)
of code they invoke.
For example, thread-safe code must invoke only thread-safe code
if it is to remain thread-safe,
and exception-safe code must invoke only exception-safe code.
This talk describes …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Functions often depend on particular behavioral characteristics (“features”)
of code they invoke.
For example, thread-safe code must invoke only thread-safe code
if it is to remain thread-safe,
and exception-safe code must invoke only exception-safe code.
This talk describes a technique that
enables the specification of arbitrary combinations of user-defined code features
on a per-function basis and
that detects violations of feature constraints during compilation.
The technique applies to member functions (both nonvirtual and virtual),
non-member functions, and function templates;
operators are excluded.</p>
<p>(This is an updated version of the talk Scott gave in April 2007.
Since then, he’s revised his approach to operate entirely during compilation
and to support overloading on feature sets.
He also no longer shows film clips during the presentation :-})</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Scott Meyers is one of the world’s foremost authorities on C++;
he provides training and consulting services to clients worldwide.
He wrote the best-selling <em>Effective C++</em> series
(<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-92488-9/">Effective C++</a>,
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-63371-X/">More Effective C++</a>,
and <a class="reference external" href="http://www.awl.com/cseng/titles/0-201-74962-9/">Effective <span class="caps">STL</span></a>);
wrote and designed the innovative
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-31015-5/">Effective C++ <span class="caps">CD</span></a>;
is consulting editor for Addison Wesley’s <em>Effective Software Development Series</em>;
was a founding member of the Advisory Board
for <a class="reference external" href="http://www.artima.com/cppsource">The C++ Source</a>.
He has a Ph.D in Computer Science from Brown University.
His web site is <a class="reference external" href="http://aristeia.com">aristeia.com</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/code_features.pdf">slides</a>
from the presentation.</p>
<p>Watch the <a class="reference external" href="http://video.google.com/videoplay?docid=1147577226734217890">video</a>
of the presentation.</p>
</div>
April 16th, 2008 — Programming Declaratively in C++ Using the Logic Paradigm — Roshan Naik2008-04-01T00:00:00-07:002008-04-01T00:00:00-07:00nwcpptag:nwcpp.org,2008-04-01:/april-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Logic paradigm (<span class="caps">LP</span>) is a powerful, Turing-complete programming paradigm
that has seen little representation in mainstream languages
as compared to the Object-Oriented, Imperative and Functional paradigms.
<span class="caps">LP</span> is an important approach in Computer Science towards
what is …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Logic paradigm (<span class="caps">LP</span>) is a powerful, Turing-complete programming paradigm
that has seen little representation in mainstream languages
as compared to the Object-Oriented, Imperative and Functional paradigms.
<span class="caps">LP</span> is an important approach in Computer Science towards
what is sometimes referred to as the Holy-Grail of programming,
“The user states the problem, the computer solves it”.
Origins of the theory underlying Logic dates back to about 300 <span class="caps">B.C.
</span>when Aristotle founded Formal Logic to bring rigor to logical inferencing.
The theory matured into Modern Logic more recently (early 1900s)
when Russell <span class="amp">&</span> Whitehead showed that all of Mathematics could be reduced to Logic.
This talk will provide an introduction to the basics of <span class="caps">LP</span> in C++,
followed by examples to develop a feel for thinking
in terms of this paradigm and understand how it blends with the other paradigms.
We finally broaden the scope to see how powerful multiparadigm solutions emerge
when programmers can freely mix and match paradigms.
All code will use standard C++ and
Castor, an open source library
(available from <a class="reference external" href="http://www.mpprogramming.com">www.mpprogramming.com</a>)
which brings the Logic paradigm to C++.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="mailto:roshan@mpprogramming.com">Roshan Naik</a>
is an R&D engineer at Hewlett-Packard.
He specializes in multiparadigm programming techniques.
Roshan is also author of <a class="reference external" href="http://www.mpprogramming.com">Castor</a>,
an open source library which brings the Logic Paradigm to C++.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/Roshan_Naik_Programming_Declaratively_In_C___using_the_Logic_Paradigm.pptx">slides</a>
from the presentation.</p>
</div>
March 19th, 2008 — shared_ptr, Or: How I Learned To Stop Worrying And Love Resource Management — Stephan T. Lavavej2008-03-01T00:00:00-08:002008-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2008-03-01:/march-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>shared_ptr is the most powerful addition to the Standard C++ Library
since the <span class="caps">STL</span> itself.
This presentation begins with an overview of shared_ptr’s design
and the philosophy behind it.
Next, important uses of shared_ptr are explained in …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>shared_ptr is the most powerful addition to the Standard C++ Library
since the <span class="caps">STL</span> itself.
This presentation begins with an overview of shared_ptr’s design
and the philosophy behind it.
Next, important uses of shared_ptr are explained in detail—shared_ptr isn’t just for sharing!
Of course, new technologies come with new pitfalls.
Fortunately, shared_ptr’s pitfalls, covered here, can be easily avoided.
This presentation ends with advanced topics:
thread safety, custom deleters, custom allocators, other C++0x features,
and a tour of shared_ptr’s internals as implemented by Dinkumware.
Whether you haven’t had a chance to use shared_ptr yet,
or you’ve done everything but implement it,
this presentation should be useful to you.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Stephan T. Lavavej, who frequently uses his auspicious initials,
joined the Visual C++ Libraries team in January 2007.
He mainly works on the Standard C++ Library,
doing things like fixing epic conformance bugs and nuking iterator bloat.
Recently, he’s worked with Dinkumware to integrate their <span class="caps">TR1</span> implementation
as part of the Visual C++ 2008 Feature Pack.</p>
<p>He originally joined Microsoft in July 2004,
after receiving the degree of Bachelor Of Science With Honor in Computer Science
from the California Institute Of Technology,
and worked on Outlook 2007 Search.
Among other things, he implemented hit highlighting, making stuff light up yellow.</p>
<p>His favorite data structure is the vector.
His second favorite data structure is the suffix tree,
which can be used to sort the suffixes of a string in linear time,
because that can be used to implement his favorite algorithm,
the Burrows-Wheeler Transform,
and also because it sounds totally impossible.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/nwcpp-2008.03.19.pdf">slides</a>
from the presentation.</p>
</div>
February 20th, 2008 — Memory Allocation: Either Love It or Hate It. (Or Just Think It’s OK.) — Andrei Alexandrescu2008-02-01T00:00:00-08:002008-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2008-02-01:/february-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Memory allocation is a problem so wicked,
many people think it’s either solved or unsolvable.
This talk goes through the gory details of memory allocation;
what the classic designs are;
how special handcrafted allocators may improve (or …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Memory allocation is a problem so wicked,
many people think it’s either solved or unsolvable.
This talk goes through the gory details of memory allocation;
what the classic designs are;
how special handcrafted allocators may improve (or degrade)
the bottom line performance of your application;
how to write a policy-based allocator with a modular design
that beats a monolithic handcrafted one;
and how the advent of manycores influences allocator designs.
Ninety leak-free minutes.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu has achieved the rare feat of becoming an authority
in both industry and research circles.
He almost single-handedly revolutionized and reinvented C++ programming
with his seminal book, <em>Modern C++ Design</em>.
Andrei’s other publications include the
award-winning <em>C++ Coding Standards</em> book (as a coauthor),
four peer-reviewed academic papers,
and dozens of articles in top trade journals,
either under the byline of his Generic<Programming> column,
or as a featured author.</p>
<p>After having worked in fields as varied as banking, databases, and Internet applications,
Andrei is focusing on graph-based statistical modeling
for natural language processing (<span class="caps">NLP</span>),
field rife with huge data sets,
computationally-intensive algorithms,
and massively parallel execution.
His vast expertise, presence, and humor
make Andrei a sought-after speaker at technical conferences.</p>
<p>Andrei holds a <span class="caps">BS</span> in Electrical Engineering from University “Politehnica” Bucharest
and an <span class="caps">MS</span> in Computer Science from University of Washington,
where he is also a graduating PhD in Summer 2008.
(<span class="caps">N.B.</span> He will soon be looking for a job.)
His web site is <a class="reference external" href="http://erdani.com/">http://erdani.com/</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2008/memory-allocation.screen.pdf">slides</a>
from the presentation.</p>
<p>Watch the <a class="reference external" href="http://video.google.com/videoplay?docid=8718136231005757634">video</a>
of the presentation.</p>
</div>
January 16th, 2008 — Design Patterns in an Agile Environment — Alan Shalloway2008-01-01T00:00:00-08:002008-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2008-01-01:/january-2008.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="design-patterns-in-an-agile-environment-the-object-pool-an-example-of-emergent-design">
<h2>Design Patterns in an Agile Environment – The Object Pool An Example of Emergent Design</h2>
<p>There runs a heated debate about how to build application architectures.
Many practitioners believe you must design up front,
others feel that doing so leads …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="design-patterns-in-an-agile-environment-the-object-pool-an-example-of-emergent-design">
<h2>Design Patterns in an Agile Environment – The Object Pool An Example of Emergent Design</h2>
<p>There runs a heated debate about how to build application architectures.
Many practitioners believe you must design up front,
others feel that doing so leads to over-design.
Unfortunately, much of this debate is based on practices, not principles.
Practices must change when one finds themselves in different contexts.
Principles do not.</p>
<p>This talk presents a background of several useful principles
which can help in building an application architecture dynamically.
Many modern design practices suggest that code should be developed
in a highly incremental way, with frequent opportunities for validation,
refactoring,
and that we should embrace change as an ally,
rather than seeking to avoid it through heavy analysis.
At the same time, the Design Patterns movement has opened up powerful new ways
of thinking about Objects and their relationships,
and how we can efficiently find our way
to the best designs in a given context.
Initially, these two points of view would seem to be at odds with one another.
However, layered architectures suggested by the proper use of patterns
leads to more flexible designs,
designs that tolerate change better than traditional <span class="caps">OO</span> would,
and patterns are a great enabler for an incremental approach.
Furthermore, we have found that refactoring existing code,
in the light of new and/or better-defined requirements,
often leads to patterns,
and that an understanding of this can make for a much more efficient development process overall.
This talk integrates these ideas
by presenting a project done by following the guidelines
of Agile development, refactoring and design patterns.</p>
<p>Agenda:</p>
<ul class="simple">
<li>What is Lean-Agile Software Development?</li>
<li>What is the Role of Architecture?</li>
<li>What are design patterns?</li>
<li>What is Refactoring?</li>
<li>Refactoring to the Open Closed</li>
<li>A case study in using the methods described</li>
</ul>
<p>Learn:</p>
<ul class="simple">
<li>A different view of Agile development</li>
<li>What Emergent Design is</li>
<li>What the Object-Pool Pattern is</li>
<li>Why following principles and practices is more important than following rote doctrine</li>
<li>Synthesize the seemingly disparate views of test-driven-development and design patterns</li>
</ul>
<p>This seminar is intended for those people who have some experience already
with design patterns and agile methods.
However, value should be great even without this background.</p>
<p>Seminar notes will be available at
<a class="reference external" href="http://www.netobjectives.com/free-seminars-notes/">http://www.netobjectives.com/free-seminars-notes/</a>
by January 10.
Registration on the Net Objectives site will be required to get them.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Alan Shalloway is the founder and <span class="caps">CEO</span> of Net Objectives.
With almost 40 years of experience,
Alan is an industry thought leader, trainer and coach
in the areas of Lean Software Development, The Lean-Agile Connection
and using Design Patterns in agile environments.
Alan has developed training and coaching methods for Lean-Agile
that have helped his clients achieve long-term, sustainable productivity gains
using the methods.
He is a popular speaker at prestigious conferences worldwide as well as a trainer/coach.
He is the primary author of
<em>Design Patterns Explained: A New Perspective on Object-Oriented Design</em>
and is currently writing <em>Lean Anti-Patterns and What to do About Them</em>.
He is a <span class="caps">SM</span>-C Trainer and has a Masters in Computer Science from <span class="caps">M.I.T.</span></p>
</div>
20072007-12-31T00:00:00-08:002007-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2007-12-31:/2007-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2007.html">January 17th, 2007 — Advanced D Programming Language Features — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2007.html">February 21st, 2007 — Text Processing with Boost — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2007.html">March 21st, 2007 — Software Transactional Memory: A different approach to concurrency — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2007.html">April 25th, 2007 — Red Code, Green Code: Generalizing const — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2007.html">May 23rd, 2007 — The Zero Debugger — Cristian …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2007.html">January 17th, 2007 — Advanced D Programming Language Features — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2007.html">February 21st, 2007 — Text Processing with Boost — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2007.html">March 21st, 2007 — Software Transactional Memory: A different approach to concurrency — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2007.html">April 25th, 2007 — Red Code, Green Code: Generalizing const — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2007.html">May 23rd, 2007 — The Zero Debugger — Cristian Vlasceanu</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2007.html">June 20th, 2007 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2007.html">July 18th, 2007 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2007.html">August 15th, 2007 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2007.html">September 19th, 2007 — Machine Architecture: Things Your Programming Language Never Told You — Herb Sutter</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2007.html">October 17th, 2007 — Function Hijacking Mitigation — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2007.html">November 14th, 2007 — Domain-Specific Languages with Boost — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2007.html">December 2007: No Meeting</a></p>
December 2007: No Meeting2007-12-01T00:00:00-08:002007-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2007-12-01:/december-2007.htmlNovember 14th, 2007 — Domain-Specific Languages with Boost — Eric Niebler2007-11-01T00:00:00-07:002007-11-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-11-01:/november-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Designing your own programming language is fun!
It can also increase the expressiveness of your code.
But did you know that you can host your little languages right in C++?
Libraries like Boost.Spirit and the Lambda Library …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Designing your own programming language is fun!
It can also increase the expressiveness of your code.
But did you know that you can host your little languages right in C++?
Libraries like Boost.Spirit and the Lambda Library
do just that with the help of templates and operator overloading.
Come learn how you can easily create your own mini language-in-a-library, too.
We’ll talk about Boost.Proto,
a new library that takes the pain out of working with expression templates.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Eric is an independent software consultant currently working
with Dave Abrahams and Boost Consulting.
He is a former employee of Microsoft Research and Visual C++,
and his writings about C++ have been published
in the <em>C/C++ User’s Journal</em> and <em><span class="caps">MSDN</span> Magazine</em>.
When he’s not writing C++ for money, Eric has been known to write C++ for fun.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/proto3.ppt">slides</a> from the presentation.</p>
</div>
October 17th, 2007 — Function Hijacking Mitigation — Walter Bright2007-10-01T00:00:00-07:002007-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-10-01:/october-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>As software becomes more complex, we become more reliant on module interfaces.
An application may import and combine modules from multiple sources,
including sources from outside the company.
The module developers must be able to maintain and improve …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>As software becomes more complex, we become more reliant on module interfaces.
An application may import and combine modules from multiple sources,
including sources from outside the company.
The module developers must be able to maintain and improve those modules
without inadvertently stepping on the behavior of modules
over which they cannot have knowledge of.
The application developer needs to be notified
if any module changes would break the application.
This talk covers function hijacking,
where adding innocent and reasonable declarations in a module
can wreak arbitrary havoc on an application program in C++ and Java.
We’ll then look at how modest language design changes
can largely eliminate the problem in the D programming language.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright’s first major program was the groundbreaking wargame Empire.
He then became interested in compilers and computer languages.
He’s written compilers for <span class="caps">ABEL</span>, Pascal, C, C++, Java, Javascript, and now D.
His extensive experience writing C++ compilers
and well over a decade being on the front lines of doing C++ customer support
is an ideal background for improving on the language.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/FunctionHijack.html">slides</a> from the presentation.</p>
</div>
September 19th, 2007 — Machine Architecture: Things Your Programming Language Never Told You — Herb Sutter2007-09-01T00:00:00-07:002007-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-09-01:/september-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>High-level languages insulate the programmer from the machine.
That’s a wonderful thing—except when it obscures the answers
to the fundamental questions of
“What does the program do?” and “How much does it cost?”</p>
<p>The C++/C …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>High-level languages insulate the programmer from the machine.
That’s a wonderful thing—except when it obscures the answers
to the fundamental questions of
“What does the program do?” and “How much does it cost?”</p>
<p>The C++/C#/Java programmer is less insulated than most,
and still we find that programmers are consistently surprised
at what simple code actually does and how expensive it can be—not because of any complexity of a language,
but because of being unaware of the complexity
of the machine on which the program actually runs.</p>
<p>This talk examines the “real meanings” and “true costs” of the code we write and run
especially on commodity and server systems,
by delving into the performance effects of bandwidth vs. latency limitations,
the ever-deepening memory hierarchy,
the changing costs arising from the hardware concurrency explosion,
memory model effects all the way from the compiler
to the <span class="caps">CPU</span> to the chipset to the cache, and more—and what you can do about them.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><a class="reference external" href="http://herbsutter.com/">Herb Sutter</a> is a software architect at Microsoft
and chair of the <span class="caps">ISO</span> C++ standards committee.
Among his books and papers on software development
is the widely-cited article “The Free Lunch Is Over”
where he coined the title phrase and “concurrency revolution”
as applied to describe the software sea change
now in progress to exploit increasingly parallel hardware</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/Machine_Architecture_-_NWCPP.pdf">slides</a>
from the presentation.</p>
<p>Watch the <a class="reference external" href="http://video.google.com/videoplay?docid=-4714369049736584770">video</a>
of the presentation.</p>
</div>
August 15th, 2007 — Roundtable Meeting — Open Discussion2007-08-01T00:00:00-07:002007-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-08-01:/august-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.terrabite.org">Terra Bite Lounge</a></div>
<div class="line">219 Kirkland Ave</div>
<div class="line">Kirkland, <span class="caps">WA</span></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
July 18th, 2007 — Roundtable Meeting — Open Discussion2007-07-01T00:00:00-07:002007-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-07-01:/july-2007.html<div class="section" id="location">
<h2>Location</h2>
<p><span class="caps">TBD</span></p>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
June 20th, 2007 — Roundtable Meeting — Open Discussion2007-06-01T00:00:00-07:002007-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-06-01:/june-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.terrabite.org">Terra Bite Lounge</a></div>
<div class="line">219 Kirkland Ave</div>
<div class="line">Kirkland, <span class="caps">WA</span></div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.</p>
</div>
May 23rd, 2007 — The Zero Debugger — Cristian Vlasceanu2007-05-01T00:00:00-07:002007-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-05-01:/may-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In this presentation, I will:</p>
<ol class="arabic simple">
<li>overview the debugging support provided at the <span class="caps">OS</span> level on Linux,
how limitations in the design impacts debugger architecture</li>
<li>share with the group my experience in implementing a C++ debugger on Linux</li>
<li>underline …</li></ol></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In this presentation, I will:</p>
<ol class="arabic simple">
<li>overview the debugging support provided at the <span class="caps">OS</span> level on Linux,
how limitations in the design impacts debugger architecture</li>
<li>share with the group my experience in implementing a C++ debugger on Linux</li>
<li>underline the power of adding a scripting language to a debugger,
and shine the light on the Boost.Python library</li>
<li>Extending debugger support to other languages, namely Walter Bright’s D.</li>
</ol>
<p>I found that debugger architecture lends itself well to the paradigms of C++.
I may give some examples;
however there is not enough time to outline the complete architecture
at the C++ source level of detail.</p>
<p>And last but not least…
<span class="caps">DISCLAIMER</span>: I am not interested in talking about
the political aspects of Linux / OpenSource / <span class="caps">GPL</span> in this setting.
I intend to keep the discussion rather technical.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>The Zero debugger was created by Cristian Vlasceanu.
He works on custom interpreters and language translators in his daytime job,
and hacks Zero at night.</p>
<p>Cristian is a lifelong friend of Andrei Alexandrescu
and has programmed in C++ for over a decade.
He suggested the name Loki for the C++ library described
in the ground breaking book <em>Modern C++ Design</em>.</p>
<p>After spending a couple of years in Atlanta,
Cristian has moved to Seattle and has lived in the Pacific Northwest since 2000.</p>
<p>Cristian has written a couple of technical articles
for the now defunct <em>C/C++ Users Journal</em>,
blogs infrequently, and is a veteran of Amazon.com and RealNetworks.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/anatomy_of_zero.pdf">slides</a> from the presentation.</p>
</div>
April 25th, 2007 — Red Code, Green Code: Generalizing const — Scott Meyers2007-04-01T00:00:00-07:002007-04-01T00:00:00-07:00nwcpptag:nwcpp.org,2007-04-01:/april-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ compilers allow non-const code to call const code,
but going the other way requires a cast.
In this talk, Scott describes an approach
he’s been pursuing to generalize this notion to arbitrary criteria.
For example, thread-safe …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ compilers allow non-const code to call const code,
but going the other way requires a cast.
In this talk, Scott describes an approach
he’s been pursuing to generalize this notion to arbitrary criteria.
For example, thread-safe code should only call other thread-safe code
(unless you explicitly permit it on a per-call basis).
Ditto for exception-safe code,
code not “contaminated” by some open source license,
or any other constraint you choose.
The approach is based on template metaprogramming (<span class="caps">TMP</span>),
and the implementation uses the Boost metaprogramming library (Boost.<span class="caps">MPL</span>),
so constraint violations are,
wherever possible, detected during compilation.</p>
<p>Topics likely to be mentioned during the talk include Hellen Keller,
namespaces, multiple inheritance, Barton and Nackman, enable_if,
traits, <span class="caps">TMP</span> debugging, <span class="caps">VC8</span> ICEs, <span class="caps">MPL</span> bugs, dancing bears, <span class="caps">NVI</span>,
metaprogrammer Hell, Captain Kirk, Acyclic Visitor, Scopeguard,
External Polymorphism, and prayer.
Possibly also Vista, Google, and Lenovo.</p>
<p>Scott will show proof-of-concept code that, so far as he can tell, actually works.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Scott Meyers is one of the world’s foremost authorities on C++;
he provides training and consulting services to clients worldwide.
He wrote the best-selling <em>Effective C++</em> series
(<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-92488-9/">Effective C++</a>,
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-63371-X/">More Effective C++</a>,
and <a class="reference external" href="http://www.awl.com/cseng/titles/0-201-74962-9/">Effective <span class="caps">STL</span></a>);
wrote and designed the innovative
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-31015-5/">Effective C++ <span class="caps">CD</span></a>;
is consulting editor for Addison Wesley’s <em>Effective Software Development Series</em>;
and serves on the Advisory Board for <a class="reference external" href="http://www.artima.com/cppsource">The C++ Source</a>.
He has a Ph.D in Computer Science from Brown University.
His web site is <a class="reference external" href="http://aristeia.com">aristeia.com</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/redcode_-_updated.pdf">slides</a> from the presentation.</p>
<p>Watch the <a class="reference external" href="http://video.google.com/videoplay?docid=-4728145737208991310&hl=en">video</a>
of the presentation.</p>
</div>
March 21st, 2007 — Software Transactional Memory: A different approach to concurrency — Bartosz Milewski2007-03-01T00:00:00-08:002007-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2007-03-01:/march-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 40</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Traditional approach to multi-threaded programming,
for which I have coined the nickname “deadlock-oriented programming”,
suffers from a major flaw—it’s not composable.
If you try to perform operations on multiple lockable objects,
you run into the risk …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 40</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Traditional approach to multi-threaded programming,
for which I have coined the nickname “deadlock-oriented programming”,
suffers from a major flaw—it’s not composable.
If you try to perform operations on multiple lockable objects,
you run into the risk of deadlocks, livelocks,
priority inversions, and other assorted plagues.</p>
<p>Software Transactional Memory, <span class="caps">STM</span>, promises to solve those problems
once and for all.
Under the covers it works like lock-free programming on steroids,
but to the programmer, it is a no-brainer.</p>
<p>I will discuss general ideas behind <span class="caps">STM</span> as well as some concrete implementations.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz has his roots in theory
(Ph.D. in theoretical particle physics)
and his branches in programming practice
(eight years at Microsoft and then his own little software firm).
His current activities, outside of his company,
include graduate study at the <span class="caps">UW</span>,
partaking in the design of D,
and (secretly) writing a book on Windows in D.
He’s also the author of <em>C++ in Action</em>, Addison-Wesley, 2001.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/Bartosz/index.html">slides</a> from the presentation.</p>
</div>
February 21st, 2007 — Text Processing with Boost — Eric Niebler2007-02-01T00:00:00-08:002007-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2007-02-01:/february-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The abysmal support in the C and C++ standard libraries
for string handling has driven many programmers
to other languages like Perl and Python.
Boost aims to reverse that trend.
Libraries such as <tt class="docutils literal">Boost.Lexical_cast</tt>, <tt class="docutils literal">Boost.String_algo</tt>,
<tt class="docutils literal">Boost …</tt></p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The abysmal support in the C and C++ standard libraries
for string handling has driven many programmers
to other languages like Perl and Python.
Boost aims to reverse that trend.
Libraries such as <tt class="docutils literal">Boost.Lexical_cast</tt>, <tt class="docutils literal">Boost.String_algo</tt>,
<tt class="docutils literal">Boost.Regex</tt>, <tt class="docutils literal">Boost.Xpressive</tt>, and <tt class="docutils literal">Boost.Spirit</tt>
are invaluable tools for slicing and dicing strings.
If your task is as simple as turning an integer into a string,
or as complicated as developing a parser generator for a new scripting language,
Boost has a library that can help.
In addition to covering all the afore mentioned libraries from a user’s perspective,
we’ll also look at how Boost can be used to get more out of the standard IOstreams,
and discover some hidden gems in Boost for dealing with Unicode.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Eric is an independent software consultant currently working
with Dave Abrahams and Boost Consulting.
He is a former employee of Microsoft Research and Visual C++,
and his writings about C++ have been published
in the <em>C/C++ User’s Journal</em> and <em><span class="caps">MSDN</span> Magazine</em>.
When he’s not writing C++ for money, Eric has been known to write C++ for fun.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/Text_Processing_With_Boost.ppt">slides</a> from the presentation.</p>
<p>Watch the <a class="reference external" href="http://video.google.com/videoplay?docid=3723782552647089226&hl=en">video</a>
of the presentation.</p>
</div>
January 17th, 2007 — Advanced D Programming Language Features — Walter Bright2007-01-01T00:00:00-08:002007-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2007-01-01:/january-2007.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk assumes you’re bored with the usual macguffins—expressions, statements, and core strings vs library strings.
We’ll skip right to the naughty bits—lambdas, mixins, tuples, scope guards, lazy arguments, and static if’s.
What …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk assumes you’re bored with the usual macguffins—expressions, statements, and core strings vs library strings.
We’ll skip right to the naughty bits—lambdas, mixins, tuples, scope guards, lazy arguments, and static if’s.
What are they, and what they are good for, will be explored.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright’s first major program was the groundbreaking wargame Empire.
He then became interested in compilers and computer languages.
He’s written compilers for <span class="caps">ABEL</span>, Pascal, C, C++, Java, Javascript, and now D.
His extensive experience writing C++ compilers
and well over a decade being on the front lines of doing C++ customer support
is an ideal background for improving on the language.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2007/AdvancedD.html">slides</a> from the presentation.</p>
<p>Watch the <a class="reference external" href="http://video.google.com/videoplay?docid=-7073020265668105471">video</a>
of the presentation.</p>
</div>
20062006-12-31T00:00:00-08:002006-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2006-12-31:/2006-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2006.html">January 18th, 2006 — Policy-Based Memory Allocation — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2006.html">February 15th, 2006 — The Phoenix Compiler and Tools Framework — Andy Ayers</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2006.html">March 15th, 2006 — Functional Programming in C++ using Boost.Lambda — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2006.html">April 19th, 2006 — C++ on Next-Gen Consoles: Effective Code for New Architectures — Pete Isensee</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2006.html">May 17th, 2006 — The Power …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2006.html">January 18th, 2006 — Policy-Based Memory Allocation — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2006.html">February 15th, 2006 — The Phoenix Compiler and Tools Framework — Andy Ayers</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2006.html">March 15th, 2006 — Functional Programming in C++ using Boost.Lambda — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2006.html">April 19th, 2006 — C++ on Next-Gen Consoles: Effective Code for New Architectures — Pete Isensee</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2006.html">May 17th, 2006 — The Power of None — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2006.html">June 21st, 2006 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2006.html">July 19th, 2006 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2006.html">August 16th, 2006 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2006.html">September 13th, 2006 — The Concur Project — Herb Sutter</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2006.html">October 18th, 2006 — The Cost of C++ Exception Handling on Windows — Kevin Frei</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2006.html">November 15th, 2006 — What makes a Good Programmer? Things they never told you — Adair Dingle</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2006.html">December 2006: No Meeting</a></p>
December 2006: No Meeting2006-12-01T00:00:00-08:002006-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2006-12-01:/december-2006.htmlNovember 15th, 2006 — What makes a Good Programmer? Things they never told you — Adair Dingle2006-11-01T00:00:00-08:002006-11-01T00:00:00-08:00nwcpptag:nwcpp.org,2006-11-01:/november-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 40</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Time constraints and demands for breadth constrain academic instruction.
Job experience fills in the gap between theory and practice.
Here we discuss some circumvented hurdles
(representation, resource management, failures)
as well as key characteristics of students who succeed …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 40</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Time constraints and demands for breadth constrain academic instruction.
Job experience fills in the gap between theory and practice.
Here we discuss some circumvented hurdles
(representation, resource management, failures)
as well as key characteristics of students who succeed as professionals.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Adair Dingle has over 15 years of teaching experience.
Currently an associate professor of Computer Science at Seattle University,
she annually supervises capstone projects
where seniors develop software products for industry sponsors.
Between undergraduate and graduate studies,
Adair worked in industry for 3 years as a software developer.
Recently, she co-authored (with software consultant Tom Hildebrandt)
<em>C++: Memory First</em>, a text for immediate-level programmers
exploring background processes critical to software design.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2006/NWCPP1106.ppt">slides</a> from the presentation.</p>
<p>Watch a <a class="reference external" href="http://video.google.com/videoplay?docid=-3746958180505089789&q=nwcpp">video</a>
of the presentation.</p>
</div>
October 18th, 2006 — The Cost of C++ Exception Handling on Windows — Kevin Frei2006-10-01T00:00:00-07:002006-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2006-10-01:/october-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 40</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There’s a long running emotional battle over C++ exception handling.
Rather than argue for or against either side,
I’ll be going into low-level detail of
how much it costs to use on Windows for both x86 …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 40</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There’s a long running emotional battle over C++ exception handling.
Rather than argue for or against either side,
I’ll be going into low-level detail of
how much it costs to use on Windows for both x86 and <span class="caps">AMD64</span>.
This should help people see through the emotion
and get a real handle on what it costs,
and provide them with facts to help make the decisions
of why, how, and when C++ exceptions should or should not be used.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>I’ve been at <span class="caps">MSFT</span> for 9 years,
working on the compiler back end/optimizer the entire time.
I’m currently responsible for the Orcas optimizer, linker, and other ‘tools’
while the rest of the team works on the “Phoenix” project.</p>
<p>Prior to my life at Microsoft, I graduated from the University of Utah with a <span class="caps">BS</span> in <span class="caps">CS</span>.
I have a wife <span class="amp">&</span> 3 kids, enjoy playing with my kids,
woodworking, mountain biking, writing goofy projects to learn new technologies,
and wasting time in front of a variety of video games.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2006/ehc.ppt">slides</a> from the presentation.</p>
<p>Watch a <a class="reference external" href="http://video.google.com/videoplay?docid=9169999597330548749&hl=en">video</a>
of the presentation.</p>
</div>
September 13th, 2006 — The Concur Project — Herb Sutter2006-09-01T00:00:00-07:002006-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2006-09-01:/september-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="the-concur-project-some-experimental-concurrency-abstractions-for-imperative-languages">
<h2>The Concur Project: Some Experimental Concurrency Abstractions for Imperative Languages</h2>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Herb Sutter is a software architect at Microsoft
and chair of the <span class="caps">ISO</span> C++ standards committee.
Among his books and papers on software development
is the widely-cited article …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">Building 41</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="the-concur-project-some-experimental-concurrency-abstractions-for-imperative-languages">
<h2>The Concur Project: Some Experimental Concurrency Abstractions for Imperative Languages</h2>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Herb Sutter is a software architect at Microsoft
and chair of the <span class="caps">ISO</span> C++ standards committee.
Among his books and papers on software development
is the widely-cited article “The Free Lunch Is Over”
where he coined the title phrase and “concurrency revolution”
as applied to describe the software sea change
now in progress to exploit increasingly parallel hardware.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p>Download the <a class="reference external" href="/talks/2006/The_Concur_Project_-_NWCPP.pdf">slides</a>
from the presentation.</p>
<p>Watch a <a class="reference external" href="http://video.google.com/videoplay?docid=7625918717318948700&q=herb+sutter">video</a>
of the presentation.</p>
</div>
August 16th, 2006 — Roundtable Meeting — Open Discussion2006-08-01T00:00:00-07:002006-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2006-08-01:/august-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.georgeanddragonpub.com/">The George <span class="amp">&</span> Dragon Pub</a></div>
<div class="line">206 North 36th St</div>
<div class="line">Seattle, <span class="caps">WA</span> 98103</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.georgeanddragonpub.com/">The George <span class="amp">&</span> Dragon Pub</a></div>
<div class="line">206 North 36th St</div>
<div class="line">Seattle, <span class="caps">WA</span> 98103</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
July 19th, 2006 — Roundtable Meeting — Open Discussion2006-07-01T00:00:00-07:002006-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2006-07-01:/july-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.georgeanddragonpub.com/">The George <span class="amp">&</span> Dragon Pub</a></div>
<div class="line">206 North 36th St</div>
<div class="line">Seattle, <span class="caps">WA</span> 98103</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.georgeanddragonpub.com/">The George <span class="amp">&</span> Dragon Pub</a></div>
<div class="line">206 North 36th St</div>
<div class="line">Seattle, <span class="caps">WA</span> 98103</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
June 21st, 2006 — Roundtable Meeting — Open Discussion2006-06-01T00:00:00-07:002006-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2006-06-01:/june-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
May 17th, 2006 — The Power of None — Andrei Alexandrescu2006-05-01T00:00:00-07:002006-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2006-05-01:/may-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Exceptions. The final frontier.
We wanted to understand them.
We thought we’ll love them, but they’ve lacerated our code.
We hated them.
We tried to do without them.
We couldn’t because they kept on throwing themselves …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Exceptions. The final frontier.
We wanted to understand them.
We thought we’ll love them, but they’ve lacerated our code.
We hated them.
We tried to do without them.
We couldn’t because they kept on throwing themselves at us.
In bitworld, exceptions might have cast upon us the closest analogy
to a love-hate, abusive, co-dependent relationship.</p>
<p>This talk has two purposes.
First purpose is group therapy.
We will try to explain through a dialog linking cause to effect,
why things are the way they are.
Second, we discuss how to escape the abuse cycle
by summoning an unexpected ally: the type system.
Come one, come all for one cathartic hour.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu is a graduate student at the University of Washington in Seattle,
working on the lean and mean speech recognition machine
that we all know (since 1960) will be completed within 5 years.
In the C++ community, Andrei is best known
for his best-selling (and tuition-paying) books,
<em>Modern C++ Design</em> and <em>C++ Coding Standards</em>,
the latter coauthored with Herb Sutter.
Andrei has also published numerous articles
on software design and implementation using C++,
and in spite of his accent is a sought-after speaker at numerous conferences worldwide.
His website is <a class="reference external" href="http://www.erdani.org">www.erdani.org</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2006/The_Power_of_None.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
April 19th, 2006 — C++ on Next-Gen Consoles: Effective Code for New Architectures — Pete Isensee2006-04-01T00:00:00-08:002006-04-01T00:00:00-08:00nwcpptag:nwcpp.org,2006-04-01:/april-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>At <span class="caps">GDC</span> 2005, Chris Hecker stated that average game code
is going to run slower on next-generation consoles than on the current generation.
In many ways, he’s right.
Programmers accustomed to having <span class="caps">CPU</span> silicon
devoted to out-of-order execution …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>At <span class="caps">GDC</span> 2005, Chris Hecker stated that average game code
is going to run slower on next-generation consoles than on the current generation.
In many ways, he’s right.
Programmers accustomed to having <span class="caps">CPU</span> silicon
devoted to out-of-order execution units and instruction pipelining
are in for a rude awakening.
A few brave souls will turn to assembly language optimizations,
but what about the rest of us who use C++ on a daily basis?
This talk is for you.
Find out how to write C++ code that runs like a dream on next-generation consoles.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Pete has been programming in the game industry for 10 years.
He has shipped titles ranging from adventure stories to online games,
working on everything from Macs to consoles.
He is currently a lead engineer with the Xbox Advanced Technology Group.
He has a degree in computer engineering
and was a C++ template geek long before compilers knew what to make of functors and traits.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="https://www.cmpevents.com/sessions/GD/S1549i1.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
March 15th, 2006 — Functional Programming in C++ using Boost.Lambda — Bartosz Milewski2006-03-01T00:00:00-08:002006-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2006-03-01:/march-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The power of <span class="caps">STL</span> is partially due to its embracing elements of functional programming.
Algorithms implemented in <span class="caps">STL</span>, such as <tt class="docutils literal">for_each</tt>, <tt class="docutils literal">accumulate</tt>, <tt class="docutils literal">find</tt>, etc.,
have functional customization points.
You can customize them by providing your own function objects—be …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The power of <span class="caps">STL</span> is partially due to its embracing elements of functional programming.
Algorithms implemented in <span class="caps">STL</span>, such as <tt class="docutils literal">for_each</tt>, <tt class="docutils literal">accumulate</tt>, <tt class="docutils literal">find</tt>, etc.,
have functional customization points.
You can customize them by providing your own function objects—be it a pointer to a function, a functor object, or a predicate object.
Unfortunately, <span class="caps">STL</span> provides very limited (and syntactically awkward)
support for creating and combining function objects.</p>
<p>C++ programmers have been eying lambda calculus with envy for some time now.
Several libraries have been proposed that implement elements of lambda calculus
using template metaprogramming in C++,
one of them being Boost.Lambda.
With these facilities, you can easily create and manipulate function objects on the fly.
What’s more important, you can then pass such objects to <span class="caps">STL</span> algorithms to tap their full power.</p>
<p>The slides for this talk were created by David Abrahams and Eric Niebler.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz is a theoretical physicist turned programmer.
He is the author of <em>C++ In Action</em>, published by Addison-Wesley in 2001.
He founded <a class="reference external" href="http://www.relisoft.com">Reliable Software <span class="caps">LLC</span></a> in 1996
to get first-hand experience in creating and maintaining a large software project—a version-control system called Code Co-op.
Studying complexity is his main interest.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2006/Customization_Points_and_Polymorphism.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
February 15th, 2006 — The Phoenix Compiler and Tools Framework — Andy Ayers2006-02-01T00:00:00-08:002006-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2006-02-01:/february-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="the-phoenix-compiler-and-tools-framework-built-from-building-and-building-on-c-cli">
<h2>The Phoenix Compiler and Tools Framework: Built From, Building, and Building On C++/<span class="caps">CLI</span></h2>
<p>Phoenix, Microsoft’s next generation compiler and tools framework,
is built entirely in C++/<span class="caps">CLI</span>.
Phoenix’s design leverages both the traditional strengths of C++
and …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="the-phoenix-compiler-and-tools-framework-built-from-building-and-building-on-c-cli">
<h2>The Phoenix Compiler and Tools Framework: Built From, Building, and Building On C++/<span class="caps">CLI</span></h2>
<p>Phoenix, Microsoft’s next generation compiler and tools framework,
is built entirely in C++/<span class="caps">CLI</span>.
Phoenix’s design leverages both the traditional strengths of C++
and the innovative features of <span class="caps">CLI</span> binding.
The Phoenix framework’s flexible, and extensible components
make extensive use of <span class="caps">CLI</span> features like ref classes, properties, events, and delegates.
We’ll demonstrate how C++/<span class="caps">CLI</span> enables Phoenix
to produce not only powerful compiler and jit components
that will help implement and optimize C++/<span class="caps">CLI</span> programs
but also produce novel and efficient tools for
C++/<span class="caps">CLI</span> program analysis, understanding, and manipulation.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andy is an Architect and Dev Lead on the Microsoft Phoenix Project.
He joined Microsoft in 2002.
Andy has created program analysis tools at InCert Software
and written optimizing compilers at Hewlett Packard.
His fascination with the challenges C++ presents to language implementers
dates back to his days as a graduate student at <span class="caps">MIT</span> in the late 1980’s.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2006/Ayers_NWCPP_Talk.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
January 18th, 2006 — Policy-Based Memory Allocation — Andrei Alexandrescu2006-01-01T00:00:00-08:002006-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2006-01-01:/january-2006.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Traditionally, memory allocation is approached as a monolithic, rigid design
influenced by a performance-minded implementation.
However, compile-time C++ techniques can yield
a highly flexible and configurable design
with the same performance profile
as equivalent hand-implemented designs.
This talk describes …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Traditionally, memory allocation is approached as a monolithic, rigid design
influenced by a performance-minded implementation.
However, compile-time C++ techniques can yield
a highly flexible and configurable design
with the same performance profile
as equivalent hand-implemented designs.
This talk describes work by Emery Berger and others
who have designed and implemented a policy-based allocator.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu is working on a graduate degree
at the University of Washington in Seattle,
specializing in automatic speech recognition.
In the C++ community, Andrei is best known for his books <em>Modern C++ Design</em>
and <em>C++ Coding Standards</em> (the latter coauthored with Herb Sutter).
Andrei is also a columnist for <em>C/C++ Users Journal</em>,
a C++ former columnist for the <em>C++ Report</em>,
a guest speaker at numerous conferences,
and one of the featured instructors of
<a class="reference external" href="http://www.thecppseminar.com">The C++ Seminar</a>).
His website is <a class="reference external" href="http://www.erdani.com">www.erdani.com</a>.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2006/ChromedMetal.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
20052005-12-31T00:00:00-08:002005-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2005-12-31:/2005-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2005.html">January 12th, 2005 — Lock-Free Programming — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2005.html">February 9th, 2005 — Dealing with Software Complexity — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2005.html">March 23rd, 2005 — Evolving C++ onto the <span class="caps">CLI</span> — Stan Lippman</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2005.html">April 20th, 2005 — xpressive regular expressions: Library design at the edge — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2005.html">May 18th, 2005 — Writing safer code with the Visual C++ 8 …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2005.html">January 12th, 2005 — Lock-Free Programming — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2005.html">February 9th, 2005 — Dealing with Software Complexity — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2005.html">March 23rd, 2005 — Evolving C++ onto the <span class="caps">CLI</span> — Stan Lippman</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2005.html">April 20th, 2005 — xpressive regular expressions: Library design at the edge — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2005.html">May 18th, 2005 — Writing safer code with the Visual C++ 8.0 Libraries — Martyn Lovell</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2005.html">June 15th, 2005 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2005.html">July 20th, 2005 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2005.html">August 17th, 2005 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2005.html">September 21st, 2005 — Two Views of C++ — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2005.html">October 19th, 2005 — C++ in the Trenches — David Brownell</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2005.html">November 16th, 2005 — The D Programming Language — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2005.html">December 2005: No Meeting</a></p>
December 2005: No Meeting2005-12-01T00:00:00-08:002005-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2005-12-01:/december-2005.htmlNovember 16th, 2005 — The D Programming Language — Walter Bright2005-11-01T00:00:00-08:002005-11-01T00:00:00-08:00nwcpptag:nwcpp.org,2005-11-01:/november-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Is it possible to have the power and efficiency of C++,
but in a much easier to use form?
Walter will contrast C++ and D
and show how, with D, one can achieve the same or better results
with …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Is it possible to have the power and efficiency of C++,
but in a much easier to use form?
Walter will contrast C++ and D
and show how, with D, one can achieve the same or better results
with much less complexity and with greater reliability,
without sacrificing performance.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright’s first major program was the groundbreaking wargame Empire.
He then became interested in compilers and computer languages.
He’s written compilers for <span class="caps">ABEL</span>, Pascal, C, C++, Java, Javascript, and now D.
His extensive experience writing C++ compilers
and well over a decade being on the front lines of doing C++ customer support
is an ideal background for improving on the language.</p>
</div>
October 19th, 2005 — C++ in the Trenches — David Brownell2005-10-01T00:00:00-07:002005-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2005-10-01:/october-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A presentation almost 20 years in the making!
In this meeting, David Brownell will share a grab bag of C++ tips and tricks
he has learned after 19 years of programming experience.
Topics include designing with a design in …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A presentation almost 20 years in the making!
In this meeting, David Brownell will share a grab bag of C++ tips and tricks
he has learned after 19 years of programming experience.
Topics include designing with a design in mind, partnering with the compiler,
handling errors without error,
and other techniques that can be incorporated immediately into existing code.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>David Brownell is the founder of <a class="reference external" href="http://www.WiseRiddles.com">Wise Riddles Software</a>—a product development and consulting company—and has been using C++ for the past 9 years.
Graduating from Seattle University in 1998,
David has worked on voice recognition software, peer-to-peer applications,
secure communications technologies, automated scripting utilities,
generic programming techniques, and faxing applications.
David currently serves as president for the Northwest C++ Users’ Group.</p>
<p><a class="reference external" href="/talks/2005/C__InTheTrenches.pdf">Click here</a>
to download the slides from the presentation</p>
</div>
September 21st, 2005 — Two Views of C++ — Scott Meyers2005-09-01T00:00:00-07:002005-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2005-09-01:/september-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract-two-views-of-c">
<h2>Abstract: Two Views of C++</h2>
<p>In 2002, Bertrand Meyer, inventor of Eiffel,
asked me to give a talk on C++ at <span class="caps">ETH</span> in Zurich,
where he is a member of the Software Engineering faculty.
Meyer is a well-known C++-hater …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract-two-views-of-c">
<h2>Abstract: Two Views of C++</h2>
<p>In 2002, Bertrand Meyer, inventor of Eiffel,
asked me to give a talk on C++ at <span class="caps">ETH</span> in Zurich,
where he is a member of the Software Engineering faculty.
Meyer is a well-known C++-hater, so the choice of topic was a delicate one.
I ultimately decided to give two mini-talks,
one making C++ look bad and one making it look good.</p>
<p>The two talks are:</p>
<ul class="simple">
<li><span class="dquo">“</span>The meaning of ‘f(x)’ in C++,” an exploration of the rules for
function overloading, template instantiation, template specialization,
and the semantic mess that results from their interactions.</li>
<li><span class="dquo">“</span>Dimensional Analysis in C++,” a purely compile-time approach to
making sure that physical quantities (e.g., mass, velocity, distance, etc.)
are used consistently in C++ programs.</li>
</ul>
<p>I’ll also be plugging the third edition of <em>Effective C++,</em> reminding
everyone that they should own <em>n</em>+2 copies, where <em>n</em> is the number of cars they own:
1 for home, 1 for work, and <em>n</em> for reading when they are stuck in traffic.</p>
<p>I may also show slides of recent trips I’ve taken to China and India.
Or maybe of our new dog, Darla.
Maybe even video.
Whatever.
We’ll see :-)</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Scott Meyers is one of the world’s foremost experts on C++ software development.
He wrote the best-selling <em>Effective C++</em> series
(<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-92488-9/">Effective C++</a>,
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-63371-X/">More Effective C++</a>,
and <a class="reference external" href="http://www.awl.com/cseng/titles/0-201-74962-9/">Effective <span class="caps">STL</span></a>);
wrote and designed the innovative
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-31015-5/">Effective C++ <span class="caps">CD</span></a>;
is consulting editor for Addison Wesley’s <em>Effective Software Development Series</em>;
and is a member of the advisory board for
<a class="reference external" href="http://www.sdmagazine.com/">Software Development</a> magazine.
He also sits on technical advisory boards for several start-up companies.
A programmer since 1972, he holds an <span class="caps">M.S.</span> in Computer Science from Stanford University
and a Ph.D. from Brown University.</p>
<p><a class="reference external" href="/talks/2005/twoViews.pdf">Click here</a>
to download the slides from the presentation</p>
</div>
August 17th, 2005 — Roundtable Meeting — Open Discussion2005-08-01T00:00:00-07:002005-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2005-08-01:/august-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
July 20th, 2005 — Roundtable Meeting — Open Discussion2005-07-01T00:00:00-07:002005-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2005-07-01:/july-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
June 15th, 2005 — Roundtable Meeting — Open Discussion2005-06-01T00:00:00-07:002005-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2005-06-01:/june-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring <strong>cash</strong> for food and drinks.</p>
</div>
May 18th, 2005 — Writing safer code with the Visual C++ 8.0 Libraries — Martyn Lovell2005-05-01T00:00:00-07:002005-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2005-05-01:/may-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Over the past 5 years,
Microsoft has conducted extensive and detailed security reviews
and upgrades of its very large code bases.
We’ve learnt a lot about how to build safer code,
and in Visual C++ 8.0, we …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Over the past 5 years,
Microsoft has conducted extensive and detailed security reviews
and upgrades of its very large code bases.
We’ve learnt a lot about how to build safer code,
and in Visual C++ 8.0, we’re applying that to the Visual C++ Libraries
to help protect against classic security problems (such as buffer overruns).
The Standard C Library includes many venerable functions with security problems.
Visual C++ 8.0 includes a full revamp of this library to help programmers
build safer code with minimal source changes.
The Standard C++ library provides a clean and simple abstraction
for algorithms, iterators and containers that provides much better protection
than the traditional C library.
We extended our implementation of the Standard C++ Libraries to
try to make them apply, by default,
the lessons we’ve learnt from reviewing our code.
The result is a much safer implementation of the Standard Libraries
with only a small amount of reduced functionality.
This talk describes the changes made and their impact on application code,
as well as some of the internals of the implementation.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Martyn Lovell is the Development Lead on the Visual C++ Libraries Team,
which is responsible for the C and C++ runtime libraries, <span class="caps">MFC</span>, <span class="caps">ATL</span>,
<span class="caps">STL</span>/<span class="caps">CLR</span> and other libraries supporting managed code development in C++.
His recent focus has been security in the standard libraries,
and support for mixing managed and native code in a single program.
As a long-standing member of the developer tools division,
he has worked on a broad range of features.
These include architecture, design and implementation for:
the extensibility of the Visual Studio Shell;
source control and Visual SourceSafe;
source control integration and other team development features;
the Visual Studio Analyzer infrastructure and user interface;
the common development shell;
web development;
and the Visual Studio user interface.
He is a frequent speaker at TechEd and other conferences,
and a regular contributor to online communities.</p>
<p><a class="reference external" href="/talks/2005/Secure_NWCPP_May_2005.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
April 20th, 2005 — xpressive regular expressions: Library design at the edge — Eric Niebler2005-04-01T00:00:00-08:002005-04-01T00:00:00-08:00nwcpptag:nwcpp.org,2005-04-01:/april-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Another C++ regular expression library? Hasn’t it all been done? No!</p>
<p>xpressive pushes the boundaries of compile-time and run-time interaction.
Regular expressions can be written either as a string to be parsed at runtime,
or as an expression …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Another C++ regular expression library? Hasn’t it all been done? No!</p>
<p>xpressive pushes the boundaries of compile-time and run-time interaction.
Regular expressions can be written either as a string to be parsed at runtime,
or as an expression template parsed (and optimized!) at compile time.
In this talk, Eric will discuss library design at the compile-time/run-time boundary,
and the interesting possibilities such a design makes possible.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Eric is an independent software consultant currently working
with Dave Abrahams and Boost Consulting.
He is a former employee of Microsoft Research and Visual C++,
and his writings about C++ have been published
in the <em>C/C++ User’s Journal</em> and <em><span class="caps">MSDN</span> Magazine</em>.
When he’s not writing C++ for money, Eric has been known to write C++ for fun.</p>
<p><a class="reference external" href="/talks/2005/xpressive.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
March 23rd, 2005 — Evolving C++ onto the CLI — Stan Lippman2005-03-01T00:00:00-08:002005-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2005-03-01:/march-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ reflects a static object model optimized for executable speed and size.</p>
<p>This has made it the language of choice for systems programming.
The Common Language Infrastructure (<span class="caps">CLI</span>) represents a dynamic object model
optimized for flexibility and security.
C …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.construx.com">Construx Software</a></div>
<div class="line">11820 Northup Way #E200</div>
<div class="line">Bellevue, Washington 98005</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>C++ reflects a static object model optimized for executable speed and size.</p>
<p>This has made it the language of choice for systems programming.
The Common Language Infrastructure (<span class="caps">CLI</span>) represents a dynamic object model
optimized for flexibility and security.
C++ programmers wishing to inhabit the <span class="caps">CLI</span> development space until now
have had to leave C++ and generally work in C# (or Java).
In this talk, I’ll discuss our evolution of C++
to adapt to the <span class="caps">CLI</span> programming environment,
and couch it in a more general look at program language lifetimes
and suggest some possible future directions.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Stan Lippman is Architect with the Visual C++ team at Microsoft.
He began working on C++ with its inventor Bjarne Stroustrup back in 1984
within Bell Laboratories.
In between, he worked in Feature Animation at Disney and DreamWorks,
was a Distinguished Consultant with <span class="caps">JPL</span>,
and was a Software Technical Director on Fantasia 2000.
He is the author of <em>C++ Primer, 4e</em> (2005) and <em>Inside the C++ Object Model</em>.
For the last three years,
he has been involved in the work to adapt C++ onto the <span class="caps">CLI</span> environment.</p>
<p><a class="reference external" href="/talks/2005/EvolvingC___Short.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
February 9th, 2005 — Dealing with Software Complexity — Bartosz Milewski2005-02-01T00:00:00-08:002005-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2005-02-01:/february-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>One of the big problems in software development
is that a lot of energy is spent on understanding existing code,
whether it was written by other programmers or by the current developer long time ago.
Bartosz will argue that …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>One of the big problems in software development
is that a lot of energy is spent on understanding existing code,
whether it was written by other programmers or by the current developer long time ago.
Bartosz will argue that a large part of code analysis can be automated
using exotic new techniques inspired by biology, cellular automata,
document processing, and more.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz is a theoretical physicist turned programmer.
He is the author of the book, <em>C++ In Action</em>, published by Addison-Wesley in 2001.
He founded <a class="reference external" href="http://www.relisoft.com">Reliable Software <span class="caps">LLC</span></a> in 1996
to get first-hand experience in creating and maintaining
a large software project—a version-control system called Code Co-op.
Studying complexity is his main interest.</p>
<p><a class="reference external" href="/talks/2005/Complexity.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
January 12th, 2005 — Lock-Free Programming — Andrei Alexandrescu2005-01-01T00:00:00-08:002005-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2005-01-01:/january-2005.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With the increase of processor clock speeds hitting a snag,
we’re facing yet another silent revolution
in processor architecture and programming style.
Forget about writing lousy, inefficient code and
then taking six months off to let Moore’s …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>With the increase of processor clock speeds hitting a snag,
we’re facing yet another silent revolution
in processor architecture and programming style.
Forget about writing lousy, inefficient code and
then taking six months off to let Moore’s law catch up.
Once again the heydays of efficient code are up,
and with the new multicore, massively parallel architectures,
threads are the way to go.
This talk presents the newest, hottest, and most addictive multithreaded technique in town:
lock-free programming.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu is working on a graduate degree
at the University of Washington in Seattle,
specializing in automatic speech recognition.
In the C++ community, Andrei is best known for his books <em>Modern C++ Design</em>
and <em>C++ Coding Standards</em> (the latter coauthored with Herb Sutter).
Andrei is also a columnist for <em>C/C++ Users Journal</em>, a C++ former
columnist for the <em>C++ Report</em>, a guest speaker at numerous conferences,
and one of the featured instructors of
<a class="reference external" href="http://www.thecppseminar.com">The C++ Seminar</a>).
His website is <a class="reference external" href="http://www.moderncppdesign.com">www.moderncppdesign.com</a>.</p>
<p><a class="reference external" href="/talks/2005/Lock-Free.pdf">Click here</a>
to download the slides from the presentation</p>
</div>
20042004-12-31T00:00:00-08:002004-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2004-12-31:/2004-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2004.html">January 14th, 2004 — for_each — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2004.html">February 11th, 2004 — C++ Development for PocketPC, SmartPhone, and Windows <span class="caps">CE</span> — Nishan Jebanasam <span class="amp">&</span> Rich Hanbidge</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2004.html">March 8th, 2004 — Code Complete 2: A Decade of Advances in Software Construction — Steve McConnell</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2004.html">April 14th, 2004 — Double-Checked Locking, Threads, Compiler Optimizations, and More — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2004.html">May 12th …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2004.html">January 14th, 2004 — for_each — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2004.html">February 11th, 2004 — C++ Development for PocketPC, SmartPhone, and Windows <span class="caps">CE</span> — Nishan Jebanasam <span class="amp">&</span> Rich Hanbidge</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2004.html">March 8th, 2004 — Code Complete 2: A Decade of Advances in Software Construction — Steve McConnell</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2004.html">April 14th, 2004 — Double-Checked Locking, Threads, Compiler Optimizations, and More — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2004.html">May 12th, 2004 — Improving Testability — Dave Catlett</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2004.html">June 9th, 2004 — Roundtable Meeting: The Virtues of Linux — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2004.html">July 14th, 2004 — Roundtable Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2004.html">August 11th, 2004 — “Square Table” Meeting — Open Discussion</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2004.html">September 8th, 2004 — Achieving Source-Level Software Portability Using <span class="caps">GNU</span> Autoconf, Automake, Libtool, and Make — Robert P. Goddard</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2004.html">October 13th, 2004 — The D Programming Language — Walter Bright</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2004.html">November 10th, 2004 — <span class="caps">STL</span>/<span class="caps">CLI</span> — Stan Lippman</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2004.html">December 2004: No Meeting</a></p>
December 2004: No Meeting2004-12-01T00:00:00-08:002004-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2004-12-01:/december-2004.htmlNovember 10th, 2004 — STL/CLI — Stan Lippman2004-11-01T00:00:00-08:002004-11-01T00:00:00-08:00nwcpptag:nwcpp.org,2004-11-01:/november-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Building 43, Adams Conference Room</div>
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><span class="caps">STL</span>/<span class="caps">CLI</span> — <span class="caps">STL</span> containers and generic algorithms for Microsoft .<span class="caps">NET</span>
Framework and <span class="caps">ECMA</span> Common Language Infrastructure</p>
<p>C++/<span class="caps">CLI</span> brings C++ idioms to managed code development.
With templates and <span class="caps">CLI</span> Generics, <span class="caps">STL</span>/<span class="caps">CLI</span> brings the Standard …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Building 43, Adams Conference Room</div>
<div class="line"><a class="reference external" href="http://www.microsoft.com">Microsoft Corporation</a></div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><span class="caps">STL</span>/<span class="caps">CLI</span> — <span class="caps">STL</span> containers and generic algorithms for Microsoft .<span class="caps">NET</span>
Framework and <span class="caps">ECMA</span> Common Language Infrastructure</p>
<p>C++/<span class="caps">CLI</span> brings C++ idioms to managed code development.
With templates and <span class="caps">CLI</span> Generics, <span class="caps">STL</span>/<span class="caps">CLI</span> brings the Standard Library containers,
iterator and algorithms to .<span class="caps">NET</span> development,
while leveraging the runtime facilities like garbage collection,
verifiability, and versionable binary interfaces.</p>
<p>This talk will discuss the rationale, design decisions and techniques of <span class="caps">STL</span>/<span class="caps">CLI</span>.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Stan Lippman is an Architect with the Visual C++ team at Microsoft.
He began working on C++ with its inventor Bjarne Stroustrup back in 1984
within Bell Laboratories.
In between, he worked in Feature Animation at Disney and DreamWorks,
was a Distinguished Consultant with <span class="caps">JPL</span>,
and was a Software Technical Director on Fantasia 2000 in the Firebird segment.
He is the author of <em>C++ Primer</em> and <em>Inside the C++ Object Model</em>.</p>
</div>
<div class="section" id="additional-information">
<h2>Additional Information</h2>
<p>Please note that in order to accommodate the increased attendance,
this meeting will be held at the <strong>Microsoft Corporation</strong>
rather than our usual meeting location.
Due to increased security, those attending the meeting
will be required to check in at the front desk.
Like other <span class="caps">NWCPP</span> meetings, this meeting is free
and you are welcome to attend without prior registration.
However, we do ask that you register if you know beforehand
that you will be attending this meeting.</p>
</div>
October 13th, 2004 — The D Programming Language — Walter Bright2004-10-01T00:00:00-07:002004-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2004-10-01:/october-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The D Programming Language is the result of many years of experience
with compilers and languages, especially C++.
C++ is a powerful, groundbreaking language.
D comes from looking at what works in C++, what doesn’t work,
and refactoring …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The D Programming Language is the result of many years of experience
with compilers and languages, especially C++.
C++ is a powerful, groundbreaking language.
D comes from looking at what works in C++, what doesn’t work,
and refactoring the language to take advantage of hindsight
in how things can work better.
D adds in proven capabilities from other modern languages that are sorely missed in C++.
This talk is an overview of D—what it is, why it is that way,
and how it works out in practice.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Walter Bright’s first major program was the groundbreaking wargame Empire.
He then became interested in compilers and computer languages.
He’s written compilers for <span class="caps">ABEL</span>, Pascal, C, C++, Java, Javascript, and now D.
His extensive experience writing C++ compilers
and well over a decade being on the front lines of doing C++ customer support
is an ideal background for improving on the language.</p>
</div>
September 8th, 2004 — Achieving Source-Level Software Portability Using GNU Autoconf, Automake, Libtool, and Make — Robert P. Goddard2004-09-01T00:00:00-07:002004-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2004-09-01:/september-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>If you have ever downloaded “open-source” software as source code from <span class="caps">GNU</span> or elsewhere,
you have witnessed the following magic:</p>
<pre class="literal-block">
./configure
make
make check
make install
</pre>
<p>after which the software just works, even for very complex packages,
no matter …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.humongous.com">Humongous Entertainment</a></div>
<div class="line">3855 Monte Villa Parkway</div>
<div class="line">Bothell, Washington 98021</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>If you have ever downloaded “open-source” software as source code from <span class="caps">GNU</span> or elsewhere,
you have witnessed the following magic:</p>
<pre class="literal-block">
./configure
make
make check
make install
</pre>
<p>after which the software just works, even for very complex packages,
no matter which of a very large range of systems you happen to be running.</p>
<p>Yes, it even does Windows.
I will describe a powerful set of tools that
will help you to achieve this level of simplicity (for the user)
and portability for your applications.
The cost is surprisingly low in time and effort, and zero for the tools.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bob Goddard has been an active member of <span class="caps">NW</span> C++ <span class="caps">UG</span> for many years.
You will recognize his face.
He has worked at the University of Washington Applied Physics Laboratory since 1980.
He is the primary author of the Sonar Simulation Toolset (<span class="caps">SST</span>) software,
a large C++ system for simulation of sound in the sea.
<span class="caps">SST</span> is being used at several Navy and university laboratories
to generate artificial underwater sound,
which is used to develop new sonar systems, train sonar operators,
and predict performance of new and existing sonar systems and tactics.
He has also worked on other projects related to underwater acoustics,
including simulation, analysis, and data acquisition applications.
His niche is in the gray overlap area between software engineering and “real” science.</p>
<p>For more details, go to
<a class="reference external" href="http://staff.washington.edu/rpg3/">http://staff.washington.edu/rpg3/</a>,
<a class="reference external" href="http://www.apl.washington.edu/">http://www.apl.washington.edu/</a>,
and <a class="reference external" href="http://eis.apl.washington.edu/projects/projects.php">http://eis.apl.washington.edu/projects/projects.php</a>.</p>
<p><a class="reference external" href="/talks/2004/GNU_Autotools_040908.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
August 11th, 2004 — “Square Table” Meeting — Open Discussion2004-08-01T00:00:00-07:002004-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2004-08-01:/august-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring money for food and drinks.</p>
</div>
July 14th, 2004 — Roundtable Meeting — Open Discussion2004-07-01T00:00:00-07:002004-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2004-07-01:/july-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring money for food and drinks.</p>
</div>
June 9th, 2004 — Roundtable Meeting: The Virtues of Linux — Open Discussion2004-06-01T00:00:00-07:002004-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2004-06-01:/june-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Desert Fire</div>
<div class="line">7211 166th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="description">
<h2>Description</h2>
<p>This will be an informal discussion over dinner.
The topic is just a suggestion,
and we may find that we prefer to socialize rather than discuss anything in particular.
Come ready to chat and get to know your fellow <span class="caps">NWCPP</span> members.
If you plan on eating, please bring money for food and drinks.</p>
</div>
May 12th, 2004 — Improving Testability — Dave Catlett2004-05-01T00:00:00-07:002004-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2004-05-01:/may-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="improving-testability-decreasing-the-cost-of-developing-and-maintaining-software-while-increasing-quality">
<h2>Improving Testability: Decreasing the cost of developing and maintaining software while increasing quality</h2>
<p>Thorough testing can be expensive in terms of time and resources,
especially if the software component or the systems it interacts with
are difficult to test.
It …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="improving-testability-decreasing-the-cost-of-developing-and-maintaining-software-while-increasing-quality">
<h2>Improving Testability: Decreasing the cost of developing and maintaining software while increasing quality</h2>
<p>Thorough testing can be expensive in terms of time and resources,
especially if the software component or the systems it interacts with
are difficult to test.
It is necessary though in order to deliver high quality software
that meets the user’s needs.
By designing testability features into the component, not only is testing easier,
it helps enforce good design principles,
it makes diagnosing unexpected behavior go faster,
it can improve manageability of the component,
and it reduces the cost of supporting the software after it “ships.”
In short, it increases quality while reducing cost.</p>
<p>Determining testability can be achieved using the <span class="caps">SOCK</span> analysis method,
where S=Simplicity, O=Observability, C=Control, and K=Knowledge of expected results.
For example, using an observer design pattern class to increase observability
will not only make it easier for an automated test to determine pass or fail
at any given point in time,
it will provide a history of events
making diagnosis of a bug much easier both during the development cycle
and by the support team after the software is shipped.
We will go through this and other practical examples
of how to improve testability by improve in each area of <span class="caps">SOCK</span>.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Dave Catlett has been testing software
and developing people, tools and techniques for testing software for over 12 years.
In his current role as Test Architect for the Microsoft Windows Networking <span class="amp">&</span> Devices group,
Dave has been researching and implementing methods to decrease the costs
while increasing the quality of software throughout the engineering lifecycle.
Dave holds a <span class="caps">B.S.</span> in Computer Science/Math from the University of Puget Sound
and more importantly is a husband to Erika and dad to Josh, Emilie and Sara.
He’s also pursuing a career as world-famous groundskeeper
for the Eastlake Little League Dodgers of which his son is a starting pitcher.
Go blue!</p>
<p><a class="reference external" href="/talks/2004/ImprovingTestabilityNWCPP.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
April 14th, 2004 — Double-Checked Locking, Threads, Compiler Optimizations, and More — Scott Meyers2004-04-01T00:00:00-08:002004-04-01T00:00:00-08:00nwcpptag:nwcpp.org,2004-04-01:/april-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Double-Checked Locking Pattern is a common approach to efficient lazy initialization.
Unfortunately, it’s not reliable in threaded systems,
it can fail for different reasons in uniprocessor and multiprocessor environments,
and there’s no portable way to make …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The Double-Checked Locking Pattern is a common approach to efficient lazy initialization.
Unfortunately, it’s not reliable in threaded systems,
it can fail for different reasons in uniprocessor and multiprocessor environments,
and there’s no portable way to make it reliable.
Every C++ programmer needs to understand why this is the case,
because it affects the very core of software development:
code generation and program execution.
This presentation takes a deep look at code generation,
compiler and hardware optimization, sequence points,
“observable behavior,” the significance of “volatile,”
cache coherency problems, and memory barriers.
It concludes with suggestions for those who want the efficiency of lazy initialization,
but who value correct program behavior even more.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Scott Meyers is one of the world’s foremost experts on C++ software development.
He wrote the best-selling <em>Effective C++</em> series
(<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-92488-9/">Effective C++</a>,
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-63371-X/">More Effective C++</a>,
and <a class="reference external" href="http://www.awl.com/cseng/titles/0-201-74962-9/">Effective <span class="caps">STL</span></a>);
wrote and designed the innovative
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-31015-5/">Effective C++ <span class="caps">CD</span></a>;
is consulting editor for Addison Wesley’s <em>Effective Software Development Series</em>;
and is a member of the advisory board for
<a class="reference external" href="http://www.sdmagazine.com/">Software Development</a> magazine.
He also sits on technical advisory boards for several start-up companies.
A programmer since 1972, he holds an <span class="caps">M.S.</span> in Computer Science from Stanford University
and a Ph.D. from Brown University.</p>
<p><a class="reference external" href="/talks/2004/DCLP_notes.pdf">Click here</a>
to download the slides from the presentation</p>
</div>
March 8th, 2004 — Code Complete 2: A Decade of Advances in Software Construction — Steve McConnell2004-03-01T00:00:00-08:002004-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2004-03-01:/march-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.overlakehospital.org/conferencecenter/fs.htm">Overlake Hospital Conference Center</a></div>
<div class="line">1035 116th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue, Washington, 98004</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Please note that in order to offset some of the costs necessary to host
this meeting, there will be a <strong>$10 charge to non-<span class="caps">NWCPP</span> and non-<span class="caps">WSA</span> members</strong>.
Membership in the <span class="caps">NWCPP</span> is <strong>free</strong>, and is …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.overlakehospital.org/conferencecenter/fs.htm">Overlake Hospital Conference Center</a></div>
<div class="line">1035 116th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue, Washington, 98004</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Please note that in order to offset some of the costs necessary to host
this meeting, there will be a <strong>$10 charge to non-<span class="caps">NWCPP</span> and non-<span class="caps">WSA</span> members</strong>.
Membership in the <span class="caps">NWCPP</span> is <strong>free</strong>, and is a great way to
ensure that you may attend this meeting for free.
To become a member, visit the <a class="reference external" href="http://nwcpp.org/about.html">Membership</a> page
and join our mailing list.
<strong>Only members on the <span class="caps">NWCPP</span> mailing list and <span class="caps">WSA</span> members may attend the meeting for free!</strong></p>
<p>For more than 10 years, Code Complete has been a computing-industry bestseller.
The past decade has seen the emergence of object-oriented programming,
the Internet, the <span class="caps">CMM</span>, offshore outsourcing, Java, Visual Basic,
and the Agile movement,
as well as staggering advances in computing power and numerous other developments.
How have 10 years of advances changed software construction?
Has the general state of programming improved?
Are any of the old techniques still relevant?
Has anything moved backward?
Award-winning author Steve McConnell explores the software issues
of yesterday and today
and arrives at a few lasting truths about software development.
This talk is based on Code Complete Second Edition, available in June 2004.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Steve McConnell is <span class="caps">CEO</span> and Chief Software Engineer at
<a class="reference external" href="http://www.construx.com">Construx Software</a>,
where he writes books and articles, teaches classes,
and oversees Construx’s software engineering practices.</p>
<p>Steve is the author of Code Complete (1993) and Rapid Development (1996),
both winners of Software Development magazine’s Jolt award for
outstanding software development books of their respective years.
In 1998, he published Software Project Survival Guide.
His most recent book is Professional Software Development (2003).</p>
<p>Steve has worked in the desktop software industry since 1984
and has expertise in rapid development methodologies, project estimation,
software construction practices, performance tuning, system integration,
and third-party contract management.</p>
<p>Steve also served as Editor in Chief of <span class="caps">IEEE</span> Software from 1998-2002 and
is a member of <span class="caps">IEEE</span> Computer Society and <span class="caps">ACM</span>.</p>
<p>Steve earned a master’s degree in software engineering from Seattle University
and a bachelor’s degree from Whitman College in Walla Walla, Washington.</p>
<p>Send email to <a class="reference external" href="mailto:steve.mcconnell@construx.com">Steve McConnell</a>.</p>
<p>Please note that in order to accommodate the increased attendance, this
meeting will be held on <strong>Monday</strong> at the <strong>Overlake Medical Conference
Center</strong> rather than our usual Wednesday meeting at Avaya.</p>
<p><a class="reference external" href="/talks/2004/CodeComplete-Keynote.pdf">Click here</a>
to download the slides from the presentation</p>
</div>
February 11th, 2004 — C++ Development for PocketPC, SmartPhone, and Windows CE — Nishan Jebanasam & Rich Hanbidge2004-02-01T00:00:00-08:002004-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2004-02-01:/february-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Learn about the new native device development feature
in the next release of Visual Studio.
This talk will cover developing, debugging and deploying C++ applications
to Pocket <span class="caps">PC</span>, Smartphone and Windows <span class="caps">CE</span>.
It will also cover improvements made since …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Learn about the new native device development feature
in the next release of Visual Studio.
This talk will cover developing, debugging and deploying C++ applications
to Pocket <span class="caps">PC</span>, Smartphone and Windows <span class="caps">CE</span>.
It will also cover improvements made since eMbedded Visual C++
and the work being done in the native frameworks such as <span class="caps">MFC</span> and <span class="caps">ATL</span></p>
</div>
<div class="section" id="bios">
<h2>Bios</h2>
<div class="section" id="nishan-jebanasam">
<h3>Nishan Jebanasam</h3>
<p>I graduated from the University of New South Wales in Sydney, Australia
with a double degree in Computer Engineering and Goofing Off,
and gave up the miserable weather and horrid beaches
for the fairer climate of Seattle.
I’ve been in the Smart Devices team for over two-and-a-half years now,
first as a Release Program Manager,
and subsequently as the <span class="caps">PM</span> for Native C++ for Device development features.
In my spare time I like to scuba dive, snowboard, play Halo
and flirt with the Seattle Police in my Lancer Evo.
I’m desperately hoping <span class="caps">MS</span> stock will one day allow me to afford the 911 Turbo that I long for.</p>
</div>
<div class="section" id="rich-hanbidge">
<h3>Rich Hanbidge</h3>
<p>I graduated from University of Michigan in 98 with a <span class="caps">BSE</span> in Computer Engineering.
I grew up just outside of Detroit, and saw my first mountain
during an interview with <span class="caps">HP</span> in Fort Collins, <span class="caps">CO</span>.
I promptly decided to flee the flatness of the Midwest.
My first job was working on avionics software with Honeywell,
until I realized they were actually putting my code on airplanes…
Since I need to fly back to Detroit to see my family, this was a problem for me.
Now I am a developer in Visual Studio for Devices to support my snowboarding problem.
I’ve been here about 3.5 years,
and holding a close second for “grumpy old man” of this group.
When I’m not complaining to the newbies
about how fun this group was before they got here,
I’m trying to help write a kick-ass native debugger for devices.</p>
<p><a class="reference external" href="/talks/2004/C_UserGroup-_Developing_for_Devices_Using_Native_C___with_Visual_Studio__With_Notes_.ppt">Click here</a>
to download the slides and source code from Nishan Jebanasam’s presentation</p>
</div>
</div>
January 14th, 2004 — for_each — Eric Niebler2004-01-01T00:00:00-08:002004-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2004-01-01:/january-2004.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Writing loops over sequences is harder in C++ than in other languages,
many of which provide a dedicated <tt class="docutils literal">for_each</tt> looping construct.
In this talk, Eric describes how to implement and use
a generic, type-safe and extensible foreach construct in …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Writing loops over sequences is harder in C++ than in other languages,
many of which provide a dedicated <tt class="docutils literal">for_each</tt> looping construct.
In this talk, Eric describes how to implement and use
a generic, type-safe and extensible foreach construct in C++
with the help of the preprocessor and some sneaky template tricks.
The techniques, first presented in the Nov. C/C++ Users’ Journal,
are extended to work with <span class="caps">STL</span> containers.
Time permitting, Eric will describe why <tt class="docutils literal"><span class="pre">std::for_each</span></tt> doesn’t cut it,
and why we need a language extension.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Eric is an independent software consultant currently working with
Dave Abrahams and Boost Consulting.
He is a former employee of Microsoft Research and Visual C++,
and his writings about C++ have been published
in the C/C++ User’s Journal and <span class="caps">MSDN</span> Magazine.
When he’s not writing C++ for money, Eric has been known to write C++ for fun.</p>
<p><a class="reference external" href="/talks/2004/foreach.zip">Click here</a>
to download the slides and source code from the presentation</p>
</div>
20032003-12-31T00:00:00-08:002003-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2003-12-31:/2003-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2003.html">January 8th, 2003 — Unit Testing — Asim Jalis</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2003.html">February 12th, 2003 — Mojo — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2003.html">March 12th, 2003 — Resource Management in C++ — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2003.html">April 9th, 2003 — New Features in Visual C++ .<span class="caps">NET</span> 2003 — Ed Dudenhoefer</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2003.html">May 14th, 2003 — The Bizarro World of hetero_stack… — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2003.html">June 2003: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2003.html">July 2003 …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2003.html">January 8th, 2003 — Unit Testing — Asim Jalis</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2003.html">February 12th, 2003 — Mojo — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2003.html">March 12th, 2003 — Resource Management in C++ — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2003.html">April 9th, 2003 — New Features in Visual C++ .<span class="caps">NET</span> 2003 — Ed Dudenhoefer</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2003.html">May 14th, 2003 — The Bizarro World of hetero_stack… — Eric Niebler</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2003.html">June 2003: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2003.html">July 2003: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2003.html">August 2003: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2003.html">September 10th, 2003 — Thread Safe Object—Never Think About Thread Safety Again — David Brownell</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2003.html">October 8th, 2003 — Object-Oriented Multithreading in C++ — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2003.html">November 10th, 2003 — The Future of C++: A Panel Discussion with the Experts — Andrei Alexandrescu, Scott Meyers, <span class="amp">&</span> Herb Sutter</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2003.html">December 10th, 2003 — The Future of C++ on .<span class="caps">NET</span>: A Tour of C++/<span class="caps">CLI</span> — Herb Sutter</a></p>
December 10th, 2003 — The Future of C++ on .NET: A Tour of C++/CLI — Herb Sutter2003-12-01T00:00:00-08:002003-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2003-12-01:/december-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Microsoft Corporation</div>
<div class="line">Building 27, Conference Room 1810 (Olympic)</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In October 2003, a new <span class="caps">ECMA</span> standards committee was formed to create an
international standard for “C++/<span class="caps">CLI</span>,” a set of C++ extensions for .<span class="caps">NET</span>
programming designed by Microsoft in collaboration with C++ industry …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Microsoft Corporation</div>
<div class="line">Building 27, Conference Room 1810 (Olympic)</div>
<div class="line">One Microsoft Way</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>In October 2003, a new <span class="caps">ECMA</span> standards committee was formed to create an
international standard for “C++/<span class="caps">CLI</span>,” a set of C++ extensions for .<span class="caps">NET</span>
programming designed by Microsoft in collaboration with C++ industry
leaders as a successor to “Managed C++.”
Formally, C++/<span class="caps">CLI</span> is a binding between <span class="caps">ISO</span> C++ and <span class="caps">ISO</span> <span class="caps">CLI</span>
(Common Language Infrastructure, the standardized subset of
the .<span class="caps">NET</span> runtime environment and frameworks class library);
see the announcement at
<a class="reference external" href="http://www.ecma-international.org/news/ecma-TG5-PR.htm">www.ecma-international.org/news/ecma-<span class="caps">TG5</span>-<span class="caps">PR</span>.htm</a>.</p>
<p>In this talk, the lead architect of C++/<span class="caps">CLI</span> talks about the language
design and major features, with a look under the hood at how compilers
are implementing the new semantics. C++/<span class="caps">CLI</span> provides first-class and
cleanly integrated support in the C++ language for all .<span class="caps">NET</span> features
(e.g., properties and events, garbage collection and generics) uniformly
for all types including also for native types. It also provides
first-class support on the .<span class="caps">NET</span> platform for all standard C++ features
(e.g., deterministic destruction and templates) uniformly for all types,
including also for .<span class="caps">NET</span> types. These facilities are expressed through a
set of pure conforming extensions, underpinned by a unified type system
and unified pointer/storage system.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p><strong>Herb Sutter</strong>
is a leading authority on C++ software development.
Author of more than
180 <a class="reference external" href="http://www.gotw.ca/publications/index.htm">technical articles and papers</a>
and of the widely acclaimed books
<a class="reference external" href="http://www.gotw.ca/publications/xc++.htm">Exceptional C++</a>
and <a class="reference external" href="http://www.gotw.ca/publications/mxc++.htm">More Exceptional C++</a>,
he regularly gives invited talks at conferences around the world
and is available for
private <a class="reference external" href="http://www.gotw.ca/consulting.htm">training and mentoring</a>
for new and current corporate clients.</p>
<p>Please note that in order to accommodate the increased attendance, this
meeting will be held at the <strong>Microsoft Corporation</strong> rather than our
usual meeting at Avaya.</p>
<p><a class="reference external" href="/talks/2003/HerbSutterCLI.pdf">Click here</a>
to download the source code and slides from the presentation</p>
</div>
November 10th, 2003 — The Future of C++: A Panel Discussion with the Experts — Andrei Alexandrescu, Scott Meyers, & Herb Sutter2003-11-01T00:00:00-08:002003-11-01T00:00:00-08:00nwcpptag:nwcpp.org,2003-11-01:/november-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.overlakehospital.org/conferencecenter/fs.htm">Overlake Hospital Conference Center</a></div>
<div class="line">1035 116th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue, Washington, 98004</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Please note that in order to offset some of the costs necessary to host
this meeting, there will be a <strong>$10 charge to non-<span class="caps">NWCPP</span> and non-<span class="caps">WSA</span> members</strong>.
Membership in the <span class="caps">NWCPP</span> is <strong>free</strong>, and is …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.overlakehospital.org/conferencecenter/fs.htm">Overlake Hospital Conference Center</a></div>
<div class="line">1035 116th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue, Washington, 98004</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Please note that in order to offset some of the costs necessary to host
this meeting, there will be a <strong>$10 charge to non-<span class="caps">NWCPP</span> and non-<span class="caps">WSA</span> members</strong>.
Membership in the <span class="caps">NWCPP</span> is <strong>free</strong>, and is a great way to
ensure that you may attend this meeting for free.
To become a member, visit the <a class="reference external" href="http://nwcpp.org/about.html">Membership</a> page
and join our mailing list.
<strong>Only members on the <span class="caps">NWCPP</span> mailing list and <span class="caps">WSA</span> members may attend the meeting for free!</strong></p>
<p>This meeting is a great opportunity to pick the minds of some of the
most well-known experts in the C++ community!
The meeting will be a moderated panel discussion and the three experts
will be open to questions from the audience regarding the current state of
the C++ language and the direction in which it is forging ahead.
This is a unique opportunity, and we hope that you can be a part of it.</p>
</div>
<div class="section" id="bios">
<h2>Bios</h2>
<p><strong>Andrei Alexandrescu</strong>
is a world-class expert in software development using C++.
In the C++ community, he is best known for his book,
<a class="reference external" href="http://www.moderncppdesign.com/book/main.html">Modern C++ Design</a>.
Also, Andrei is a columnist for <a class="reference external" href="http://www.cuj.com/">C/C++ Users Journal</a>,
a former columnist for the C++ Report, and a sought-after speaker at
conferences worldwide.</p>
<p><strong>Scott Meyers</strong>
is one of the world’s foremost experts on C++ software development.
He wrote the best-selling <em>Effective C++</em> series
(<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-92488-9/">Effective C++</a>,
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-63371-X/">More Effective C++</a>,
and <a class="reference external" href="http://www.awl.com/cseng/titles/0-201-74962-9/">Effective <span class="caps">STL</span></a>);
wrote and designed the innovative
<a class="reference external" href="http://www.awl.com/cseng/titles/0-201-31015-5/">Effective C++ <span class="caps">CD</span></a>;
is consulting editor for Addison Wesley’s <em>Effective Software Development Series</em>;
and is a member of the advisory board for
<a class="reference external" href="http://www.sdmagazine.com/">Software Development</a> magazine.
He also sits on technical advisory boards for several start-up companies.
A programmer since 1972, he holds an <span class="caps">M.S.</span> in Computer Science from Stanford University
and a Ph.D. from Brown University.</p>
<p><strong>Herb Sutter</strong>
is a leading authority on C++ software development.
Author of more than
180 <a class="reference external" href="http://www.gotw.ca/publications/index.htm">technical articles and papers</a>
and of the widely acclaimed books
<a class="reference external" href="http://www.gotw.ca/publications/xc++.htm">Exceptional C++</a>
and <a class="reference external" href="http://www.gotw.ca/publications/mxc++.htm">More Exceptional C++</a>,
he regularly gives invited talks at conferences around the world
and is available for
private <a class="reference external" href="http://www.gotw.ca/consulting.htm">training and mentoring</a>
for new and current corporate clients.</p>
<p>Please note that in order to accommodate the increased attendance, this
meeting will be held on <strong>Monday</strong> at the <strong>Overlake Medical Conference
Center</strong> rather than our usual Wednesday meeting at Avaya.</p>
</div>
October 8th, 2003 — Object-Oriented Multithreading in C++ — Bartosz Milewski2003-10-01T00:00:00-07:002003-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2003-10-01:/october-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Traditional procedural approach to thread programming is to create a
thread and pass it a function to execute. But a function operates on
data. The data is most likely shared with other threads. In the
object-oriented world data comes …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Traditional procedural approach to thread programming is to create a
thread and pass it a function to execute. But a function operates on
data. The data is most likely shared with other threads. In the
object-oriented world data comes first. You create an ActiveObject whose
state develops asynchronously. There is a captive thread inside an
Active Object, but it’s only an implementation detail.</p>
<p>I will describe a C++ implementation of Active Object using Windows <span class="caps">API</span>
and I will discuss multiple uses of ActiveObject in our own commercial
product, including various synchronization techniques.</p>
<p>A similar concept in Java is called the Runnable interface.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz Milewski is the author of C++ In Action, Industrial-Strength
Programming Techniques (Addison-Wesley, 2001). He is the founder of
Reliable Software (<a class="reference external" href="http://www.relisoft.com">www.relisoft.com</a>), a
Seattle-based company that makes a peer-to-peer version control system,
Code Co-op. He was one of the architects of the Microsoft Index Server.</p>
<p><a class="reference external" href="/talks/2003/Bartosz.zip">Click here</a>
to download the source code and slides from the presentation</p>
</div>
September 10th, 2003 — Thread Safe Object—Never Think About Thread Safety Again — David Brownell2003-09-01T00:00:00-07:002003-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2003-09-01:/september-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Ask any developer, and they will tell you that multithreaded programming is hard.
Very hard.
One staple of this difficult style of programming
is the effective and thorough use of mutexes and critical sections.
Unfortunately this technique can be …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Ask any developer, and they will tell you that multithreaded programming is hard.
Very hard.
One staple of this difficult style of programming
is the effective and thorough use of mutexes and critical sections.
Unfortunately this technique can be tedious and best and produce error
and race conditions at worst.
This presentation will introduce you to ThreadSafeObject,
a generic object that guarantees you will never have
to surround a variable or code with a mutex or critical section ever again.
We will cover generic programming, dive into the magic that
makes auto_ptr work, and discuss meta-programming techniques - the code
that makes an object change behavior at compile time based on type.
Use ThreadSafeObject, and never think about thread safety again!</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>David Brownell has been using C++ in a professional environment for the
past 5 years. Graduating with a <span class="caps">BSCS</span> from Seattle University in 1998,
David has worked on faxing applications, automated scripting utilities,
secure communications technologies, generic programming techniques, and
peer-to-peer applications. David currently works as a Software Engineer
at Orrtax Software in Bellevue, Washington and serves as president for
the Northwest C++ Users Group.</p>
<p><a class="reference external" href="/talks/2003/ThreadSafeObject.zip">Click here</a>
to download the source code and slides from the presentation</p>
</div>
August 2003: No Meeting2003-08-01T00:00:00-07:002003-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2003-08-01:/august-2003.htmlJuly 2003: No Meeting2003-07-01T00:00:00-07:002003-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2003-07-01:/july-2003.htmlJune 2003: No Meeting2003-06-01T00:00:00-07:002003-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2003-06-01:/june-2003.htmlMay 14th, 2003 — The Bizarro World of hetero_stack… — Eric Niebler2003-05-01T00:00:00-07:002003-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2003-05-01:/may-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><em>The Bizarro World of hetero_stack, or How I Learned to Stop Worrying
and Love <span class="caps">RTTI</span>, or Alignment, Exceptions and Type-Safety, Oh My! or
Subverting the C++ Type System for Fun and Profit.</em></p>
<p>hetero_stack is a dynamic replacement for the …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p><em>The Bizarro World of hetero_stack, or How I Learned to Stop Worrying
and Love <span class="caps">RTTI</span>, or Alignment, Exceptions and Type-Safety, Oh My! or
Subverting the C++ Type System for Fun and Profit.</em></p>
<p>hetero_stack is a dynamic replacement for the program stack. Push
anything! Pop anything! I’ll talk about how to make it work and how to
make it type-safe and exception-safe. (I might even say a few words
about why you might want to do such a thing.) We’ll cover alignment,
runtime time info and the strong exception guarantee, time permitting.
This talk assumes knowledge of templates and exceptions, but nothing too esoteric.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Eric Niebler studied Computer Science at the University of Virginia. He
spent several years in the Windows 2000 group at Microsoft before moving
to a development position at Microsoft Research in the Natural Language
Processing group. He is now a library developer in the Visual C++ group.
His interests include data structures and algorithms; compiler,
language, and library design; data serialization and persistence; and
pattern matching.</p>
<p><a class="reference external" href="/talks/2003/Slides200305.ppt">Click here</a>
to download the slides from the presentation</p>
</div>
April 9th, 2003 — New Features in Visual C++ .NET 2003 — Ed Dudenhoefer2003-04-01T00:00:00-08:002003-04-01T00:00:00-08:00nwcpptag:nwcpp.org,2003-04-01:/april-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>An overview of the newest version of Visual C++, codenamed Everett.
New features including the <span class="caps">IDE</span>, project system, forms designer, compiler,
debugger, conformance, security and library improvements are explained
or demonstrated. Tips and possible breaking changes will also be …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>An overview of the newest version of Visual C++, codenamed Everett.
New features including the <span class="caps">IDE</span>, project system, forms designer, compiler,
debugger, conformance, security and library improvements are explained
or demonstrated. Tips and possible breaking changes will also be noted.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Ed Dudenhoefer is a Program Manager on the Visual C++ team at Microsoft.
He is responsible for internal and external C++ developer community support
and product adoption.</p>
</div>
March 12th, 2003 — Resource Management in C++ — Bartosz Milewski2003-03-01T00:00:00-08:002003-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2003-03-01:/march-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Everybody knows the adage “Resource acquisition is initialization.”
Not many people know that this simple principle gave rise to the whole
methodology of Resource Management (<span class="caps">RM</span>).
Bartosz will try to convince us that <span class="caps">RM</span> is better than garbage collection …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Everybody knows the adage “Resource acquisition is initialization.”
Not many people know that this simple principle gave rise to the whole
methodology of Resource Management (<span class="caps">RM</span>).
Bartosz will try to convince us that <span class="caps">RM</span> is better than garbage collection.
He will describe auto_vector
— a simpler alternative to a vector of reference-counted smart pointers
(which will most likely become part of the new C++ Standard).
He will also talk about his personal favorite: using <span class="caps">RM</span> in Windows (non-<span class="caps">MFC</span>) programming.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz is the author of the book,
<a class="reference external" href="http://www.relisoft.com/book/">C++ In Action</a>,
published by Addison-Wesley in 2001.
He is also the <span class="caps">CEO</span> of Reliable Software <span class="caps">LLC</span>
(see his company website <a class="reference external" href="http://www.relisoft.com">www.relisoft.com</a>).</p>
</div>
February 12th, 2003 — Mojo — Andrei Alexandrescu2003-02-01T00:00:00-08:002003-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2003-02-01:/february-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Attend this talk to learn about Mojo, the new framework, library, and
coding guideline that enables you to pass and return values without
fearing that copying temporaries is going to ruin runtime performance or
your code review. Mojo guarantees …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Attend this talk to learn about Mojo, the new framework, library, and
coding guideline that enables you to pass and return values without
fearing that copying temporaries is going to ruin runtime performance or
your code review. Mojo guarantees that, if you follow a number of simple
rules when designing your classes, you will totally eliminate
unnecessary copying.</p>
<p>Learn about Mojo from its own creator for 90 fun and instructive
minutes. Mojo uses a cornucopia of interesting tricks and techniques
that are likely to make your day whether you use C++ (you’ll be happy
you can apply them) or other languages (you’ll be happy you can’t apply them).</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu is working on a graduate degree at the University of
Washington. He is the author of the acclaimed book Modern C++ Design.
Andrei is also a columnist for C/C++ Users Journal, a C++ former
columnist for the C++ Report, a speaker at numerous conferences, and one
of the featured instructors of The C++ Seminar
(<a class="reference external" href="http://www.gotw.ca/cpp_seminar">www.gotw.ca/cpp_seminar</a>).
His website is <a class="reference external" href="http://www.moderncppdesign.com">www.moderncppdesign.com</a>.</p>
</div>
January 8th, 2003 — Unit Testing — Asim Jalis2003-01-01T00:00:00-08:002003-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2003-01-01:/january-2003.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The talk will focus on C/C++ unit testing and test-driven development
using the CuTest library. CuTest is simple, portable, and follows the
JUnit look and feel in its output and <span class="caps">API</span>. The topics covered will include:</p>
<ul class="simple">
<li>Introduction to …</li></ul></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>The talk will focus on C/C++ unit testing and test-driven development
using the CuTest library. CuTest is simple, portable, and follows the
JUnit look and feel in its output and <span class="caps">API</span>. The topics covered will include:</p>
<ul class="simple">
<li>Introduction to Test Driven Development (<span class="caps">TDD</span>)</li>
<li>Demo of using <span class="caps">TDD</span> to write C/C++ code</li>
<li>Comparison of CuTest with other C/C++ unit testing frameworks</li>
<li>Some testing ideas and techniques</li>
<li>How to test exhaustively using tables</li>
<li>How to leverage traditional assert()’s with unit tests</li>
<li>How to unit test system calls and <span class="caps">GUI</span> code</li>
<li>Open discussion on testing ideas and problems</li>
</ul>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Asim Jalis is a software engineer at Hewlett-Packard Company. He is
currently working on web services management software, which is
primarily in C# and also uses C/C++, Java and Perl. He is deeply
interested in test driven development and ways of making this easier and
more effective. He is the author of CuTest, a unit testing framework for C,
and Test::Extreme, a unit testing framework for Perl.</p>
</div>
20022002-12-31T00:00:00-08:002002-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2002-12-31:/2002-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2002.html">January 9th, 2002 — Inter-Process Communications Using Shared Memory — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2002.html">February 13th, 2002 — Visual C++ .<span class="caps">NET</span> — Christian Harlass</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2002.html">March 13th, 2002 — Schism++: How Microsoft Proposes to Bridge the Gap Between <span class="caps">ANSI</span> C++ and the ‘Managed C++’ of .<span class="caps">NET</span> — Matthew Griscom</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2002.html">April 10th, 2002 — Honey, I Shrunk the Threads: Compile-time checked …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2002.html">January 9th, 2002 — Inter-Process Communications Using Shared Memory — Bartosz Milewski</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2002.html">February 13th, 2002 — Visual C++ .<span class="caps">NET</span> — Christian Harlass</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2002.html">March 13th, 2002 — Schism++: How Microsoft Proposes to Bridge the Gap Between <span class="caps">ANSI</span> C++ and the ‘Managed C++’ of .<span class="caps">NET</span> — Matthew Griscom</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2002.html">April 10th, 2002 — Honey, I Shrunk the Threads: Compile-time checked multithreaded transactions in C++ — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2002.html">May 8th, 2002 — Embedded C++ : An Overview — Robert Blumberg</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2002.html">June 2002: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2002.html">July 2002: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2002.html">August 2002: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2002.html">September 18th, 2002 — Understanding templates as a form of weak typing — Bruce Eckel</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2002.html">October 9th, 2002 — C++ Features to Beware of Today, and to Anticipate in C++ 0x — Herb Sutter</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2002.html">November 13th, 2002 — C++ Techniques for Tomorrow That Can be Implemented Today (aka Boosting your Code) — David Brownell</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2002.html">December 2002: No Meeting</a></p>
December 2002: No Meeting2002-12-01T00:00:00-08:002002-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2002-12-01:/december-2002.htmlNovember 13th, 2002 — C++ Techniques for Tomorrow That Can be Implemented Today (aka Boosting your Code) — David Brownell2002-11-01T00:00:00-08:002002-11-01T00:00:00-08:00nwcpptag:nwcpp.org,2002-11-01:/november-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This presentation will illustrate techniques to ensure code correctness
at compile time, extend the <span class="caps">STL</span>, and enhance C++ using the freely
available and portable boost libraries,
<a class="reference external" href="http://www.boost.org">www.boost.org</a>. Beginning with brief overviews
of the boost organization and the …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This presentation will illustrate techniques to ensure code correctness
at compile time, extend the <span class="caps">STL</span>, and enhance C++ using the freely
available and portable boost libraries,
<a class="reference external" href="http://www.boost.org">www.boost.org</a>. Beginning with brief overviews
of the boost organization and the boost libraries, we will then explore
ten specific boost libraries, covering the why’s, what’s, and how’s
behind the concepts that enable all three of the techniques listed above.</p>
<p>This presentation assumes familiarity with C++ templates.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>David Brownell has been using C++ in a professional environment for the
past 5 years. Graduating with a <span class="caps">BSCS</span> from Seattle University in 1998,
David has worked on faxing applications, automated scripting utilities,
secure communications technologies, generic programming techniques, and
peer-to-peer applications. David currently works as a Software Engineer
at Aegis Design in Seattle, Washington.</p>
<p><a class="reference external" href="/talks/2002/BoostPresentation.zip">Click here</a>
to download the slides and source code from the presentation</p>
</div>
October 9th, 2002 — C++ Features to Beware of Today, and to Anticipate in C++ 0x — Herb Sutter2002-10-01T00:00:00-07:002002-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2002-10-01:/october-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>From exception specifications to export, from typedef templates to
typeof to delegating constructors, this talk analyzes current C++
features that you should use with care if at all, and important new
C++0x language features coming soon to a …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>From exception specifications to export, from typedef templates to
typeof to delegating constructors, this talk analyzes current C++
features that you should use with care if at all, and important new
C++0x language features coming soon to a compiler near you. It shows why
the features are useful, where they have areas or effects that can be
dangerous or result in unintended effects, what kinds of coding idioms
and techniques they make possible, when you can expect them to be stable
in shipping compilers, who the people and companies behind them are, and
how you can use them safely and effectively.</p>
<p>Talk first given at <a class="reference external" href="http://www.thecppseminar.com">The C++ Seminar</a></p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Herb Sutter is conveyor and secretary, respectively, of the <a class="reference external" href="http://std.dkuug.dk/jtc1/sc22/wg21/"><span class="caps">ISO</span> and
<span class="caps">ANSI</span> C++ standards committees</a>,
contributing editor and columnist for <a class="reference external" href="http://www.cuj.com">C/C++ Users Journal
(<span class="caps">CUJ</span>)</a>, C++ community liaison for Microsoft, and
former editor-in-chief of C++ Report. He is also the author of more than
150 <a class="reference external" href="http://www.gotw.ca/publications/index.htm">technical articles</a>
and of the widely acclaimed books Exceptional C++, More Exceptional C++,
and the forthcoming titles C++ Coding Standards (with Andrei
Alexandrescu) and Exceptional C++ Style.</p>
</div>
September 18th, 2002 — Understanding templates as a form of weak typing — Bruce Eckel2002-09-01T00:00:00-07:002002-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2002-09-01:/september-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>As I learned the Python programming language (see
<a class="reference external" href="http://www.python.org">www.Python.org</a>), I began to understand the
concept of weak/latent typing (which the Smalltalk programmers are so
fond of). At first, this seems like a very heretical and dangerous …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>As I learned the Python programming language (see
<a class="reference external" href="http://www.python.org">www.Python.org</a>), I began to understand the
concept of weak/latent typing (which the Smalltalk programmers are so
fond of). At first, this seems like a very heretical and dangerous
approach, but with time I not only began to see how powerful it is, but
also to understand C++ templates in terms of weak typing. I found this
gave me a much deeper understanding of the value and use of templates.
In this talk, I will introduce the Python language and the concept of
weak typing, and I will show C++ templates in the same light. You should
come away with a deeper grasp of templates and where they can be put to use.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bruce Eckel (<a class="reference external" href="http://www.bruceeckel.com">www.BruceEckel.com</a>) is the
author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000), the
Hands-On Java Seminar <span class="caps">CD</span> <span class="caps">ROM</span> (available on the Web site), Thinking in
C++ (<span class="caps">PH</span> 1995; 2nd edition 2000), C++ Inside <span class="amp">&</span> Out (Osborne/McGraw-Hill
1993), among others. He’s given hundreds of presentations throughout the
world, published over 150 articles in numerous magazines, was a founding
member of the <span class="caps">ANSI</span>/<span class="caps">ISO</span> C++ committee and speaks regularly at
conferences. He provides public and private seminars <span class="amp">&</span> design consulting
in C++ and Java.</p>
</div>
August 2002: No Meeting2002-08-01T00:00:00-07:002002-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2002-08-01:/august-2002.htmlJuly 2002: No Meeting2002-07-01T00:00:00-07:002002-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2002-07-01:/july-2002.htmlJune 2002: No Meeting2002-06-01T00:00:00-07:002002-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2002-06-01:/june-2002.htmlMay 8th, 2002 — Embedded C++ : An Overview — Robert Blumberg2002-05-01T00:00:00-07:002002-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2002-05-01:/may-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk sets out many of the parameters that are recurrent when
programming small- to moderately-sized embedded systems in C++. It then
delves into C++ techniques to work within the resource-limited,
cost-sensitive, required-robustness confines of embedded systems. These
techniques …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk sets out many of the parameters that are recurrent when
programming small- to moderately-sized embedded systems in C++. It then
delves into C++ techniques to work within the resource-limited,
cost-sensitive, required-robustness confines of embedded systems. These
techniques are also useful when building <span class="caps">PC</span> applications.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Robert Blumberg has over 35 years of programming experience, having
started by programming on <span class="caps">IBM</span> 7090 mainframes. As an executive, he has
been the director of Engineering at Bitstream and a <span class="caps">VP</span> of a speech
recognition company among other posts. However, he really enjoys
throwing C++ code, which he has been doing as a freelance programmer for
the last fifteen years or so, mostly for embedded systems and drivers.
Among other projects, he designed and coded the kernel, drivers and
coin-movement software for Coinstar’s big green coin-counting machines
often found in super markets.</p>
</div>
April 10th, 2002 — Honey, I Shrunk the Threads: Compile-time checked multithreaded transactions in C++ — Andrei Alexandrescu2002-04-01T00:00:00-08:002002-04-01T00:00:00-08:00nwcpptag:nwcpp.org,2002-04-01:/april-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk presents a couple of new, safe idioms that bring order in your
C++ multithreaded programs. We will cover three idioms for single-object
transactions and two idioms for multi-object transactions, with
examples. Warning: This talk is rated R …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk presents a couple of new, safe idioms that bring order in your
C++ multithreaded programs. We will cover three idioms for single-object
transactions and two idioms for multi-object transactions, with
examples. Warning: This talk is rated R for (C++) language abuse,
violence (of debate), and subliminal content.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei is a world-class expert in software development using C++. In the
C++ community, he is best known for his book, Modern C++ Design (Addison
Wesley, 2001). Also, Andrei is a former columnist for the C++ Report, a
columnist for C/C++ Users Journal, and a sought-after speaker at
conferences worldwide.</p>
<p>After working in large-scale projects ranging from financial software on
Wall Street to networking software to user interfaces, Andrei is
pursuing a Ph.D. in Computer Science at University of Washington.</p>
</div>
March 13th, 2002 — Schism++: How Microsoft Proposes to Bridge the Gap Between ANSI C++ and the ‘Managed C++’ of .NET — Matthew Griscom2002-03-01T00:00:00-08:002002-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2002-03-01:/march-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft Visual Studio 7 .<span class="caps">NET</span> has shipped with improved support for
<span class="caps">ANSI</span> C++. The whole .<span class="caps">NET</span> aspect of this tool, discussed extensively in
this and other forums, is radically new and at first blush is
incompatible with <span class="caps">ANSI</span> C …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft Visual Studio 7 .<span class="caps">NET</span> has shipped with improved support for
<span class="caps">ANSI</span> C++. The whole .<span class="caps">NET</span> aspect of this tool, discussed extensively in
this and other forums, is radically new and at first blush is
incompatible with <span class="caps">ANSI</span> C++, native code <span class="caps">COM</span> objects, etc. This talk will
address some of the aspects of how Microsoft proposes to bridge the gap
between existing source code, <span class="caps">COM</span> objects, etc. and executables using
the new suite of .<span class="caps">NET</span> technologies, in particular using the ‘Managed
C++’ syntax.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Matthew Griscom has coded medical communications protocols, database
integrity tools, a multi-user database engine, <span class="caps">XSL</span>-driven web pages, you
name it, for both Unix and Windows. Now, if only one of the cosmonauts
on the Space Station would push the button to use the connectivity
software he designed and wrote, that would be sincerely cool… Matt’s
been dot-bombed and is looking for C++ and .<span class="caps">NET</span> work in greater Seattle.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2002/Meeting_2002-03.zip">Click here</a>
to download the slides and source code from the presentation</p>
</div>
February 13th, 2002 — Visual C++ .NET — Christian Harlass2002-02-01T00:00:00-08:002002-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2002-02-01:/february-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft Visual Studio .<span class="caps">NET</span> will ship in the coming weeks (at least
they say so) and everybody is talking about C#, <span class="caps">VB</span>, <span class="caps">ASP</span>, and <span class="caps">ADO</span>. What
about C++? How does it fit with new technologies? We will explore a …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Microsoft Visual Studio .<span class="caps">NET</span> will ship in the coming weeks (at least
they say so) and everybody is talking about C#, <span class="caps">VB</span>, <span class="caps">ASP</span>, and <span class="caps">ADO</span>. What
about C++? How does it fit with new technologies? We will explore a
closer look at the new features of the compiler, the C Run-Time, and
three other libraries, namely <span class="caps">STL</span>, <span class="caps">MFC</span> and <span class="caps">ATL</span>.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Christian has come a long way from <span class="caps">DOS</span> to Unix and now to <span class="caps">MS</span> Windows (as
well as from Germany to Seattle!). Currently he works for Saxonia
Systems, a software consulting company based out of Dresden, Germany.
Besides his duties heading up Saxonia’s <span class="caps">U.S.</span> consulting division in C++
programming, he is constantly keeping an eye on the market for new and
useful programming tools.</p>
</div>
<div class="section" id="resources">
<h2>Resources</h2>
<p><a class="reference external" href="/talks/2002/VC7Demo.zip">Click here</a> to download the source code from the presentation</p>
</div>
January 9th, 2002 — Inter-Process Communications Using Shared Memory — Bartosz Milewski2002-01-01T00:00:00-08:002002-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2002-01-01:/january-2002.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>You are stranded on a desert island. All you have is a piece of shared
memory and a waitable timer. You are supposed to implement robust
inter-process communications in C++. Bartosz will explain the concept of
shared memory in …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>You are stranded on a desert island. All you have is a piece of shared
memory and a waitable timer. You are supposed to implement robust
inter-process communications in C++. Bartosz will explain the concept of
shared memory in Win32 and its use in establishing a protocol for data
exchange between processes. It’s better than <span class="caps">DDE</span> and simpler than <span class="caps">COM</span>.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bartosz is the author of C++ In Action, Industrial Strength Programming
Techniques, published by Addison-Wesley in 2001. During his years at
Microsoft he worked on several projects involving various aspects of
operating systems. He ported the Mach <span class="caps">OS</span> virtual memory system to the
x86 platform, took part in the development of the <span class="caps">HPFS</span> and <span class="caps">OFS</span> file
systems, was the architect and development lead of the Windows 2000
content index. He is now the president of Reliable Software, a
distributed software company.</p>
</div>
20012001-12-31T00:00:00-08:002001-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2001-12-31:/2001-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2001.html">January 8th–9th, 2001 — Microsoft’s .<span class="caps">NET</span> Initiative — Jeffrey Richter</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2001.html">February 15th, 2001 — Volatile - Multithreaded Programmer’s Best Friend — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2001.html">March 14th, 2001 — <span class="caps">XML</span> and C++ — Mike Moskowitz</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2001.html">April 11th, 2001 — <span class="caps">CPP</span>-Unit Testing Framework — Troy Frever</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2001.html">May 7th, 2001 — Effective <span class="caps">STL</span> Sneak Preview — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2001.html">June 13th, 2001 …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2001.html">January 8th–9th, 2001 — Microsoft’s .<span class="caps">NET</span> Initiative — Jeffrey Richter</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2001.html">February 15th, 2001 — Volatile - Multithreaded Programmer’s Best Friend — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2001.html">March 14th, 2001 — <span class="caps">XML</span> and C++ — Mike Moskowitz</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2001.html">April 11th, 2001 — <span class="caps">CPP</span>-Unit Testing Framework — Troy Frever</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2001.html">May 7th, 2001 — Effective <span class="caps">STL</span> Sneak Preview — Scott Meyers</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2001.html">June 13th, 2001 — Less is More—or How to Get More Bang for Your Code — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2001.html">July 2001: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2001.html">August 2001: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2001.html">September 2001: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2001.html">October 8th, 2001 — Inside the .<span class="caps">NET</span> Framework — Paul Johns, aka <span class="caps">MSDN</span>’s “Dr. <span class="caps">GUI</span>”</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2001.html">November 14th, 2001 — <span class="caps">JNI</span>: How to use Java and C++ together — Christian Harlass</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2001.html">December 12th, 2001 — A C++ Programmer’s Introduction to C# — Mike Moskowitz</a></p>
December 12th, 2001 — A C++ Programmer’s Introduction to C# — Mike Moskowitz2001-12-01T00:00:00-08:002001-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2001-12-01:/december-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
November 14th, 2001 — JNI: How to use Java and C++ together — Christian Harlass2001-11-01T00:00:00-08:002001-11-01T00:00:00-08:00nwcpptag:nwcpp.org,2001-11-01:/november-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Christian Harlass works with Saxonia Systems, an international
consulting company based in Germany. He works as a software developer
and project manager in a Unix, Mac and Windows environment. The idea for
this presentation comes from his project experiences …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Christian Harlass works with Saxonia Systems, an international
consulting company based in Germany. He works as a software developer
and project manager in a Unix, Mac and Windows environment. The idea for
this presentation comes from his project experiences with creating a
portable application with a Java <span class="caps">GUI</span> and a C++ core.</p>
</div>
October 8th, 2001 — Inside the .NET Framework — Paul Johns, aka MSDN’s “Dr. GUI”2001-10-01T00:00:00-07:002001-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2001-10-01:/october-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Overlake Hospital Educational Conference Center</div>
<div class="line">1035 116th Avenue <span class="caps">NE</span></div>
<div class="line">Room A</div>
<div class="line">Bellevue, <span class="caps">WA</span></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We’re very fortunate to have <span class="caps">MSDN</span>’s Dr. <span class="caps">GUI</span>, the always entertaining,
often irreverent, generally accurate source of knowledge of all things
.<span class="caps">NET</span>, come to speak to us in October. If you haven’t …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Overlake Hospital Educational Conference Center</div>
<div class="line">1035 116th Avenue <span class="caps">NE</span></div>
<div class="line">Room A</div>
<div class="line">Bellevue, <span class="caps">WA</span></div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We’re very fortunate to have <span class="caps">MSDN</span>’s Dr. <span class="caps">GUI</span>, the always entertaining,
often irreverent, generally accurate source of knowledge of all things
.<span class="caps">NET</span>, come to speak to us in October. If you haven’t started working
with .<span class="caps">NET</span>, this will be a great introduction to the .<span class="caps">NET</span> framework,
techniques and tools. If you have been working with .<span class="caps">NET</span>, you can ask
your questions (and perhaps get answers to them) without having to wait
for Dr. <span class="caps">GUI</span>’s next column.</p>
<p>Paul has written Dr. <span class="caps">GUI</span> for over five years now. In addition to the
bi-monthly question and answer column in the <span class="caps">MSDN</span> Developer News
newspaper, Dr. <span class="caps">GUI</span> has a weekly online question and answer column and a
more-or-less monthly .<span class="caps">NET</span> column called Dr. <span class="caps">GUI</span>.<span class="caps">NET</span>.</p>
<p>For a preview of this meeting’s content, see the online presentation.</p>
<p>This is a joint meeting of the Northwest C++ User’s Group and The <span class="caps">WSA</span>
DevSIG (Developer’s <span class="caps">SIG</span>) — formerly known as WinSIG (Window’s
Developer’s <span class="caps">SIG</span>).</p>
</div>
September 2001: No Meeting2001-09-01T00:00:00-07:002001-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2001-09-01:/september-2001.htmlAugust 2001: No Meeting2001-08-01T00:00:00-07:002001-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2001-08-01:/august-2001.htmlJuly 2001: No Meeting2001-07-01T00:00:00-07:002001-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2001-07-01:/july-2001.htmlJune 13th, 2001 — Less is More—or How to Get More Bang for Your Code — Andrei Alexandrescu2001-06-01T00:00:00-07:002001-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2001-06-01:/june-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>If you are tired of writing code, this talk is for you. The scam of the
century - how to get more behavior with less code - will unveil under
your incredulous eyes. Like in those pyramid schemes, a linear
code-writing …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>If you are tired of writing code, this talk is for you. The scam of the
century - how to get more behavior with less code - will unveil under
your incredulous eyes. Like in those pyramid schemes, a linear
code-writing investment will bring you quick exponential returns. But
this time it’s for real. We’ll experience that with a real-world
example: 12 (t-w-e-l-v-e) industry-strength implementations of the
popular standard string, std::basic_string, in a very compact
presentation. Better yet, you can add your pet implementation,
optimization, or feature with ease. Even better, the code compiles with
the compiler produced by a software company near you. Which, you have to
admit, makes the whole thing as real-world as it gets. Disclaimer:
Motion sickness bags not provided. Attendance is at your own risk.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu is a Development Manager at RealNetworks Inc., based
in Seattle, <span class="caps">WA</span>, and author of the acclaimed book Modern C++ Design. He
may be contacted at <a class="reference external" href="mailto:andrei@metalanguage.com">andrei@metalanguage.com</a>. Andrei is also a columnist
for C/C++ Users Journal and one of the featured instructors of
<a class="reference external" href="http://www.gotw.ca/cpp_seminar">The C++ Seminar</a>.</p>
</div>
May 7th, 2001 — Effective STL Sneak Preview — Scott Meyers2001-05-01T00:00:00-07:002001-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2001-05-01:/may-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Overlake Hospital Conference Center</div>
<div class="line">121 107th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We are very fortunate to have Scott Meyers come to speak with us this
month. Scott of course is the author of “Effective C++” and “More
Effective C++”, generally acclaimed as two of the most important books
ever written …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Overlake Hospital Conference Center</div>
<div class="line">121 107th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>We are very fortunate to have Scott Meyers come to speak with us this
month. Scott of course is the author of “Effective C++” and “More
Effective C++”, generally acclaimed as two of the most important books
ever written about C++. Every C++ developer should be familiar with
these books. Scott is a highly sought-after speaker and we are grateful
that he has come to speak to us.</p>
<p>Our meeting will be a world-premiere of Scott’s material on <span class="caps">STL</span> (the
standard template library)!</p>
<p>Scott’s description of his talk, presented verbatim:
“For the past 18 months, Scott Meyers has been exploring the <span class="caps">STL</span>, and
on April 30 he sends to his publisher the results of his efforts, the
new book, Effective <span class="caps">STL</span>: 50 Specific Ways to Improve Your Use of the
Standard Template Library. In this talk, Scott presents two or three
Items from this new book, items that focus on material not usually
covered in descriptions of the <span class="caps">STL</span>. He also hands out flyers for the new
book and urges everyone to buy their usual minimum of three copies: one
for the office, one for home, and one for each of your cars (for when
you’re stuck in traffic).”</p>
</div>
April 11th, 2001 — CPP-Unit Testing Framework — Troy Frever2001-04-01T00:00:00-08:002001-04-01T00:00:00-08:00nwcpptag:nwcpp.org,2001-04-01:/april-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A unit testing framework simplifies the creation of a test suite for a
software project. It encourages the programmer to write the tests along
with the code and to run the suite often for verification of code
changes. Troy …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>A unit testing framework simplifies the creation of a test suite for a
software project. It encourages the programmer to write the tests along
with the code and to run the suite often for verification of code
changes. Troy Frever will review a C++ framework and report on how it
has been used at Cisco Systems/Active Voice.</p>
<p><span class="caps">CPP</span>-Unit is available from the following sites:</p>
<ul class="simple">
<li><a class="reference external" href="http://www.xprogramming.com/software.htm">http://www.xprogramming.com/software.htm</a></li>
<li><a class="reference external" href="http://sourceforge.net/projects/cppunit/">http://sourceforge.net/projects/cppunit/</a></li>
</ul>
<p>Unit testing is a key component of the Extreme Programming Methodology
covered by the following sites:</p>
<ul class="simple">
<li><a class="reference external" href="http://www.xprogramming.com/">http://www.xprogramming.com/</a></li>
<li><a class="reference external" href="http://www.extremeprogramming.org/">http://www.extremeprogramming.org/</a></li>
<li><a class="reference external" href="http://groups.yahoo.com/group/extremeprogramming-seattle">http://groups.yahoo.com/group/extremeprogramming-seattle</a></li>
</ul>
<p>Recommended book: Martin Fowler’s “Refactoring: Improving the Design of
Existing Code”.</p>
</div>
March 14th, 2001 — XML and C++ — Mike Moskowitz2001-03-01T00:00:00-08:002001-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2001-03-01:/march-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Note: If you attended the <span class="caps">WSA</span> Developer’s Seminar on <span class="caps">XML</span>, you know that
Mike gave a great presentation on <span class="caps">XML</span>. But, he didn’t talk about C++.</p>
</div>
February 15th, 2001 — Volatile - Multithreaded Programmer’s Best Friend — Andrei Alexandrescu2001-02-01T00:00:00-08:002001-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2001-02-01:/february-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Wouldn’t it be great if you could have the compiler help you navigate
the murky waters of multithreaded programming? This talk delves into the
under explored issue of volatile-correctness. The exciting discovery is
- if you follow a couple …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Wouldn’t it be great if you could have the compiler help you navigate
the murky waters of multithreaded programming? This talk delves into the
under explored issue of volatile-correctness. The exciting discovery is
- if you follow a couple of simple rules in conjunction with the
volatile keyword, you can transform all race conditions into
compile-time errors.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu is a Development Manager with RealNetworks, Inc. He
is a former columnist of the C++ Report magazine, and a columnist of
C/C++ Users Journal. You can reach him at
<a class="reference external" href="mailto:andrei@metalanguage.com">andrei@metalanguage.com</a>.</p>
</div>
January 8th–9th, 2001 — Microsoft’s .NET Initiative — Jeffrey Richter2001-01-01T00:00:00-08:002001-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2001-01-01:/january-2001.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Overlake Hospital Conference Center</div>
<div class="line">121 107th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue, <span class="caps">WA</span></div>
</div>
<p><span class="caps">NOTE</span>: The Overlake Hospital Conference Center is off Old Main Street and
107th in Bellevue, not at the hospital itself. Take Main Street and turn
North onto 107th, conference center will be on your left.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This is a …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line">Overlake Hospital Conference Center</div>
<div class="line">121 107th Ave <span class="caps">NE</span></div>
<div class="line">Bellevue, <span class="caps">WA</span></div>
</div>
<p><span class="caps">NOTE</span>: The Overlake Hospital Conference Center is off Old Main Street and
107th in Bellevue, not at the hospital itself. Take Main Street and turn
North onto 107th, conference center will be on your left.</p>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This is a very special, 2-day meeting that we are co-hosting with the
Windows Developer’s <span class="caps">SIG</span> of the Washington Software Alliance. Please try
to attend both days.</p>
<p>We are very fortunate to have this free presentation from Jeffrey, who
is in great demand as a .<span class="caps">NET</span> and Windows development expert. If you
attend only one meeting this year, make it this one.</p>
<p>Microsoft .<span class="caps">NET</span> is a radical new computing platform that promises to
change software development as we know it. Programmers who embrace .<span class="caps">NET</span>
will no longer write to the Windows <span class="caps">API</span> or rely upon tried-and-true
tools such as <span class="caps">MFC</span> and <span class="caps">ATL</span>. Instead, they’ll target a framework called
the .<span class="caps">NET</span> Base Class Library (<span class="caps">BCL</span>), and a significant percentage of them
will use a new language, C#, to craft their wares. .<span class="caps">NET</span> compilers won’t
produce native machine code as today’s compilers do; instead, they’ll
generate a pseudo-machine code called Intermediate Language (<span class="caps">IL</span>) that’s
executed by the .<span class="caps">NET</span> run-time. This new programming paradigm will
simplify the Windows programming model and make Web applications easier
to write than ever before. And it will enable a new generation of
software that runs on every conceivable type of computing device, from
the most powerful Web server to the lowliest hand-held <span class="caps">PC</span>.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Jeffrey Richter is the author of Microsoft Press’ “Programming
Applications for Microsoft Windows” and M <span class="amp">&</span> T’s “Windows 95: A
Developer’s Guide,” two of the bibles of Windows development. His newest
book, “Programming Server-Side Applications for Windows 2000,” was
published by Microsoft Press in 2000.</p>
<p>Jeffrey is also a frequent contributor to Microsoft’s <span class="caps">MSDN</span> Magazine
(formerly called <span class="caps">MSJ</span>) and other trade publications, and is <span class="caps">MSDN</span>’s Win32
columnist. More info on Jeffrey at
<a class="reference external" href="http://www.jeffreyrichter.com">http://www.jeffreyrichter.com</a>.</p>
<p>Jeffrey Richter, Jeff Prosise and John Robbins have recently combined
forces to created Wintellect, which will no doubt become the preeminent
training and consulting organization of its kind. Jeffrey’s presentation
to us comes from material he’s developed for Wintellect courses. More
information at <a class="reference external" href="http://www.wintellect.com">http://www.wintellect.com</a>.</p>
</div>
20002000-12-31T00:00:00-08:002000-12-31T00:00:00-08:00George Reillytag:nwcpp.org,2000-12-31:/2000-summary.html<p><a class="reference external" href="http://nwcpp.org/january-2000.html">January 2000: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2000.html">February 15th, 2000 — Datatypes++, A C++ Class Library for Windows — Tom Dowdell</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2000.html">March 8th, 2000 — Real-World Class Design — Mark Wiseman</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2000.html">April 12th, 2000 — Testing Object-Oriented Software — Steve Tockey</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2000.html">May 10th, 2000 — C++ Exceptions — Bobby Schmidt</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2000.html">June 2000: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2000.html">July 2000: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2000.html">August 9th, 2000 …</a></p><p><a class="reference external" href="http://nwcpp.org/january-2000.html">January 2000: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/february-2000.html">February 15th, 2000 — Datatypes++, A C++ Class Library for Windows — Tom Dowdell</a></p>
<p><a class="reference external" href="http://nwcpp.org/march-2000.html">March 8th, 2000 — Real-World Class Design — Mark Wiseman</a></p>
<p><a class="reference external" href="http://nwcpp.org/april-2000.html">April 12th, 2000 — Testing Object-Oriented Software — Steve Tockey</a></p>
<p><a class="reference external" href="http://nwcpp.org/may-2000.html">May 10th, 2000 — C++ Exceptions — Bobby Schmidt</a></p>
<p><a class="reference external" href="http://nwcpp.org/june-2000.html">June 2000: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/july-2000.html">July 2000: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/august-2000.html">August 9th, 2000 — Building a High Performance Server Product on Win <span class="caps">NT</span>/2000 Using C/C++ — Chris Hickman <span class="amp">&</span> Joe Mullally</a></p>
<p><a class="reference external" href="http://nwcpp.org/september-2000.html">September 13th, 2000 — Change the Way You Write Exception-Safe Code, Forever — Andrei Alexandrescu</a></p>
<p><a class="reference external" href="http://nwcpp.org/october-2000.html">October 2000: No Meeting</a></p>
<p><a class="reference external" href="http://nwcpp.org/november-2000.html">November 13th, 2000 — Microsoft Visual Studio 7 Preview — Martyn Lovell</a></p>
<p><a class="reference external" href="http://nwcpp.org/december-2000.html">December 2000: No Meeting</a></p>
December 2000: No Meeting2000-12-01T00:00:00-08:002000-12-01T00:00:00-08:00nwcpptag:nwcpp.org,2000-12-01:/december-2000.htmlNovember 13th, 2000 — Microsoft Visual Studio 7 Preview — Martyn Lovell2000-11-01T00:00:00-08:002000-11-01T00:00:00-08:00nwcpptag:nwcpp.org,2000-11-01:/november-2000.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Visual Studio 7 is due to be launched early next year, and is
Microsoft’s first real deliverable in their .<span class="caps">NET</span> initiative. Martyn
Lovell of Microsoft will give a preview of Visual Studio 7,
concentrating on C# and <span class="caps">ASP …</span></p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Visual Studio 7 is due to be launched early next year, and is
Microsoft’s first real deliverable in their .<span class="caps">NET</span> initiative. Martyn
Lovell of Microsoft will give a preview of Visual Studio 7,
concentrating on C# and <span class="caps">ASP</span>+.</p>
</div>
October 2000: No Meeting2000-10-01T00:00:00-07:002000-10-01T00:00:00-07:00nwcpptag:nwcpp.org,2000-10-01:/october-2000.htmlSeptember 13th, 2000 — Change the Way You Write Exception-Safe Code, Forever — Andrei Alexandrescu2000-09-01T00:00:00-07:002000-09-01T00:00:00-07:00nwcpptag:nwcpp.org,2000-09-01:/september-2000.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk presents the subtle issues associated with writing correct
code in the presence of exceptions. Writing exception-safe code is a
must for preserving the sanity of any application. This task is daunting
because exceptions introduce hidden control flows …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This talk presents the subtle issues associated with writing correct
code in the presence of exceptions. Writing exception-safe code is a
must for preserving the sanity of any application. This task is daunting
because exceptions introduce hidden control flows and require a modified
way of thinking. Several approaches to exception safety are discussed on
a concrete example, with their advantages and drawbacks. In the end an
useful helper class template ScopeGuard is introduced, that enables you
to write exception-safe code that’s terse, easy to understand, and easy
to maintain.</p>
<p>“I presented this to someone who hadn’t worked with exceptions, and in
the end he said: ‘Cool. Exceptions are not hard, supporting them is
trivial. Do they all do it this way?’ He was surprised to hear that most
programmers do it the hard way and that ScopeGuard is cutting-edge.”</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Andrei Alexandrescu is a Development Manager with RealNetworks, Inc. He
is a former columnist of the C++ Report magazine, and a columnist of
C/C++ Users Journal. You can reach him at <a class="reference external" href="mailto:andrei@metalanguage.com">andrei@metalanguage.com</a>.</p>
</div>
August 9th, 2000 — Building a High Performance Server Product on Win NT/2000 Using C/C++ — Chris Hickman & Joe Mullally2000-08-01T00:00:00-07:002000-08-01T00:00:00-07:00nwcpptag:nwcpp.org,2000-08-01:/august-2000.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Joe will start by talking about building a high performance server
product on Win <span class="caps">NT</span>/2000 using C/C++. Specifically:</p>
<ul class="simple">
<li>I/O Completion Ports</li>
<li>Object and Context Pooling</li>
<li>Protocol and Error Mapping</li>
<li>When and How to use Spinlock vs …</li></ul></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Joe will start by talking about building a high performance server
product on Win <span class="caps">NT</span>/2000 using C/C++. Specifically:</p>
<ul class="simple">
<li>I/O Completion Ports</li>
<li>Object and Context Pooling</li>
<li>Protocol and Error Mapping</li>
<li>When and How to use Spinlock vs Interlocks</li>
<li>Efficient Loops</li>
<li>Aligning Structs</li>
</ul>
<p>Chris will then finish with a talk about Viathan Corporation and a
software demo. Jeff and Chris will then take some time to answer questions.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Chris Hickman, <span class="caps">CTO</span> and co-founder of Viathan Corporation, oversees the
technical direction of the company, including new product advances and
the development and test processes. Prior to founding Viathan, Chris
worked for Microsoft’s Interactive Media Group where he developed core
Internet technologies for the Microsoft Network. As a lead server
developer, he was responsible for design, architecture and
implementation of a storage system for Web-scale applications. He helped
ship two versions of the Microsoft Network and filed for four patents
relating to storage technologies. Prior to Microsoft, Chris spent
several years at Motorola as a software engineer. He was a technical
lead on a software project that developed a suite of Web applications
still used by engineers to facilitate communication and collaboration.</p>
<p>Joe Mullally, Software Development Manager, Viathan Corporation,
is responsible for managing the development process at Viathan including
the design, development, and development resource allocation for
Viathan’s distributed data architecture. Prior to joining Viathan, Joe
worked at Microsoft’s Internet group developing large scale Internet
data services. Most recently, Joe shipped the first releases of
Microsoft Passport, Microsoft’s e-commerce and Web authentication
service. Prior to Microsoft, Joe worked as a Senior Software Engineer at
<span class="caps">AVT</span> Corporation.</p>
</div>
July 2000: No Meeting2000-07-01T00:00:00-07:002000-07-01T00:00:00-07:00nwcpptag:nwcpp.org,2000-07-01:/july-2000.htmlJune 2000: No Meeting2000-06-01T00:00:00-07:002000-06-01T00:00:00-07:00nwcpptag:nwcpp.org,2000-06-01:/june-2000.htmlMay 10th, 2000 — C++ Exceptions — Bobby Schmidt2000-05-01T00:00:00-07:002000-05-01T00:00:00-07:00nwcpptag:nwcpp.org,2000-05-01:/may-2000.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Overview of C++ exceptions, their rationale, and their usage. Followed
with discussion of standard library support, exception safety
considerations, and comparison with Microsoft’s <span class="caps">SEH</span>. Exception “gotchas”
and wisdom sprinkled throughout :^) Talk assumes you understand the
rudiments of C …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Overview of C++ exceptions, their rationale, and their usage. Followed
with discussion of standard library support, exception safety
considerations, and comparison with Microsoft’s <span class="caps">SEH</span>. Exception “gotchas”
and wisdom sprinkled throughout :^) Talk assumes you understand the
rudiments of C++ exception handling.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Bobby Schmidt is a writer, teacher, and programmer. For the past five
years, he’s been Contributing Editor and monthly columnist for the
“C/C++ Users Journal.” He also writes the twice-monthly “Deep C++”
column for “<span class="caps">MSDN</span> Online Voices” magazine. Bobby has taught short
sessions and all-day tutorials at both the Software Development and
Embedded Systems conferences. In previous incarnations, he was an
astronomer, private investigator, radio <span class="caps">DJ</span>, and wild-animal curator.</p>
</div>
April 12th, 2000 — Testing Object-Oriented Software — Steve Tockey2000-04-01T00:00:00-08:002000-04-01T00:00:00-08:00nwcpptag:nwcpp.org,2000-04-01:/april-2000.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This presentation is an overview of software testing techniques with
special emphasis on the application of those techniques to
object-oriented software.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Steve Tockey is Vice President of Consulting at Construx Software in
Bellevue. Steve has been employed in …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>This presentation is an overview of software testing techniques with
special emphasis on the application of those techniques to
object-oriented software.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Steve Tockey is Vice President of Consulting at Construx Software in
Bellevue. Steve has been employed in the software industry since 1977,
and has worked as a programmer, analyst, designer, researcher,
consultant, and adjunct professor. His career has included stints at
Lawrence Livermore National Laboratory, The Boeing Company, and Rockwell
Collins, Inc. He has a Masters in Software Engineering from Seattle
University and a <span class="caps">B.A.</span> in Computer Science from <span class="caps">U.C.</span> Berkeley.</p>
</div>
March 8th, 2000 — Real-World Class Design — Mark Wiseman2000-03-01T00:00:00-08:002000-03-01T00:00:00-08:00nwcpptag:nwcpp.org,2000-03-01:/march-2000.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There is a lot you may need to consider when designing a C++ class
including ease of use, reusability, extensibility, and portability,
etc.. All of these considerations may suffer because of the real-world
pressures of time and money. Mark …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue Northeast</div>
<div class="line">Redmond, Washington 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>There is a lot you may need to consider when designing a C++ class
including ease of use, reusability, extensibility, and portability,
etc.. All of these considerations may suffer because of the real-world
pressures of time and money. Mark will talk about C++ class design using
two classes from recent projects, a password generation class and a
class for searching disks for specific files.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>Mark Wiseman is president of <a class="reference external" href="http://www.cosolutions.com">Corner Office Solutions,
Inc.</a> A company that develops custom
Windows software for business management. Mark is also president of the
Northwest C++ User’s Group. You can e-mail him at
<a class="reference external" href="mailto:mwiseman@cosolutions.com">mwiseman@cosolutions.com</a>.</p>
</div>
February 15th, 2000 — Datatypes++, A C++ Class Library for Windows — Tom Dowdell2000-02-01T00:00:00-08:002000-02-01T00:00:00-08:00nwcpptag:nwcpp.org,2000-02-01:/february-2000.html<div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Tom, a <span class="caps">NWCPP</span> member, will introduce his company, Intuitive Edge Corp.,
and Datatypes++, Intuitive Edge’s first product. Datatypes++ is a C++
class library for Windows that extends C++’s datatypes to text, exact
numeric, date, time, binary, bitset …</p></div><div class="section" id="location">
<h2>Location</h2>
<div class="line-block">
<div class="line"><a class="reference external" href="http://www.avaya.com">Avaya Corporation</a></div>
<div class="line">6464 185th Avenue <span class="caps">NE</span></div>
<div class="line">Redmond, <span class="caps">WA</span> 98052</div>
</div>
</div>
<div class="section" id="abstract">
<h2>Abstract</h2>
<p>Tom, a <span class="caps">NWCPP</span> member, will introduce his company, Intuitive Edge Corp.,
and Datatypes++, Intuitive Edge’s first product. Datatypes++ is a C++
class library for Windows that extends C++’s datatypes to text, exact
numeric, date, time, binary, bitset and others. Tom will start by
covering the process of starting a software company and the evolution of
the company’s accomplishments and goals. The primary body of the talk
will focus on dreaming up an idea for a software product and bringing it
to market. Tom encourages members to download the beta 1 version of
Datatypes++ from the Intuitive Edge Web site , www.IntuitiveEdge.com.
This way, he can field specific questions about the product and the
design decisions he has made about the product.</p>
</div>
<div class="section" id="bio">
<h2>Bio</h2>
<p>About Tom Dowdell:</p>
<ul class="simple">
<li>Programming since 1982, professionally since 1986, C since 1987, C++
since 1991</li>
<li>Graduated from Nicholls State University in Louisiana in 1987 with
Computer Science <span class="caps">B.S.</span></li>
<li>Developed a free-form database product for PCs in Pascal, Torrent!,
(independent of full time job) which achieved limited success</li>
<li>Hired by Microsoft in 1990 as a Software Design Engineer in the <span class="caps">SQL</span>
Server database group</li>
<li>Left Microsoft in 1996 to start a software company, Intuitive Edge</li>
<li>After 2 years R&D, focused specifically on designing a C++ class
library, Datatypes++</li>
</ul>
</div>
January 2000: No Meeting2000-01-01T00:00:00-08:002000-01-01T00:00:00-08:00nwcpptag:nwcpp.org,2000-01-01:/january-2000.html