Going Deep - Channel 9

Going Deep - Channel 9

Charles Torre podcasts

genre: Science & Technology/Computers

Charles Torre travels around Microsoft to meet the company’s leading Architects and Engineers to discuss the inner workings of our core technologies. Going Deep is primarily concerned with how things work, why they are designed the way they are, and how they will evolve over time.

Official Website

Report a Concern

© 

Episodes

  • Stephan T. Lavavej: Core C++, 1 of n Video

    5/16/2012

    Download

    Duration: 44:48

    Stephan T. Lavavej, aka STL, is back on C9! This time, STL will take us on a journey of discovery within the exciting world of Core C++. We know lots of folks are either coming back to C++, coming to C++, or have never left C++. This lecture series, in n parts, is for all of you! Only STL can make that work (novice, intermediate, and advanced all bundled together and presented in a way only STL can do.) Thank you, STL. We're so delighted to have you back!In part 1, STL focuses on Name Lookup, which is a surprisingly complex process.Remember Herb Sutter's great GotW post (#30, to be precise) on Name Lookup? Here's the problem from that post, to refresh your memory (Thanks to Herb for providing information like this on GotW!):In the following code, which functions are called? Why? Analyze the implications? namespace A { struct X; struct Y; void f( int ); void g( X ); } namespace B { void f( int i ) { f( i ); // which f()? } void g( A::X x ) { g( x ); // which g()? } void h( A::Y y ) { h( y ); // which h()? } } We recommend you watch this entire episode before playing around with Herb's sample above (and don't read the GotW answer, either! That's cheating. Learn from STL. He's an outstanding teacher, as you know.) Please supply feedback on this thread, especially as it relates to what you'd like STL to focus on in subsequent episodes. For part 2, STL will focus on Template Argument Deduction. Tune in. Enjoy. Learn.

  • Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know, but were afraid to ask) Video

    4/9/2012

    Download

    Duration: 42:34

    At Lang.NEXT 2012, several conversations happened in the "social room", which was right next to the room where sessions took place. Our dear friend, Erik Meijer, led many interesting conversations, some of which we are fortunate enough to have caught on camera for C9. We'll begin with these Expert to Expert episodes with a "standing" conversation (participants stand comfortably close to the whiteboard) with computer scientists Carl Hewitt, Visiting Professor at Stanford University, creator of the Planner programming language, inventor of the Actor Model (the topic of this conversation), Clemens Szyperski, an MSR scientist working in the Connected Systems Group and Erik.What are actors, exactly? No, really. What are they? When is an actor an actor? Everything you wanted to know about actors, but we're afraid to ask... It's all right here. Big thanks to Carl, Clemens and Erik. This is an excellent E2E(2E)!

  • Bart De Smet: Inside Rx 2.0 Beta Video

    3/15/2012

    Download

    Duration: 1:28:57

    Rx v2.0 Beta is here! Who better to tell us all about it - and in great detail at the whiteboard - than Bart J. F. De Smet. This is a long interview, so take your time. Watch it in parts or at one sitting. There was no easy way to dice this up into separate videos, so we give it to you as it happened - in one take. As usual, Bart's explanations are thorough and clear. Enjoy. Learn. Rx has a come a long way and there's a great deal of new, improved reactive goodness in 2.0! Congratulations to Bart and team. Highlights of this release:Support for .NET 4.5 Beta.Support for .NET for Metro style applications and Windows 8 Consumer Preview.Rx Portable Library Beta.Await support on IObservable<T>.Async variants of various operators.Scheduling using async methods.Generalized time-based operators.Improved performance.You can read much more about this release in Bart's (lengthy) blog post, including download links and installation instructions.

  • C++ AMP: Development Team Roundtable Video

    2/23/2012

    Download

    Duration: 52:56

    C++ AMP (Accelerated Massive Parallelism) is a small set of open specification language extensions (two of them) and a single library (amp.h) that makes general purpose GPU programming (aka GPGPU) a first class, seamless experience in modern C++. You've been able to experiment with C++ AMP since the VS11 Developer Preview back in September 2011. We figured it was a good time to go C9 on the C++ AMP team. So, we did. Four interviews have been conducted that pretty thoroughly cover C++ AMP and the people who design, implement, and test it. C++ AMP is a great technology for native developers seeking to harness the power of the GPU using the language and tools they are already comfortable with. C++ AMP is also an open specification and we'll see other compiler vendors producing C++ AMP implementations for their target platforms soon—that's been the goal since Day 1.Here, we meet the C++ AMP development team: Team leader Don McCrady, Dev Amit Agarwal, Dev Charles Fu, Dev Lingli Zhang, Dev Simon Wybranski, Dev Steve Deitz and Dev Weirong Zhu. Tune in to understand how C++ AMP is made and how it may evolve. These are among my favorite types of interviews. I love talking to developers. Tune in. Learn.See Part 1 - Daniel Moth: AMP OverviewSee Part 2 - Yossi Levanoni: AMP Architecture and DesignSee Part 4 - The Test Team Hallway Office Tour

  • C++ AMP: Yossi Levanoni - Architecture and Design Video

    2/22/2012

    Download

    Duration: 34:7

    C++ AMP (Accelerated Massive Parallelism) is a small set of open specification language extensions (two of them) and a single library (amp.h) that makes general purpose GPU programming (aka GPGPU) a first class, seamless experience in modern C++. You've been able to experiment with C++ AMP since the VS11 Developer Preview back in September 2011. We figured it was a good time to go C9 on the C++ AMP team. So, we did. Four interviews have been conducted that pretty thoroughly cover C++ AMP and the people who design, implement, and test it. C++ AMP is a great technology for native developers seeking to harness the power of the GPU using the language and tools they are already comfortable with. C++ AMP is also an open specification and we'll see other compiler vendors producing C++ AMP implementations for their target platforms soon—that's been the goal since Day 1.Continuing with our four part series, we meet one of the architects of C++ AMP, Yossi Levanoni. You've met him before on C9. In this conversation, we go deeper into the design of C++ AMP (including exploring what led to some of the design decisions) and, of course, Yossi draws diagrams on the whiteboard like all architects must! You'll learn quite a bit about how C++ AMP works and why. Thanks for spending time with us, Yossi, and I'm sorry for mangling your last name!See Part 1 - Daniel Moth: OverviewSee Part 3 - The AMP Development Team RoundtableSee Part 4 - The AMP Test Team Hallway Office Tour

  • C++ and Beyond 2011: Scott, Andrei and Herb - Ask Us Anything Video

    1/3/2012

    Download

    Duration: 52:33

    I was able to attend C++ and Beyond 2011 and it was a tremendous experience. I captured some great footage from the event for C9, like this end-of-last-day panel - Ask Us Anything - with Scott, Andrei and Herb. Great questions and excellent answers. This is the third and final panel from C&B 2011 to air on C9. The other two panels: C++11 and Concurrency and Parallelism - are very well worth your time if you haven't had a chance to watch/listen to them yet.Thanks Andrei Alexandrescu, Scott Meyers and Herb Sutter for putting on such a great event for C++ developers and for allowing Channel 9 to broadcast some of it. I am so thrilled to learn that C++ and Beyond 2012 will take place August 5-8, 2012! I encourage you to attend (I know I'll be there!). It will be well worth your (and your company's) time. The way I think about C&B is: Mind-bending C++ content that's also practical, presented by industry experts who are very engaging, passionate about C++ and very approachable. The folks in attendance are stellar native developers from around the world, employing C++ in a variety of contexts.Make sure to check out all the C&B 2011 content we're lucky enough to have on C9 Enjoy! Learn! Go native!Table of Contents (click on the time links to jump directly to the question/topic referenced):[00:10] On strings, UTF-8 vs UTF-16, etc...[03:08] How does the ISO C++ standards committee work?[04:34] On shared_ptr performance and correctness[11:30] What C++ work do you guys do outside of your real jobs?[14:51] Implementations of atomic...[17:07] Memory consistency model...[22:13] Favorite C++11 features...[24:23] What's next for the standard's committee?[25:55] How to convince your company it's OK to use templates now (C++11)...[28:30] Favorite feature that's not in the C++11 standard...[30:44] What's the deal with systematic and principled thread termination and program termination?[36:22] Concepts...[36:55] What's going on with constexpr?[41:51] When will we see Effective/Exceptional C++ books for C++11?

  • Brian Beckman: Hidden Markov Models, Viterbi Algorithm, LINQ, Rx and Higgs Boson Video

    12/25/2011

    Download

    Duration: 1:3:4

    It's been WAY too long since we've had Brian Beckman sharing knowledge, insights and perspectives on Channel 9. This changes now! Needless to say, I was incredibly happy to spend an hour with Brian learning all about what he's up to these days. Not surprisingly, he's writing code and employing Rx and monads to solve very interesting problems. In this conversation (a code lesson, algorithm survey, a splash of random topical diversion), Brian explains and demonstrates his latest endeavor: implementing the Viterbi algorithm in C#. What's the Viterbi algorithm, Brian? What are hidden Markov models? What are you using this stuff for? Where does Rx fit into this? What's going on? By the way, it's awesome to learn that a Niner has been sharing C# monadic implementations with Brian (state monad, maybe monad). Of course, no conversation with Brian - a physicist by training and a software architect at Microsoft - is complete without talking about some current physics problem: Finding the elusive Higgs Boson is all the rage these days, so we talk about what it means. Brian also shares insights on Haskell, functional and hybrid programming languages (C# is imperative, but it provides functional capabilities like LINQ, for example, upon which Rx is built (Rx is LINQ-to-Streams or observable sequences of events, really)...). We also finally discuss his previous work at MS that we never got a chance to talk to him about while he was doing it. Before joining the Bing Mobile team, Brian was working on a project to create a new functional programming language. What was it? Thank you, Brian!Happy holidays from Channel 9 wherever you are and whatever, if anything, you're celebrating!Notes and More:The code Brian demos (download it, unzip it, launch VS, open the solution, then watch this video and play along): https://github.com/rebcabin/DotNetExtensionsImprovedFrom Wikipedia - information on Markov and Viterbi:A hidden Markov model (HMM) is a statistical Markov model in which the system being modeled is assumed to be a Markov process with unobserved (hidden) statesThe Viterbi algorithm is a dynamic programming algorithm for finding the most likely sequence of hidden states – called the Viterbi path – that results in a sequence of observed events, especially in the context of Markov information sources, and more generally, hidden Markov models.

  • C9 Lectures: Mahmoud Saleh - Advanced CRT, 2 of 2 Video

    12/7/2011

    Download

    Duration: 51:33

    You first met Mahmoud Saleh in an episode of C9::GoingNative covering CRT (C Run-time Library). Mahmoud is the keeper of the CRT(C Run-time Library) at Microsoft, working on the VC++ team as a software engineer. The information presented in that GoingNative episode was introductory in nature and as we expected you asked for more advanced treatment of this important subject matter. Well, being the kind person that he is, Mahmoud agreed to do full lecture covering advanced topics related to CRT. Thank you, Mahmoud! This will be a 2-part series with an option for more depending on how many questions you ask.In part 2, you'll learn about File IO, Controlling the stream buffer, GS handler, C++ exceptions, CRT and Windows APIs, CRT floating point support.->Slides for this presentation->Source code for the demos in this presentationTune in. Enjoy. Learn.See part 1

  • C9 Lectures: Graham Hutton - How To Be More Productive Video

    11/30/2011

    Download

    Duration: 46:11

    It's been far too long since we've had some meaty functional programming content on C9. Luckily, none other than Graham Hutton dropped off a present on our doorstep! Dr. Hutton graciously provided Channel 9 with his latest self-filmed lecture—thank you, Graham! We're honored. This is certainly a treat and we appreciate it. For all of you out there interested in FP, this one's for you, and it's from one of the functional domain's titans. Graham's goal here is to share technical knowledge and insights that span programming domains and skill sets—an excellent goal and one that we at Channel 9 fully support! Enjoy. Learn!From Dr. Hutton:Streams, or infinite sequences, have many applications in programming, and can naturally be defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually produce well-defined streams? In this talk, Graham Hutton presents a new approach to this problem, based upon the topological notion of contractive functions on streams. This talk is aimed at a general audience, and doesn't require special knowledge of topology or functional programming.Lecture Materials:Slides: http://www.cs.nott.ac.uk/~gmh/contractive.pptPaper:  http://www.cs.nott.ac.uk/~gmh/contractive.pdfSpeaker Bio:Graham Hutton is Professor of Computer Science at the University of Nottingham, where he co-leads the Functional Programming Lab. His research interests are in formal reasoning about program correctness and efficiency, with an emphasis on functional languages such as Haskell. He is also the author of a best-selling Haskell textbook, for which he's recorded associated Channel 9 lectures that have received more than 600,000 downloads.

  • C&B 2011 Panel: Herb Sutter, Andrei Alexandrescu and Scott Meyers - Concurrency and Parallelism Video

    11/15/2011

    Download

    Duration: 40:46

    I was able to attend C++ and Beyond 2011 and it was a tremendous experience. The technical depth and C++ goodness was profound and lasted for 3 whole days (and two evenings). Thanks Andrei Alexandrescu, Scott Meyers and Herb Sutter for allowing me to crash your affair with my camera - which was perhaps too big and too advanced for the likes of me - still, I was abe to capture some great content like this interactive panel on Concurrency and Parallelism with Scott, Andrei and Herb. Great questions from attendees. Note that this is the second in a series of three panels from C++ and Beyond 2011 that will appear on C9 over the coming months. Make sure to check out all the C&B 2011 content we're lucky enough to have stored on C9 Enjoy! Learn!Table of contents (click on the time code link to move the player to that point in time...):[00:00] Using multiple cores for useful work...[01:56] Does C++AMP build on PPL?[02:48] What about operating system scheduling for GPU operations?[03:49] Transition from platform-specific memory models to a standard(ized) C++ memory model (C++11's MM, to be specific...).[06:41] Is there a performance penalty associated with a standard C++ memory model?[09:18] What about functional languages/techniques (with respect to parallel and concurrent programming)?[15:44] Which performance pitfalls we may pitfall into?[16:13] What about the work on ranges and wouldn't they help parallelism?[20:34] Fortran arrays have things like slices and strides. What about C++AMP?[22:42] Parallel debugging...[23:30] How baked is C++AMP?[25:26] On SIMD and MIMD...[34:20] Computation-following-data versus data-following-computation...

  • Drawbridge: A new form of virtualization for application sandboxing Video

    10/17/2011

    Download

    Duration: 46:52

    Drawbridge is a research prototype of a new form of virtualization for application sandboxing. Drawbridge combines two core technologies: First, a picoprocess, which is a process-based isolation container with a minimal kernel API surface. Second, a library OS, which is a version of Windows enlightened to run efficiently within a picoprocess. Drawbridge combines two ideas from the literature, the picoprocess and the library OS, to provide a new form of computing, which retains the benefits of secure isolation, persistent compatibility, and execution continuity, but with drastically lower resource overheads. The Drawbridge library OS is an experimental Windows 7 library OS - a research project and proving ground for a larger concept: application virtualization and sandboxing. Drawbridge is capable of running the latest releases of major Windows applications such as Microsoft Excel, PowerPoint, and Internet Explorer with very little overhead compared to the traditional virtualization techniques. The experiment is going well! Now, what's going on here, exactly?Drawbridge research team members Galen Hunt, Reuben Olinsky and Jon Howell dig into some of the details, including project rationale and OS architecture, of research project Drawbridge.Paper: http://research.microsoft.com/apps/pubs/default.aspx?id=141071 

  • Bart De Smet: Rx Update - .NET 4.5, Async, WinRT Video

    10/13/2011

    Download

    Duration: 43:33

    Bart De Smet has been very busy. As you can imagine, the latest release of Rx (v1.11011.11 (Experimental)) supports the latest (developer preview) .NET version, 4.5. In this release, Bart and company have forged a deeper synergy with the async/await Task-based asynchrony model (see Prefer Async Policy in the Release Notes for this release for more info and watch/listen to this conversation!). In addition, Rx can be used in "Windows 8" Metro style apps. Rx v1.11011.11 (Experimental) features include:Improved Exception ManagementPrefer Async PolicyInteroperability with Task<T>FromEventPattern Support for WinRT Events Various Changes to System.Reactive The NewSystem.Reactive.WindowsRuntime AssemblyThis release of Rx includes support for WinRT interop and to build Metro style applications leveraging Rx for event processingIAsyncInfo ConversionsRelease NotesDownload

  • C9 Lectures: Mahmoud Saleh - Advanced CRT 1 of n Video

    10/6/2011

    Download

    Duration: 1:6:36

    You first met Mahmoud Saleh in an episode of C9::GoingNative covering CRT (C Run-time Library). Mahmoud is the keeper of the CRT(C Run-time Library) at Microsoft, working on the VC++ team as a software engineer. The information presented in that GoingNative episode was introductory in nature and as we expected you asked for more advanced treatment of this important subject matter. Well, being the kind person that he is, Mahmoud agreed to do a full lecture covering advanced topics related to CRT. Thank you, Mahmoud! Here, you'll learn about memory leak detection (CRT debug heap), unhandled exceptions, assert and error reporting, CRT entry points, CRT support for Unicode, SBCS and MBCC.->Slides for this presentation->Source code for the demos in this presentationTune in. Enjoy. Learn.

  • C&B 2011 Panel: Herb Sutter, Andrei Alexandrescu and Scott Meyers - C++11 Video

    10/4/2011

    Download

    Duration: 58:23

    I was able to attend C++ and Beyond 2011 and it was a tremendous experience. The technical depth and C++ goodness was profound and lasted for 3 whole days (and two evenings). Thanks Andrei Alexandrescu, Scott Meyers and Herb Sutter for allowing me to crash your affair with my camera - which was perhaps too big and too advanced for the likes of me - still, I was abe to capture some great content like this panel on C++11 with Scott, Andrei and Herb. Great questions from attendees. Note that this is the first in a series of three panels from C++ and Beyond 2011 that will appear on C9 over the coming months. Make sure to check out all the C&B 2011 content we're lucky enough to have stored on C9 Enjoy! Learn!Table of contents (click on the time code link to move the player to that point in time...):[00:19] When should new C++11 features be adopted in production?[09:28] C++11 Memory Model[15:23] Which C++11 features remain broadly missing?[16:25] When can we expect full C++11 conformance from the major compilers?[19:45] -> Herb Sutter asks YOU a question (please answer on this thread): What do you want the standards committee to work on next? Should they immediately start work on new features? Should they take a break before new feature work?[21:45] What about debugging, linking and tools - as it relates to C++11?[23:56] What really happened to Concepts?[29:07] Will existing code have to be changed just to compile with a new C++11 conforming compiler?[29:38] Why was a seemlingly complicated feature (to implement) like variadic templates rolled out sooner than a seemingly simple feature like templated typedefs?[32:42] What do you think we'll get wrong most often when using C++11 features?[45:13] Return by ref or by value - is there a universal rule of thumb?[48:32] Why don't lambdas have typedefs for argument types?[53:02] How do you capture enclosing scope variables when using lambdas?

  • .NET 4.5: David Kean and Mircea Trofin - Portable Libraries Video

    9/27/2011

    Download

    Duration: 50:40

    The Portable Class Library project enables you to write and build managed assemblies that work on more than one .NET Framework platform. You can create classes that contain code you wish to share across many projects, such as shared business logic, and then reference those classes from different types of projects.Using the Portable Class Library project, you can build portable assemblies that work without modification on the .NET Framework, Silverlight, Windows Phone 7, or Xbox 360 platforms. Without the Portable Class Library project, you must target a single platform and then manually rework the class library for other platforms. The Portable Class Library project supports a subset of assemblies from these platforms, and provides a Visual Studio template that makes it possible to build assemblies that run without modification on these platforms. [Source = MSDN]The portable libraries project ships as part of Visual Studio 11 Developer Preview. You can build portable .NET class libraries by simply creating a Portable Class Library project (template provided for you) and choosing the platform targets. The IDE will then create the appropriate reference assemblies for you and you can then program as you normally would. Here, we meet Portable Libraries project developer David Kean and program manager Mircea Trofin to learn more. Whiteboarding included.

  • CLR 4.5: David Broman - Inside Re-JIT Video

    9/23/2011

    Download

    Duration: 36:48

    Re-JIT is a new capability in CLR 4.5 that allows modification and recompilation of method-level IL code during runtime without requiring a process restart: so, the JIT runs again without shutting down executing applications. This is a great feature for instrumentation and profiling tools developers.Here, we learn all about Re-JIT from one of the developers who wrote it: David Broman. Again, Re-JIT enables recompiling a method at runtime without restarting the process. Very cool.

  • C9 Lectures: Greg Meredith - Monadic Design Patterns for the Web 4 of n Video

    7/26/2011

    Download

    Duration: 41:27

    Greg Meredith, a mathematician and computer scientist, has graciously agreed to do a C9 lecture series covering monadic design principles applied to web development. You've met Greg before in a Whiteboard jam session with Brian Beckman.The fundamental concept here is the monad, and Greg has a novel and conceptually simplified explanation of what a monad is and why it matters. This is a very important and required first step in the series since the whole of it is about the application of monadic composition to real world web development.In part 4, Greg primarily focuses on the idea that a monad is really an API—a view into the organization of data and control structures, not those structures themselves. In OO terms, it's an interface. To make this point concrete, Greg explores one of the simplest possible data structures supporting at least two different, though consistent, interpretations of the same API. The structure used, Conway's partisan games, turns out to be tailor-made for this investigation. Not only does this data structure have the requisite container-like shape, it provides opportunities to see just what's necessary in a container to implement the monadic interface. Running throughout the presentation is a more general comparison of reuse between an OO approach and a more functional one. When the monadic API is "mixed into" the implementing structure, we get less reuse than when the implementing structure is passed as a type parameter. Finally, doing the work puts us in a unique position to see not just how to generalize Conway's construction monadically, but also the underlying pattern that allows the generalization to suggest itself.Source code for the Conway gameSlides for this presenationSee part 1 See part 2See part 3

  • Bart De Smet: Interactive Extensions (Ix) Video

    7/13/2011

    Download

    Duration: 57:53

    Interactive Extensions (Ix) introduces a set of additional LINQ to Objects query operators based on the work done in the Reactive Extensions (Rx).I recently visited the great Bart De Smet to learn more about Ix. As usual, Bart clearly explains what Ix is and why they've built this library, what it's for, and when to go interactive. This is a deep conversational piece with plenty of whiteboarding during which we also talk about the current status of IQbservable. Tune in. Learn.

  • C9 Lectures: Stephan T Lavavej - Advanced STL, 6 of n Video

    7/11/2011

    Download

    Duration: 43:49

    There are two STLs: the Standard Template Library and Stephan T. Lavavej Advanced STL covers the gory details of the STL's implementation -> you will therefore need to be versed in the basics of STL, competent in C++ (of course), and be able to pay attention! Stephan is a great teacher and we are so happy to have him on Channel 9—the only place you'll find this level of technical detail regarding the internals of the STL. There are no books. There are no websites. This is Stephan taking us into what is uncharted territory for most, even those with a more advanced STL skill set.This is a very special episode—it was driven by you!In Part 5, Niner KerrekSB commented that a great topic for this advanced series would be developing a generic mechanism for printing out STL containers (like a vector of ints). Then Sven Groot helped out with his usual brilliance. I love this Niner interaction!You got STL to lecture on this stuff! That is HUGE In fact, STL was so impressed that he decided to try it out himself and see how generic he could make it. He uses only those STL features available in VC10 SP1 (for example, variadic templates are not used in his solution because the feature is not implemented in VC 2010 SP1...).What did Stephan come up with? Get STL's PrettyPrinter implementation, then watch this great episode to learn the details behind the code. Thanks STL, KerrekSB, and Sven Groot for an excellent exercise!See Part 1 -> shared_ptr and friendsSee Part 2 -> Algorithm optimizationSee Part 3 -> STL's comprehensive correctness checksSee Part 4 -> rvalue references, perfect forwarding, associative containersSee Part 5 -> Boost LibraryWatch STL's great introductory series on the STL

  • Abolade Gbadegesin: Inside Windows Phone "Mango" Video

    7/5/2011

    Download

    Duration: 38:2

    There have been a lot of positive reviews of the upcoming Windows Phone 7 OS release, code named "Mango." This release is a big one. It contains over 500 new features (and over 1000 new APIs), is full of improvements - from the core OS to the performance of UI scrolling - and "Mango" puts the user in control of almost everything the system has to offer."Mango" represents some impressive engineering. Since this is Going Deep, we are necessarily interested in the system-level improvements inside the Windows Phone operating system (in addition meeting a key engineer behind it).Two new core or system-level features in "Mango" are a generational garbage collector and support for multitasking, or the ability to concurrently run application processes in both the foreground and background. GGC and Multitasking are going to be great for developers and users alike.How does multitasking in "Mango" work? How is it designed? Lot's of great user features, but what about improvements to the developer experience? Let's ask the great Abolade Gbadegesin—a stellar software engineer (writing mostly C++ -> go native!) and key contributor to the Windows Phone operating system, application services, and overall "Mango" platform architecture—to get some real answers.Tune in.

  • Mohsen Agsen - C++ Today and Tomorrow Video

    6/9/2011

    Download

    Duration: 42:46

    The last time we got the chance to talk to Mohsen Agsen, a Microsoft Technical Fellow who runs the Visual C++ engineering team, he put forward the notion of a renaissance taking place in the native world. Shortly thereafter, we created the catchy C++ Renaissance mantra. (Mohsen is great at building metaphors in real time. See if you can identify a few new ones in this conversation!) The reception to C++ Renaissance message has been great (and, in some sense, unexpected). Now that some time has passed, let's revisit this meme and get a sense of what Mohsen really meant by a renaissance taking place in the native world, and C++ specifically. Is this renaissance taking place in the industry at large, or was Mohsen focusing on what's going on inside of Microsoft? Maybe it's both (at least from the native perspective, given Obj-C, C, and C++ usage outside of Microsoft). Mohsen works in the Microsoft Hawaii office, located in Honolulu on the great island of Oahu. I was recently in Hawaii for the ICSE 2011 conference in Waikiki, so I was able to visit Mohsen to continue our conversation from a few months back.It's really easy to talk to Mohsen—he's passionate, engaging, curious, and, most importantly, honest and open. There's no marketing in Mohsen. He's all engineer. When I asked him about what he thinks is needed in C++ and VC++, specifically, he answers, but he also asks YOU for your opinions on the matter -> How do you use C++ today? Are you interested in using C++ for building high-level UI-centric and data snacking apps? What do you want the VC team to focus on? Please answer these questions in this post. Mohsen and the VC product team will be looking for your answers here, so speak up! And thanks for asking, Mohsen. Very cool.Tune in. Enjoy. (And remember to tell Mohsen what's on your mind regarding what he asks you in this conversation.)Questions/Topics (click the link to navigate to the topic/question):What does your team do at the Microsoft Hawaii office?On the C++ Renaissance...Mohsen asks you -> How are you actually using C++ today?Mohsen asks you -> How do you think about the breadth of the language for mainstream scenarios (web services, data access, data snacking applications, etc)? Are you using C++ for these types of things? How broad should we think about the language beyond systems?On concurrency...How do you allocate resources on the VC team (so, how do you determine where to place human investments)?Do you have a sense of how many VC++ developers actually use any of the other language tools inside of Visual Studio—so, would VC be able to ship faster if it wasn't bound to VS? (Yes, a weird Charles question born in situ during the conversation!).How you feel personally about the state of the C++ language (were you upset that Concepts didn't make it in to C++11, for example?) ?On C...What do you think of the language Go?Error reporting quality, templates and exceptions...On C++ and JavaScript...What do you want to see added to (or what's missing today in) the C++ language/libraries/tools? (Mohsen asks you -> What existing libraries should become de facto standards like the STL?)

  • Herb Sutter: C++ Questions and Answers Video

    6/7/2011

    Download

    Duration: 58:59

    Herb's last appearance on C9 was a relatively short chat with me about C++0x. You wanted more questions asked and some of you thought I was just too soft on Herb. Well, Herb decided that the best way to get the questions you want asked is, well, to have you ask them. Most of the highest user-rated questions were asked and Herb answers with his usual precision. So, without further ado, it's C++ question and answer time with the great Herb Sutter, powered by you.Questions (click the question link for Herb's answer):Tim Pinkawa: Which non-C++ language do you find to be the most inspiring today? Are there any features in that language that you'd like to see in future C++ incarnations?Matthias Merkers: So do you think that lacking toolsupport for C++ will be a major problem since there are new better-prepared system-programming languages available?ZenJu: What is the strategy to deal with C++ language and standard library design flaws in the long run? Are you afraid "bad design decisions" may accumulate over time, thereby making it more and more harder for newbies to learn the language? Herb also briefly discusses noexcept... (two for one!)Cory: Concepts — why did they fail and what work is being done to bring something like them back?Cory/jalf: Polymorphic lambdas - why did they fail and what work is being done to bring something like them back?Ben craig: There seemed to be some controversy over noexcept on destructors. Your books describe your reasoning on why destructors should never throw. What does the opposition consider to be a valid use of throwing destructors?Anteru: Modules - Are they really coming, and if so, when do you expect the first implementation?os: Could you discuss briefly the module support that didn't make it into C++0x please? How can this work with templated code that has a lot of functionality in headers?David: why the long time in C++ standardization work? Will the next standard take as long?Atle Iversen: I'm not sure how much you're allowed to tell us, but I would *love* to hear some details about MS Windows and/or MS Office; how much C vs. C++, which parts of C++ do they use etc (Google has released an "official" C++ coding standard, but I would love to see something similar from the MS Windows and MS Office teams...) Cory: Filesystem — something like boost::filesystem is desperately needed.Cory: Threading — thread pools, fine-grained task model, thead-safe containers.Charles: Why not add an async/await language-level pattern to C++ just like in C# vNext?Ari: Can you please comment on the influence of the boost community on the development of the new features of the c++ language. It seems that a lot of new C++0x features/additions have been adopted due to the wide use/acceptance of the feature/s as part of the boost library.Alfonse: Uniform initialization (the use of {} to call constructors when the type being constructed can be deduced) has the potential to radically reduce the quantity of typing necessary to create C++ types. It's the kind of thing, like lambdas, that will change how people write C++ code. What is the Visual Studio team's priority for implementing this feature, along with initializer lists?petke: What is on the top of your post C++0x wishlist?Thanks for all your great questions and thanks to Herb for taking time out of his insanely busy schedule to sit down and answer as many of the highly user-rated questions as possible. Great stuff! We should do this again.  For all the folks who asked about specific VC vNext implementations, please try to make it to BUILD as there will be a significant C++ presence at the developer affair in Anaheim (Sept 13-16, 2011). If you can't attend the event in person, then you will be able to watch all of the session online, as usual, after the event right here on Channel 9.    

  • C9 Lectures: Stephan T Lavavej - Advanced STL, 5 of n Video

    5/19/2011

    Download

    Duration: 35:8

    There are two STLs: the Standard Template Library and Stephan T. Lavavej Advanced STL covers the gory details of the STL's implementation -> you will therefore need to be versed in the basics of STL, competent in C++ (of course), and be able to pay attention! Stephan is a great teacher and we are so happy to have him on Channel 9—the only place you'll find this level of technical detail regarding the internals of the STL. There are no books. There are no websites. This is Stephan taking us into what is uncharted territory for most, even those with a more advanced STL skill set.In this 5th part of the n-part series, STL digs into the Boost Library (http://www.boost.org). In his words, it's an open source, super quality, community-driven STL++. Stephan will walk you through a sample application from end to end, using boost.See Part 1 -> shared_ptr and friendsSee Part 2 -> Algorithm optimizationSee Part 3 -> STL's comprehensive correctness checksSee Part 4 -> rvalue references, perfect forwarding, associative containersWatch STL's great introductory series on the STL

  • Chris Hawblitzel and Juan Chen: Introduction to Typed Assembly Language (TAL) Video

    5/11/2011

    Download

    Duration: 43:31

    Typed Assembly Language (TAL) extends traditional untyped assembly languages with typing annotations, memory management primitives, and a sound set of typing rules. These typing rules guarantee the memory safety, control flow safety, and type safety of TAL programs. Moreover, the typing constructs are expressive enough to encode most source language programming features including records and structures, arrays, higher-order and polymorphic functions, exceptions, abstract data types, subtyping, and modules. Just as importantly, TAL is flexible enough to admit many low-level compiler optimizations. Consequently, TAL is an ideal target platform for type-directed compilers that want to produce verifiably safe code for use in secure mobile code applications or extensible operating system kernels. [Source]You've met Microsoft research scientist and operating system expert Chris Hawblitzel before. He's the architect and lead researcher of the Verve operating system research project from MSR. As you learned in that interview, typed assembly language and Hoare logic were employed to verify the absence of many kinds of errors in low-level code. Chris et al. use TAL and Hoare logic to achieve highly automated, static verification of the safety of Verve. We didn't spend much time on TAL during the Verve interview, so we decided to remedy that. Enter computer scientist and RiSE team member Juan Chen who did much of the TAL work for Verve. After you watch this video, you should read this paper to go much deeper.Tune in and get a sense of what TAL is, how type verification works for assembly code, benefits, trade-offs, and much more. Enjoy.

  • Conversation with Herb Sutter: Perspectives on Modern C++(0x/11) Video

    5/4/2011

    Download

    Duration: 45:29

    I was lucky enough to catch up with Herb Sutter not too long after the FDIS announcement (Final Draft International Standard is complete).As usual when talking to Herb, the conversation is all about C++ (well, we do talk about C# for a little while, but in the context of C++. Why?). See below for the specific questions that were asked. You can simply click on a link to move directly to that point in the conversation. I do, however, strongly recommend that you watch the entire thing. I also recommend that you don't get used to this level of categorization in my videos (it takes a fair amount of time to do this sort of thing, so enjoy the times when I actually do this, but don't expect me to do this all of the time ). It's always great to talk to Herb and get a glimpse of what goes on in the C++ Standards Committee (which Herb chairs). In this specific conversation, it's uplifting to see how excited Herb is for the future of one of the world's most capable and widely used general purpose programming languages. C++ is a modern programming language for power and performance, but it's also a highly abstracted general purpose language for building user mode applications, mobile apps, etc. The amazing part is how C++ can provide rich general programming abstractions and also ensure that your code can run at machine speeds. We talk about this, of course.Tune in. Learn. Go native!1:37 -> What were the goals of the C++0x standard, at a high level?2:40 -> Language and Library abstractions and performance (how high can you go and still be fast as possible?)...5:23 -> C++ as an application development language (in addition to the traditional C++ is a systems programming language meme)...07:17 -> C++0x or can we now call it C++11?09:21 -> Standards committees and real world user representation...10:39 -> Who comes up with the new features that get standardized (or not...)?13:01 -> What were the goals of the C++0x standard (non-canned answer)?14:21 -> What does Bjarne mean by C++0x being a better C++ for novice programmers?15:51 -> Why can't C++ look more like C#?18:50 -> At the end of the day, everything(in terms of programmer-controlled computing) boils down to memory, right?23:12 -> What are some of the most significant new features in C++0x?25:05 -> What can VC++ developers expect to see in terms of C++0x implementation in Visual C++ next?27:09 -> C++ and type safety...29:05 -> C++0x and backwards compatibility: any big breaking changes?34:16 -> C++0x in the Standard Library...37:01 -> Any thinking in the Committee about doing much more frequent experimental releases of C++?39:04 -> Are their features that didn't make it into the standard that you really wanted to be standardized?41:45 -> Are you comfortable with C++'s current state? Is it modern enough?43:22 -> Conclusion (or Charles doesn't end the conversation when his farewell begins - where does it go from there? )

Image: Sign up for free

podcast reviews

Date /frag/MediaReviewBlock/?_saveReviewKey=&ztext_c_mediaReview_Hidden=&_mediaReview_title=&MediaId=2dd5a1a8-1f5e-491e-a49e-332bee256a44&MediaType=PodcastSeries&SortBy=ModifiedDate&SortOrder=Asc&IsFullPage=&ShowHeader=&_deleteReviewKey=&_comments_hidDelete=&PageSize=&PageIndex=&StartMarker=&EndMarker=&PrevClicked=&blockName=MediaReviewBlock&id=_podcastListenerReview& Usefulness /frag/MediaReviewBlock/?_saveReviewKey=&ztext_c_mediaReview_Hidden=&_mediaReview_title=&MediaId=2dd5a1a8-1f5e-491e-a49e-332bee256a44&MediaType=PodcastSeries&SortBy=Feedback&SortOrder=&IsFullPage=&ShowHeader=&_deleteReviewKey=&_comments_hidDelete=&PageSize=&PageIndex=&StartMarker=&EndMarker=&PrevClicked=&blockName=MediaReviewBlock&id=_podcastListenerReview&
Share your knowledge and opinions about this podcast.

Stream full songs, free with Zune Pass. Sign in or sign up free