 Monday, August 10, 2009
 Of course the most important sessions at PDC couldn't possibly be announced yet. The best are the ones that are TBD in the session list and schedule right up until the keynote. That's how you know something big is going to be announced. Imagine something where just hearing its code name, just knowing who was going to give the sessions, or even a single sentence of description would spoil the whole announcement. Those are the sessions you go to PDC for, so it's a bit like a Christmas present ... you can't know in advance what it will be. But it's a four day conference with a lot of sessions and some of them can be announced in advance. I can see that this year some folks have decided to have slightly more interesting session titles (along with the more traditional titles): - Zero to Awesome in Nothing Flat: The Microsoft Web Platform and You
- Windows Workflow Foundation 4 from the Inside Out
- Windows Identity Foundation Overview
- Windows 7 and Windows Server 2008 R2 Kernel Changes
- Using Classification for Data Security and Data Management
- Under the Hood with Microsoft SharePoint 2010 Programmability
- The State of Parallel Programming
- The DirectX 11 Compute Shader
- Simplifying Application Packaging and Deployment with Microsoft SQL Server 2008 R2
- Petabytes for Peanuts! Making Sense Out of “Ambient” Data.
- Microsoft Visual C++ 2010: The "Accelerated" Way of Building Applications
- Microsoft Unified Communications: Developer Platform Futures
- Microsoft Silverlight Roadmap and Futures
- Microsoft Silverlight 3 Advanced Performance and Profiling Techniques
- Manycore and the Microsoft .NET Framework 4: A Match Made in Microsoft Visual Studio 2010
- Development Best Practices and Patterns for Using Microsoft SQL Azure Databases
- Developing xRM Solutions Using Windows Azure
- Developing .NET Managed Applications Using the Office 2010 Developer Platform
- Developer Patterns to Integrate Microsoft Silverlight 3.0 with Microsoft SharePoint 2010
- Data Programming and Modeling for the Microsoft .NET Developer
- Building Applications for the Windows Azure Platform
- Automating “Done Done” in the Dev-to-Test Workflow with Microsoft Visual Studio Team System 2010
- Accelerating Applications Using Windows HPC Server 2008
My favourite title in there is definitely "Manycore and the Microsoft .NET Framework 4: A Match Made in Microsoft Visual Studio 2010" but there are other contenders for sure. As for the topics themselves, I think many of us have still not given concurrency/parallelism/manycore the attention it deserves, and all of us are guilty of compartmentalizing what we learn about so I bet you have probably ignored something (Silverlight, or SharePoint, or Azure, or the full power of VSTS). That means these sessions alone will make us better devs. If these titles are enough to get you signed up, do it now while you can get a $500 (US) discount - from $2095 for the whole conference (except workshops) down to $1595 until Sept 15th. Wait till Labour Day to start bugging your boss about it and the discount will be gone, plus the plane tickets will be more expensive. (Oh, if you're a student or teacher, you pay only $595, which gives you an astonishing way to get head and shoulders above those around you.) There are also some seriously intelligent workshops scheduled: - Getting the most out of Silverlight 3
- Patterns of Parallel Programming
- Developing Quality Software using Visual Studio Team System 2010
- Architecting and Developing for Windows Azure
- Microsoft Technology Roadmap
- Software in the Energy Economy
- Developing Microsoft BI Applications - The How and The Why
Four of those seven workshops are being given by RDs, meaning you'll get real world experience along with the technical product knowledge. What a way to get caught up on something you weren't paying attention to! Going to conferences is getting harder and harder to justify in this climate. But that doesn't mean you stop going to conferences - it means you only go to those that are relevant to your work and offer amazing value (content, people, atmosphere, and otherwise-unavailable bits) in return for your registration fee, travel, and time away from work. The PDC offers just that for devs on the Microsoft stack. It's the only conference I've ever paid my own money to get to. Be there! Kate
 Friday, February 13, 2009
You know the blog, now watch the Channel 9 video featuring Damien Watkins, Rick Molloy, and Don McCrady. I like this one because they talk about how they ended up changing their minds over the course of development, moving from a language-based approach to a libraries-based one. They get into why that's better and what C++ 0x features they needed to make it possible. A nice way to spend a little under an hour.
Kate
 Sunday, February 01, 2009
While I was in Redmond I met Alon Fliess, who like me is a C++ MVP and is exploring Windows 7 (and Vista before it) from a native point of view as well as a managed one. About two months ago he mused about the "rebirth" of C++ in these times, not just because some of those operating system APIs are easier to get to from native code, but also because of new native capabilities (the continued MFC updates, the native Web Services library, the concurrency services) that just keep being added to the arsenal available to C++ programmers. (He has some helpful links in the blog post - you could also search through here if you like.)
I think it's a good point. If you know C++, now's a good time to use it. If you don't, then hang around (at least virtually) with those who do - we can point out some cool things. And thanks to the magic of interop, wrappers, and C++/CLI, perhaps we can make some of those cool things a little easier to get to from managed code.
Kate
 Monday, January 26, 2009
You know the deal when you demo beta (or worse, pre-beta) software. That stuff has audience detectors in it! Sure, it works on the plane, but just wait until you get in front of people. I’ve had my share of demo deaths, but I don’t think I’ve managed to look this cool about it:

Steve Teixeira tells the story in this blog entry.
Kate
 Saturday, November 22, 2008
Soma is blogging about C++ again. I liked this quote:
Over the years, we have heard a lot of C++ developers refer to the old days of Visual C++ 6.0 as the glory days of Visual C++ tools. Many of the comments reminisce about the snappy and productive IDE. With Visual C++ 2010, we strive to create a new benchmark for Visual C++ IDE productivity. We will couple this IDE with our superior support for the C++ language and significant improvements to the libraries.
He talks about Intellisense, the build system, tools for exploring a large codebase, the native Parallel Patterns Library (PPL), lambdas, and MFC updates. There really is a ton going on in Dev10. A lot of it was covered at PDC so if you haven't watched those videos yet:
https://sessions.microsoftpdc.com/public/timeline.aspx search for "C++", "MFC", and "native". Enjoy!
Kate
 Wednesday, October 22, 2008
Rico, who like me wonders from time to time "am I old?", muses about how things tend to come on around again. Is C++ too old to bother learning now? Rico says no. But he also says:
...the real need facing C++ programmers is somewhat the same as what faced COBOL programmers say 25 years ago. It's not that the language is out of joint -- it isn't. I mean, ok maybe you like or don't like COBOL syntax but that doesn't doom a language and surely C++ syntax is not the zenith of wonderfulness. But that isn't what's holding C++ programmers back. The biggest problem, at least in my opinion, is one of accessing new/modern runtime features that may have a different programming environment from the context of an existing environment.
Now, what does that translate to in terms of action items for you? Good question.
Kate
 Saturday, October 18, 2008
Some schedules I have flagged with "must attend" in my calendar:
TL13 Microsoft Visual C++: 10 Is the New 6 Boris Jabes
Get more done. The next version of Visual C++ is all about improving developer productivity for large-scale applications. Learn about the IntelliSense and browsing experiences, changes to the project and build system, project-less browsing, collaboration through remote symbol indexing, and custom visualization of symbolic information.
Tags: Advanced, Languages
PC26 Microsoft Visual Studio: Building Applications with MFC Damien Watkins
The next release of MFC will provide encapsulations around a number of new Windows platform features. With this functionality you can easily build applications that integrate into features such as desktop search, application restart and recovery functionality, leverage the new Windows UI metaphors such as Live Icons and Rich Preview. These features represent one of the most significant updates to MFC in years. Come learn the details on all these new classes so you can rapidly build Windows applications that stand out from the crowd.
Tags: Advanced, Visual Studio
TL25 Parallel Programming for C++ Developers in the Next Version of Microsoft Visual Studio Rick Molloy
Build more responsive C++ programs that take full advantage of multicore hardware. We demonstrate how the new Parallel Pattern Library (PPL) enables you to express parallelism in your code and how the asynchronous messaging APIs can be used to separate shared state and increase your application's resilience and robustness. Finally, we take a look at some of the new capabilities of C++0x and Visual Studio to help you efficiently code and debug your multi-threaded applications.
Tags: Advanced, Parallelism, Visual Studio
Kate
 Friday, October 17, 2008
The concept of "a whole bunch of thingies" is a vital one in just about every programming language. Some languages support it right in the language itself. For example in C++ you can have an array of integers, or Employee objects, or Customer pointers. And when you use an array, you know that it's a continuous block of memory, and it's possible to interact either with just one element of the array or with the entire array. VB has arrays, and so does C#, and while the syntax is different between them, the essential concepts are not.
The thing is, an array is only the simplest and most accessible way to say "a whole bunch of thingies". It's important that you learn other ways to express that concept - typically by using a class of some sort that someone has written to represent it. There are a ton of these depending on whether order matters to you, does insertion speed matter more than traversing/iterating speed, and so on. Some folks, having learned one way to say "a whole bunch of thingies", look at all the other options, roll their eyes up into their heads, and stick with the one way they know.
This is bad. Not just because your code could be faster, neater, and easier to write, but also because arrays are really poorly suited for certain tasks. They especially hamper parallel programming - and you know that the future is concurrent, right?
Eric Lippert has written a cogent and compelling explanation of why arrays are rarely the right choice, and what you should do instead. It's written, naturally, from a C# perspective, but it's applicable to C++ and VB too. It boils down to this: Object Oriented Programming is the norm. Start trusting object writers. Use a class that someone else wrote and provided with your compiler, and you'll be a happier developer. And if you don't have some neurons fire over the phrase "considered harmful", here is a history lesson on that.
Kate
 Saturday, September 27, 2008
Tim Stall wrote an interesting post about test harness code that exposes your possible multithreading bugs, and the performance costs of preventing those bugs with the C# lock keyword. And he linked to quite an old article by Mike Stall (don't ask me if there's a connection between the two, I've never met either of them) that I really liked. It buckets threading bugs according to how difficult they are to reproduce, understand, and fix. My favourite entry in the list is the last one:
10) Stuff that's provably unsolvable, but for which customers demand a solution anyways.
Been there, done that, alas no Tshirt.
Kate
 Thursday, September 25, 2008
Steve, a former C++ guy and current PCP guy, tells stories very well... just three of the reasons I like him. He blogs very infrequently, but when he has an update it's worth reading. This one is funny and informative. Plus, it features links to videos of presentations about the Parallel Computing Initiative. I've linked in the past to videos in English that are hosted on a page in French, so I know you can all handle it. Consider it Canadian Content even though the videos are from Paris. Go, read, watch, you'll enjoy it.
Kate
 Wednesday, September 03, 2008
In case you were worried that Microsoft efforts like the Parallel Framework (PFX) would be aimed only at managed developers, leaving native developers sitting at the little kids table again, take a look at the Parallel Programming in Native Code blog. It hasn’t been updated terribly often, but perhaps some feedback would encourage them (or is it just Rick?) to keep it current . The one downer: "this is technology we're currently exploring and I don't have any ship or CTP dates to announce." Stay tuned, I suppose.
Kate
 Thursday, June 05, 2008
How many C++ talks are there at Tech Ed this year? Well if you just run your eye down the titles, you'll see these:
MBL202 Maximizing the Usability and Compatibility of Your Mobile Microsoft Visual C++ Application
This session is targeted towards native (C++) developers. The next version of Windows Mobile will have a radical new look, with lots of new common controls and UI capabilities. This session helps you understand what you can do today to minimize backward compatibility issues. We also share many tips and best practices for improving the usability and overall quality of your mobile applications.
TLA327 Parallelize Your Microsoft Visual C++ Applications with the Concurrency Runtime
Introducing concurrency into native Visual C++ applications has long been the domain of true experts and gurus. Yet, as the hardware industry shifts toward multi-core and manycore processors, all developers will need to be able to write robust and scalable parallel applications. As part of its work on Visual C++ and Visual Studio, the Parallel Computing Platform team is building a key set of technologies that will enable the development of such applications. In this talk, we explore libraries for expressing concurrency, a set of messaging APIs that allow developers to consistently build parallel applications that are robust and resilient, and a shared user mode runtime for scheduling and for coordinating system resources. Come learn about these exciting new technologies that will help bring concurrency to the masses.
TLA403 Microsoft Visual C++ 2008 for Unrepentant C++ Developers
Visual C++ 2008 is packed full of changes for those who prefer the C++ language syntax and power. This session covers STL/CLR, the new extensible marshalling library, and changes coming in the C++ standard, specifically TR1. If templates don’t scare you, Boost has intrigued you, and you’re the one everyone turns to for mixing managed and native code, this session is for you.
But there are others, they just don't have C++ in the session title.
TLA321 Microsoft Visual Studio 2008 IDE Tips and Tricks
Harness the power of the 2008 IDE using new tips and tricks used by top Microsoft MVP developers and Microsoft employees. We look at new keyboard shortcuts, new options, the powerful "Quick Command" system, macros, tweaking IDE performance, and more that will make any developer using Visual Studio instantly more productive. The entire session is hands-on inside the IDE and applicable to any language, including Microsoft Visual Basic, Visual C#, and Visual C++. If you've been using Microsoft Visual Studio 2005 or have never touched Visual Studio, you're guaranteed to walk away a VS power user.
WIN312 Windows Presentation Foundation and Legacy Code
Yes, legacy (MFC/Win32) applications can interoperate with a Windows Presentation Foundation (WPF) user interface. Companies that have large Microsoft Visual C++ codebases can modernize their legacy applications by giving them a contemporary user interface. They can do this without having to rewrite the core of their codebase. This talk presents "best practices" for how to modify an application so that the native code operates correctly with a new WPF-based managed user interface. The talk covers such questions as "Can MFC applications move to use WPF," "Does it make more sense to rewrite or upgrade the UI," and "How do you design an interop solution between MFC/Win32 and WPF?” As the talk unfolds, it includes a number of "do's" as well as "don'ts."
TLA326 MFC Updates for Microsoft Visual Studio 2008 and Beyond
This session demonstrates the new features added to MFC in Visual Studio 2008, including support for Windows Vista Common Dialogs, Vista Common Controls, the 2007 Microsoft Office system look and feel (including support for an Office Ribbon-style interface), Office and Visual Studio-style Docking Toolbars and Tabbed Documents.
If you're here and you missed one of these, grab the slides on CommNet and see if you can find the speakers on site. If you didn't come to Tech Ed this year, consider ordering the DVD of all the sessions.
Kate
(note to self: add "C++" to abstract of any future MFC talk I deliver .)
 Thursday, January 31, 2008
The keynotes for SD West have been announced. Can you guess which title got the biggest reaction from me?
- Agility at Scale: Applying Agile Software Development Techniques on Real-World Projects
- Beautiful Code
- Is Agile Really Working for You?
- Object-Oriented Programming and Generic Programming and What Else?
- Parallel or Perish!! - Are you Ready?
The abstract for the last one starts, "A software revolution is underway, triggered by the shift to multi-core hardware architectures. " It sure is!
Kate
 Tuesday, January 22, 2008
Well, if not gone at least transformed into a concurrency blogger. Steve Teixeira, who speaks and blogs on C++ topics and has a wicked sense of humour, has joined the Parallel Computing Platform team. On the one hand, this is great news, because concurrency is hugely important to me and having Steve there will be good for it. But on the other hand, who is blogging C++ things now? Sigh.
Kate
 Monday, January 21, 2008
I decided to add a Concurrency Category, and to go back in time and add things to it. I hope it helps you find my posts on this increasingly important topic. I enjoyed reading some of what I've been writing about concurrency for the last two years.
Kate
 Sunday, December 23, 2007
You know something is mainstream when it starts to get named. I've been talking about concurrency matters for over two years now. And now it seems almost every day somebody comes out with something you just have to read or watch on this matter. An attendee at Tech Ed Developers in Barcelona asked me "isn't it confusing and wrong that people are doing such different things in this space?" I don't think it is. Some folks are trying things with libraries, with compiler directives, with new language keywords, with whole new languages, with frameworks, with the operating system, with the hardware, ... with everything you can think of. And I don't know which things will work out and how the various things will work with each other. None of us do! But it sure is fun to watch it happen, and it's probably the only way to do it.
So, some links for you, accumulated over the fall:
Herb's advice is good. He says "Expect at least dozens of major product announcements and releases across the industry, before the toolset expansion phase is fully underway and approaching some maturity. We the industry have undertaken to bring concurrency to the mainstream, and as with OO and GUIs it will take multiple years, and multiple major releases, across the industry on all platforms." Bring it on!
Kate
 Thursday, November 29, 2007
I’m a big Larry O’Brien fan, and a big DotNetRocks fan, so when you put the two together, I’m in! Then tell me they talked concurrency – one of my fave topics for a number of years now and I’m sure for a number of years yet to come. That makes this one a don’t miss for sure!
Kate
 Friday, July 27, 2007
You know this is one of my hobbyhorses. But I didn't write this quote, and neither did Herb Sutter or Larry O'Brien:
And so the world is going to move more and more away from one CPU that is multiplexed to do everything to many CPUs, and perhaps specialty CPUs. This is not the world that the programmers target today. This kind of complexity was historically reserved only for the wizards who wrote the core operating system; or, in the world of supercomputing in science and engineering, people who had the ultimate requirement for computational performance built big machines like this and have used them to solve some of the world's tough computational problems. That was always a niche part of the industry.
This presages a change where the industry at large, the whole concept of applications, will ultimately have to be restructured in order to think about how to take advantage of these machines, because they won't just get faster every year. They'll get more powerful, but in fact only if you're able to master these problems of concurrency and complexity.
The concurrency is a real challenge, because the way the industry has grown up writing software - the languages that we chose, the model of synchronization and orchestration, are actually not things that lend themselves toward either exposing parallelism or allowing large-scale composition of big systems and it's in part why we and everybody else, as the software grows in scale, you know, deal to a greater and greater degree with the difficulty of perfecting the software, making it absolutely secure, being able to predict every aspect of its operation. And so today we face the dual challenge of having the prospect of meeting even bigger, more sophisticated pieces of software to do the powerful things that we want, and to do it in an environment where to get that performance at the client on an individual application will require the mastery of parallelism.
This is Microsoft's Chief Research & Strategy Officer, folks. And he says what I say: concurrency is hard, and the future is concurrent. I know we all get by in this crazy churning world of constant new releases by ignoring stuff, but you can't ignore this.
Kate
 Saturday, July 21, 2007
I should have pointed this out before, but I wasn't blogging at the start of the month. Herb Sutter has a new column at DDJ on, of course, concurrency. In his first outing, he talks about all the different words and concepts that show up in a concurrency conversation, and presents an organization of those concepts that can give you a framework for deciding what you're going to do about the future.
Words like blocking, coupling, background, asynchronous, responsive, isolated, scalability, threads, locks, race, mutable shared objects, transactions, and so on are actually applicable to different parts of the concurrency space. If you try to think about all of it at once, it's too hard. And make no mistake, concurrency is hard today. Anything that makes it easier is welcome, and in this case it's rearranging your head a bit.
http://www.ddj.com/dept/cpp/200001985
Kate
 Wednesday, March 21, 2007
I have such a good time when I do .NET Rocks with Carl and Richard! I'm sitting around chatting with my buds, doing a little shop talk, sharing horror stories -- the time flies by. I hope one or two of you enjoy listening to it, too. Some things I heard myself say that sound pretty funny now:
- you're out of feet, i'm taking over
- it's the speed of light -- we're screwed
That first one is the CLR talking to people who messed up constantly on memory management. The second is of course the concurrency story. Along the way we talked about Vista (a lot) and covered plenty of ground. Why not give it a listen?
Kate
 Thursday, February 08, 2007
Herb updates us on the next C++ standard:
I'm happy to report that work on "C++0x", the much-anticipated Version 2.0 of the ISO C++ standard, has dramatically picked up steam over the past few months. The ISO C++ committee has now published the first partial draft of C++0x and plans to publish a complete public draft before the end of 2007.
As part of the push to get this done, the committee is having extra meetings, including one in Toronto in July. Hmmmm.....
You need to read Herb's blog post yourself for the details on what's in C++ 0x (Concepts, Garbage Collection, Memory Model for Concurrency, Concurrency Libraries) and what's not (Modules, Dynamic Libraries) with helpful links to even more details. This is our future -- and you can be sure, C++ has a future.
Kate
 Thursday, February 01, 2007
[Sorry about the blogging gap - nothing dramatic, just a little case of overworked and underslept. Good excuse to start up again though.]
Imagine a room with a table, no computers, and four really smart people who care tremendously about helping people write software, and who tackle questions like "what keywords should be in this language" every day -- and whose decisions actually will get implemented. A full hour of amazing conversation appeared recently on Channel 9.
How will imperative programming languages evolve to suit the needs of developers in the age of Concurrency and Composability? What role can programming languages play in enabling true composability? What are the implications of LINQ on the furture of managed (CLS-based) and unmanaged(C++) languages? How will our imperative languages (static) become more functional (dynamic) in nature while preserving their static "experience" for developers?
Answers to these questions and much more are to be found in this interview with some of Microsoft's leading language designers and programming thought leaders: Anders Hejlsberg, Technical Fellow and Chief Architect of C#, Herb Sutter, Architect in the C++ language design group, Erik Meijer, Architect in both VB.Net and C# language design and programming language guru, and Brian Beckman, physicist and programming language architect working on VB.Net.
This is a great conversation with some of the industry's most influential programming language designers. Tune in. You may be surprised by what you learn...
Some quotes and paraphrases that caught my attention:
- "No language can ignore concurrency and stay successful for mainstream programming over the next five, ten years."
- our entire industry is based on composable software and we manage to do composable software with the languages, libraries and frameworks we have now. it's rather amazing that we can do it.
- "all you can do as a language designer is slow down the accrual of new features that will eventually lead to cave in."
Now if you aren't sure you know what a lambda expression is, or what makes a language functional as opposed to imperative, or what LINQ would have to do with that, or what composability is, then you may think you don't want to watch this video. But you'd be wrong! Spend this hour with these gentlemen and not only will you learn all those things, you'll learn why it affects you and why you should be following, at least a little bit, the current work in this area.
Watch it!
Kate
 Saturday, January 06, 2007
Joe Duffy has moved from the CLR team to Parallel LINQ. How do you like this offer:
We're looking for supersmart technical people to join the team and help change the face of programming for anybody writing code on the CLR or VC++. PLINQ isn't the only project. Solid CS skills are a must, but you don't necessarily have to be a concurrency guru (right away).
Help change the face of programming? Sounds (almost) irresistible to me!
Kate
 Wednesday, September 27, 2006
I've been dying to announce this one. I'm leaving Tech Ed Developers one day early to go to Copenhagen and do a C++ day November 10th. There's an announcement in Danish on the msevents site now. Here's the agenda:
Agenda
Kl. 9.00-10.15: Visual C++: Højere produktivitet med Visual Studio 2005
Visual Studio 2005 indeholder en lang række produktivitets-forbedringer for C++ udvikleren. I denne session ser Kate Gregory nærmere på de mange nye features og forbedringer Visual Studio 2005 tilbyder. Endeligt viser hun en række tips og tricks, som ingen C++ udvikler bør være foruden.
Kl. 10.15-10.45: Pause
Kl. 10.45-12.45: Sådan flytter man C++ applikationer til .NET
Se hvordan man flytter C++ projekter til .NET og CLR’en uden at skulle porte eller genskrive hele koden. Lær hvordan man nemt kan migrere eksisterende native C++ kode – inklusiv MFC applikationer – til at køre under .NET. Kate Gregory vil også gennemgå strategier til at vælge hvilke dele af applikationen, der skal forblive i native kode og hvilke der skal flyttes til managed kode (.NET). Og endelig viser Kate hvordan du kan bruge .NET’s klassebibliotek og du kan bygge managed ”Wrappers”, som muliggør genbrug af eksisterende C++ klassebiblioteker.
Kl. 12.45-13.30: Frokost
Kl. 13.30- 14.30: Fremtiden er nu
Så længe, der har været software, har der været pc’er med stadigt stigende clockfrekvenser. Nu lader det til at den tendens er stoppet – i dag bliver maskinerne hurtigere ikke fordi clockfrekvens stiger, men forbi de får stadigt flere CPU’er. Det betyder at selv enkeltbruger-applikationer bliver nødt til at være multi threaded. Det skræmmende ved dét, er at de fleste udviklere ikke kan skrive thread safe kode. Kom og se, hvad det kan få af betydning for fremtidens software udvikling!
Kl. 14.30-15.00: Q&A
Kl. 15.00: Tak for i dag
I will be speaking entirely in English. (I'm not sure what "Sprog: Dansk" means but I hope it doesn't mean Language: Danish.) So far I have learned the word "Tak" and hope to use it extensively. I believe "Tak for i dag" means "thanks for the day" and that is going to be my motto this fall. Should you happen to live in Denmark, or near enough to it that you could attend this, and yet not know enough Danish to muddle through this agenda, I will tell you the titles of the sessions as I submitted them:
- IDE Features for Visual Studio 2005
- Moving C++ Applications to the Common Language Runtime
- The Future is Concurrent
See you there, I hope!
Kate
 Thursday, September 14, 2006
Larry blogs that improving your app's performance means concurrent programming. Not just OpenMP, which is very cool, as he points out elsewhere, but all the hard stuff: "disk contention, memory locks, cache corruption, etc". Still, here's a tempting paragraph from that DevX article:
It's perhaps surprising that C++, with its reputation for difficulty, actually provides one of the easiest ways to exploit multi-core and multiprocessor systems. OpenMP, a multiplatform API for C++ and Fortran, uses compiler instructions to automatically generate all of the support code needed to parallelize code sections. In the simplest case, which is what we're going to focus on for this article, simply wrapping a processor-intensive loop in a #pragma block can lead to about a 70 percent performance increase on a dual-core or dual-processor system and enjoy a similar "free lunch" on the quad-core systems that you build in the future.
That's right. Concurrency is vital, and C++ takes care of one kind of concurrency astonishingly easily. It's true. Later in the article he plops a #pragma just before each of two loops, and his app runs 70% faster. How's that for fun? Go on, read the article, try it yourself.
Kate
 Wednesday, May 10, 2006
In my concurrency talk today I had a total brain freeze and could not remember the last name of the author of the concurrency book I wanted everyone to read. The title is Concurrent Programming in Java: Design Principles and Patterns and the author is Doug Lea. Don't let the word Java in the title fool you: this is a book that explains the concepts of concurrency no matter what language you're going to use in the end.

Kate
 Thursday, March 23, 2006
It looks like I never added an entry about speaking at Devteach. I just made my travel plans to get there. I love taking the train to Montreal -- I'll end up within walking distance of the conference hotel, save time compared to flying, and travel in comfort the whole way.
Devteach is a delightful conference with a friendly atmosphere. I count 8 RDs among the speakers list, plus a whole pile of MVPs, Julie, and some of my favourite Microsoft people... DEs mostly. There is one track in French and the rest of the talks (about a hundred) are all in English.

My talks are:
- Moving C++ applications to the CLR
- The Future is Concurrent
There's plenty for everyone: web, smart client, data, security, patterns and practices, testing, Team Systems, architecture -- if it's a development topic, someone is speaking on it. On top of that the conference hosts the Canadian User Group Leader Summit (and gives user group members a discount on attendance - contact your user group leader for a code) and the Canadian Regional Director Summit. It's a great place to meet the stars of the Canadian developer community, and a number of folks from the American northeast who love to come up to Montreal. See you there!
Kate
 Tuesday, January 24, 2006
The word is starting to spread about the concurrency skills we are all going to need sooner rather than later. And work is underway at dev-tool-makers to offload some of that work to the "system" -- maybe the language, the compiler, a library, the framework, the operating system -- anything other than the programmer because most of us are even worse at threads-and-locks than we were at malloc-and-free or new-and-delete or any other kind of memory management.
If you were wondering about Microsoft's committment to this (and the PDC talks on the topic weren't enough to convince you) then read Kang Su's latest blog entry about the new Bay Area Office they are establishing for this sort of progress... and wait till you see who's going to be working there...
Kate
 Sunday, January 08, 2006
The December lull is past, for sure. Here's where I'm headed in the next month or so:
- January 11th, CNY .NET Users Group, Syracuse NY, Windows Forms: Deploying Applications with ClickOnce: Advanced Topics
- January 14th, Toronto Code Camp, Yonge and Bloor, The Future is Concurrent
- January 17th, Regina .NET Users Group, Regina Saskatchewan, Managing the Software Lifecycle with Visual Studio 2005 Team System
- January 18th, Saskatoon .NET Users Group, Saskatoon Saskatchewan, Managing the Software Lifecycle with Visual Studio 2005 Team System
- February 7th, SouthColorado .NET, Colorado Springs CO, TBD but probably the ClickOnce talk
- February 8th, TRINUG, Cary NC, TBD but probably the ClickOnce talk
That should keep me from being bored, eh?
Kate
 Monday, November 07, 2005
I love being "in the loop" on new software. It can get kind of surreal, though, when you are at a conference and find a technology kind of boring and everyday, and skip the sessions on it since it's "old stuff" ... and then realize it isn't even shipping yet! I spend time in betas, alphas, SDRs and the like, so it's often years between the time I start working with a technology and the time it releases. When I speak at Tech Ed I tend to hang at the cabanas where I can hear real stories of how people are using the tools and the problems they need help with.
The PDC though, that's a different story. Well, it should be anyway. The PDC is all about the future, right? The workflow announcement was a big deal, but the material wasn't new to me. I began to worry if I would ever attend a session that sparked my interest in something new and important. Then I found it. I've waited to blog it until the sessions were available online.
What Jan Gray had to say in FUN302 and Herb Sutter introduced in TLN309 totally grabbed me. Because clock speed cannot go up any more we all have to write concurrent code even if it's single user:

And since most people can't write good concurrent code (see Herb's Singleton example which still doesn't work even with the double checking and the volatile keyword, at least not all the time) then the OS or the framework or the language needs to do it for them. Herb and Jan are proposing different approaches, but these two guys are among the smartest I know (I've known Jan almost 30 years) and if they are both into this, then I need to learn more about it. You probably do too.
Kate
© Copyright 2010 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 1.8.5223.0  | |  | Page rendered at 9/10/2010 7:47:24 AM (Eastern Standard Time, UTC-05:00)
Pick a theme:
|
On this page....
| | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|
| 29 | 30 | 31 | 1 | 2 | 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 | 11 | | 12 | 13 | 14 | 15 | 16 | 17 | 18 | | 19 | 20 | 21 | 22 | 23 | 24 | 25 | | 26 | 27 | 28 | 29 | 30 | 1 | 2 | | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Search
Navigation
Categories
Blogroll
Sign In
|