<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://p.moreover.com/xml_dtds/rss-0_91.dtd">
<rss version="0.91">
<channel>
<title>Northwest C++ Users Group</title> 
<link>http://www.nwcpp.org</link> 
<description>The Northwest C++ Users Group (NWCPP) 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.</description> 
<language>en-us</language> 
<copyright>Copyright 2003 Northwest C++ Users Group</copyright>
<managingEditor>webmaster@nwcpp.org</managingEditor> 
<webMaster>webmaster@nwcpp.org</webMaster> 



<item>
<title>Writing Quality Software</title>
<link>http://www.nwcpp.org/Meetings/2010/02.html</link>
<description>
<![CDATA[
Being non-physical, quality in software is very different than quality in physical goods. In today's environment software must not only provide value now, it must be easy to change so it can continue to deliver value in the future. This is especially true on agile projects where short iterations and ongoing customer involvement means software needs to change frequently. Without paying attention a few key qualities the agile process of iterative development can soon degrade code into a maintenance nightmare. In this seminar we will explore specific qualities that make software more maintainable and easier to change.
]]>
</description>
</item>



<item>
<title>Jinx: An New Tool for Debugging Shared Memory Multithreaded Programs</title>
<link>http://www.nwcpp.org/Meetings/2010/01.html</link>
<description>
<![CDATA[
<p>One of the main challenges with writing concurrent software is debugging.&nbsp; Errors are often subtle, difficult to reason about and hard to reproduce.&nbsp; In this talk I will describe Jinx, a beta development tool that significantly aids the debugging and quality assurance testing of multithreaded software.&nbsp; Using this tool, applications that have subtle concurrency errors experience these errors orders of magnitude more often than they would under ordinary circumstances.&nbsp;</p>
<p>Jinx is fast: programs can still execute interactively.&nbsp; Jinx is platform and language independent: it does not require programmers to modify their code base or build processes.&nbsp; Finally, Jinx is accurate: there are no false positive results.&nbsp; Exposed bugs are all real program bugs that exist in an application and can occur in the shipping product.</p>
<p>Jinx is a thin hypervisor that slips underneath an already booted operating system.&nbsp; Once installed, Jinx periodically takes snapshots of the guest virtual machine (VM) and executes these VM images looking for shared memory communications between processors.&nbsp; It then carefully orchestrates these VM simulations looking for ways to expose concurrency errors.&nbsp; Once it finds a particular execution path in a simulated VM that exposes a concurrency error it deterministically replays that path onto the real VM that the user is experiencing.</p>
<p>In this talk I describe the Jinx hypervisor.&nbsp; I will discuss how Jinx installs itself after the guest has already booted; how Jinx simulates copies of the guest operating system efficiently; how simulations are deterministically replayed onto reality, and an important debugging feature of Jinx called, ShortStop, that halts processors at their precise semantically important shared memory communication point that precipitates a program error.&nbsp; Finally, I'll conclude the talk with a demo of Jinx executing on Windows 7 and discuss the future of thin hypervisor approaches to debugging and system reliability.</p>
]]>
</description>
</item>



<item>
<title>No Meeting</title>
<link>http://www.nwcpp.org/Meetings/2010/08.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



<item>
<title>No Meeting</title>
<link>http://www.nwcpp.org/Meetings/2010/07.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



<item>
<title>No Meeting</title>
<link>http://www.nwcpp.org/Meetings/2010/06.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



<item>
<title>No Meeting</title>
<link>http://www.nwcpp.org/Meetings/2010/12.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



<item>
<title>TBD</title>
<link>http://www.nwcpp.org/Meetings/2010/11.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



<item>
<title>TBD</title>
<link>http://www.nwcpp.org/Meetings/2010/10.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



<item>
<title>TBD</title>
<link>http://www.nwcpp.org/Meetings/2010/09.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



<item>
<title>TBD</title>
<link>http://www.nwcpp.org/Meetings/2010/05.html</link>
<description>
<![CDATA[

]]>
</description>
</item>



</channel>
</rss>

