Friday, May 23, 2014
I've completed my development of my latest Pluralsight course and I'm just waiting for it to go live. Here are the "teaser" images I posted to Twitter and my public Facebook page as I was developing it:
This was fun to put together and it's nice to get into things so many people don't know. I hope you take a look at it once it's live and learn from it!
Wednesday, April 30, 2014
Do you think Agile and Enterprise can go together? Are you a senior .NET developer who is looking to lead? If so, a client of mine is looking for you. Their job description includes:
We’ll look to you as a team leader who embraces a solid leadership capacity that has truly valuable impact on our team. In this senior role, you will participate in all aspects of the software development lifecycle including planning, technical design and architecture, construction, documentation, testing and deployment. Additionally, you’ll have a big picture view and the opportunity to play a role in the design.
and they're expecting:
- Proven and deep experience with different versions of .NET Framework and C#/ASP.NET development
- Demonstrable experience working on N-tier architectures
- Solid understanding of the full development life-cycle
- Knowledge and experience with Agile development methodologies (e.g. XP, Scrum)
- Champion of agile engineering practices (e.g. TDD, continuous integration, refactoring etc)
- Good understanding of design patterns and their application
- Experienced unit testing frameworks
- Computer Science (or related) degree
- Knowledge of/experience with Sitecore is an asset
- Knowledge of/experience with Ektron is an asset
- Knowledge of/experience with Sharepoint is an asset
Sounds like you? Then get in touch with me and I'll make an introduction.
Monday, March 17, 2014
Office Lens went live in the Windows Phone Store today. I happened to have a list of things to do on a whiteboard in my office, so I gave it a try. I had already taken a picture of the whiteboard to transcribe but I went back to the board with the app installed to see if I could save some time.
Here's the picture Office Lens took (resized to 400 pixels wide)
Here's how that looked when Office Lens cleaned it up and put it in a OneNote document for me (I copied the picture out of OneNote, cropped it and resized it):
Much nicer - the glare spots are gone and the background is cleaner. The skew that resulted from taking the picture on an angle (a defensive action to keep the glare out of the important parts of the image) is also gone. As is, this can go into an email. If my handwriting was neater, One Note could have tried to extract the text from it. But this is a lovely improvement and Office Lens is free, so why not give it a try?
Friday, March 07, 2014
Over the years I've used a lot of tools to get screenshots. My old standby is Paint Shop Pro (copyright 1991-1997 it says on the splash screen, and I recall I deliberately didn't stick with an upgrade that introduced complicated stuff I didn't want, like layers.) I like it because I can set up a time delay for a shot which lets me get tooltips and the like ready when the capture happens.
Alas, on this Windows 8 machine with a second screen, something confuses Paint Shop and it doesn't capture the whole screen. I experimented a bit with the Snipping Tool that comes with Windows, but it doesn't have a time delay or a keystroke, so I can't get tooltips, context menus, or anything else that requires me to interact with the app before the shot.
I got desparate and started using the PrtScrn button on my keyboard. Your keyboard probably has one. I often type Shirt-PrtScrn but I just checked and the Shift is unnecessary. This captures the whole screen (or both if you have two) and puts it in the clipboard buffer. From there I can paste into whatever I edit images with (usually Paint Shop to be honest) and then crop to the part I want.
So far this is boring. I mean really, this is what you could have done TWENTY YEARS ago. And it's been fine for me except that cropping part. But yesterday I learned about Alt PrtScrn. It gets you just the current window! And if you let go of Alt before Prt Scrn, the alt is not passed along to the underlying app either. This is going to save me some seriously annoying cropping.
Friday, February 28, 2014
I have updated my Visual Studio Pluralsight course for Visual Studio 2013 and Part 1 is now live. It covers features that were newly added in the 2013 release as well as older material (so you don't need to take the 2012 courses before you take this one.) It focuses on how to work Visual Studio rather than on the mechanics of a particular programming language or framework. The demos are all in C# but almost all of it applies to other languages equally well. (As C++ developers know, some things we don't get, but we're used to that.)
A number of people who've been using Visual Studio for years have reported to me that they decided to watch the course just to see what features I felt were worth covering - and then accidentally learned something! Chances are you will, too, so why not watch on double speed and see if something comes up you didn't know before?
Sunday, February 23, 2014
I was invited to speak to some Imagine Cup contestants in Calgary and delighted to accept. I spoke to the teams informally for quite a while about judging and judges and general team tips. I was really happy to see some teams from previous years so I could hear what happened after they entered. If you're a student (undergrad or grad) and would like to enter, there is theoretically still time, but realistically it would have been better to start several months ago since you do have to build working software. Why not take a look at the contest (there are over a million dollars in prizes, and you can get a cool trip somewhere and meet some industry high flyers) and start pulling together a team for next year? There's a pretty good introduction for Canadians on the Microsoft Canada blog.
For those of you who were at the sessions, here are the slides I used in the afternoon. I talked about the new C++ features and why they matter, and demoed C++ AMP as a great motivator for using C++. (I wanted to upload the pptx files, but they're too big for the blog, so I've exported PDFs.)
GregoryCppAMP.pdf (1.65 MB)
Cpp11and14.pdf (556.51 KB)
Wednesday, January 01, 2014
I'm a January 1st MVP, which means that while dealing with email that has piled up over the holiday break, I'm usually surprised to find my MVP renewal amongst the hundreds of other messages coming in. This year is no exception.
According to the MVP blog, there are 1011 of us awarded today. I'm happy to be included once again!
Thursday, November 28, 2013
In a word, it was exhausting. But it was also cool from a technical point of view. Here's a still of us I grabbed from the video recording:
The screens in front of us are touch screens. I forgot how much fun it is to demo Hilo on a touch screen. Here's how it looked from my side (sorry about the lunch mess):
And a better view of all three cameras:
You can see that part of my job was to imagine people who wanted to learn C++ on the other side of those cameras. And finally, here's James hard at work getting something onto the demo machine:
I believe this picture immortalizes the moment he tweets about here:
Great day and good fun. Hope everyone learned a lot!
Wednesday, November 27, 2013
Channel 9 has all 7 pieces of the MVA Day I did with James McNellis available online now!
We went very fast through this one day introduction. If you'd like a slightly saner pace, please check out my Pluralsight courses, C++ Fundamentals and C++ Fundamentals - Part 2. If you're not a programmer, and you'd like to "begin at the beginning" with C++, try Learn How to Program with C++. There is a free trial for the Pluralsight courses to get you started.
Saturday, November 23, 2013
The C++ Jumpstart full day event on Tuesday was a blast! James and I really enjoyed ourselves and from the looks of the chat room, so did the attendees. We had literally thousands of people registered for the event and in a few weeks the recording should be available (check http://www.microsoftvirtualacademy.com/Live-Training-Events
for a recording link - scroll past Live Events to Recorded Events) for even more people to view.
Friday, November 22, 2013
I've been busy this fall with the release of Visual Studio 2013. One of the things I've been working on is live now: a new Pluralsight course
. I focused on new things that matter to C++ developers, whether that's compiler support for language changes (hello, variadic templates!) or IDE changes that were implemented for C++ as well as "the other languages". Here's the description:
The C++ Language and the Standard Library both changed dramatically with the release of C++ 11. Some of these features were not implemented until Visual Studio 2013, and those are presented in this course. You'll learn about variadic templates, improvements in constructing and initializing variables, and rawnstring literals. In addition a number of productivity boosting enhancements in debugging, editing, and using libraries are in this version and you will learn how to take advantage of them.
If you don't have a Pluralsight subscription already, there's a free trial available, so please check it out
Monday, November 18, 2013
Are you joining us tomorrow for a one-day introduction to C++ at Microsoft Virtual Academy? (No? There's still time to register.
) Then you might want the sample code we'll be using. We're probably going to go too fast for you to actually follow along in your copy of Visual Studio, but you can try. I've attached a zip of the code to this post.
KateDemos.zip (164.55 KB)
Tuesday, November 12, 2013
A lot of people (a lot) have asked whether the November 19th session (a whirlwind tour of C++ for those who don't know it) will be recorded. I'm happy to confirm that it will be. On the Live Events Page for Microsoft Virtual Academy
you will see both future and past events. Here you can register for our session
, and about two weeks afterward a link will appear on this page to let you watch the recording.
Please help spread the word to people you know who want to learn C++!
Wednesday, November 06, 2013
If you know someone who wants to get started using C++, and has done at least a tiny speck of programming in other languages (so I don't have to explain what a loop is) then you might want to point them at this free online event:
C++: A General Purpose Language and Library
Attention developers: here’s a painless way to learn the basics of C++ from the ground up, whether you’re updating legacy code or writing brand new, efficient, and high-performance code for new platforms like phones and want to take advantage of C++. You’ll learn the fundamentals of the C++ language, how to use the language and its Standard Library effectively, and how to use the Visual Studio environment for developing C++, including debugging, exploring code, and understanding error messages. This is your starting point for building software in C++.
James McNellis (of the Visual C++ team) and I will spend the day walking through the fundamentals of the language and the Standard Library. We're going to have a great time. Please send us some beginners to keep us company!
Wednesday, October 02, 2013
In yesterday's session, I showed a Windows 8 store app that loads an image and then draws an animated ripple over it.
If you would like to get the code, and more importantly the documentation that explains the code, it's on Codeplex. Mixing and matching a little DirectX into your Windows 8 C++/CX app is remarkably easy, so why not take a quick look?
Tuesday, October 01, 2013
I am months behind. I will post some of the stuff I've been meaning to post, but later. Right now I need to make new entries so people can get current information. Remember, never blog about why you're not blogging. Just blog.
Wednesday, April 03, 2013
As it says on the Bristol GGD website:
Our April dinner is being held on Thursday 11th in conjunction with the ACCU 2013 conference.
The event starts at 7pm for 7.30pm, at the Bristol Marriott Hotel City Centre. A few female IT professionals will talk briefly about themselves and their jobs. There will then be time for discussion and networking.
Read more and register http://girlgeeksataccu2013.eventbrite.co.uk/
I can't wait! I'm delighted to be one of the speakers and I'm looking forward to meeting lots of new people.
All are welcome, whether attending ACCU or not. Men are welcome at all GGD but are asked to come in the company of a woman so that women can experience being the majority.
Thursday, March 28, 2013
The week of April 8th, I'll be in Bristol, UK, attending ACCU
. I'm looking forward to it tremendously - there is a great lineup of sessions and I only wish I could have spared the time to stay on for the C++ committee meetings that will follow it. I am, however, making the most of my time in that delightful city. Having enjoyed Guy Smith-Ferrier
's presentations in several different locations, including my own East Of Toronto .NET User Group
, I can now turn the tables and present at his.
Of course I want to do a C++ talk. But it's not a C++ group. So to be fair, I've decided to do two talks:
First, Use All of Visual Studio to Become a Better Developer
Most developers know how to use Visual Studio to do the basics of being a developer. You can create a solution, add projects to it, edit code, and run it. Easy, right? In this session, I want to show you how to be a better developer by using parts of Visual Studio you might not know about. Save hours of debugging time, move around your code more smoothly and don't lose your place, see what you want to see and find what you need to find. Demos will be in C# with Visual Studio 2012.
Second, C++ in 2013 – Why on earth?
There are so many languages a developer could use today. Yet some developers still use C++. Some developers are learning C++ when they already know C# and other younger languages. This session will show you why that is happening, and why you might want to learn the new C++ yourself. It's nothing like the C++ you remember, and it can be a very useful language for you to know.
Please do register
for these, and I hope to see you there!
Sunday, January 27, 2013
I write a lot in Microsoft Word. A Lot. And much of it is for my own purposes - say a list of things I need to keep track of, or a summary of my meeting notes. I use the Ctrl-F command to bring up the navigation pane, and I click the leftmost tab on that pane to show an outline view instead of the Find dialog:
Right away you can see something useful going on here. The Four section is highlighted yellowy-orange because that's where the cursor is. If I add sub-sections, the outline gets even more useful:
I guess you knew that you could click a heading in that navigation view and the cursor would scroll there. That's mostly what I use it for. But there are some documents that I have in a two column view, so that I can fit more short lines onto a page. (It's a perfect approach for lists that are slightly more complicated than a to-do list, for example.) This two column layout makes it really hard to select one section with the mouse and move it around, especially if it's a section that crosses the column break.
Or imagine a really long document where each of these sections is about 20 pages long, and you want to move "Possible Risks" before "Motivations for the Schedule". You could click at one place, page down a lot, and shift click, but it's awkward. I just learned I can drag and drop sections in the navigation pane! That's right, click on the Two in the nav pane, drag it a little and watch for the black horizontal line:
When you let go, the section has moved (and the whole section is selected):
This saves me so much time and frustration, I just had to share it. Maybe your client apps can offer some truly delightful drag and drop too?
Friday, January 04, 2013
Over the last few weeks, I've been accumulating links to appearances of mine, and it seems like a good idea to share these.
- OReilly webcast: This is a reasonably horrible recording (sound quality and video size) of a webcast I did back in August. It shows why C++ AMP is so cool and why you might care about it. I recorded it to promote the book but I'm not very happy with how it turned out. You'll probably do better with the recording of my Tech Ed talk.
- Pluralsight interview: This is specifically about my Using Visual Studio 2012 course. You can download the audio or read the transcript as you prefer. My favourite quote from the conversation:
It’s not just like, oh, I saved five seconds. I can go home five seconds earlier today. It’s that you’re less likely to forget what you were doing because you don’t have to put so much time into the mechanics and you just stay in flow. And to me, that’s a ramping up of two or three times the amount of code I can produce when I use everything the tool has to offer.
- Dot Net Rocks panel at DevIntersection: Here Scott Allen, Michele Leroux Bustamante, Woody Pewitt, and I discuss whatever we feel like, with occasional leading questions from Carl and Richard, and some Canadian whisky too.
Even though I haven't been blogging much, I have been doing a lot, and I hope these links will help you to discover some of it.
Tuesday, November 20, 2012
While I was in Nashville as part of the Dot Net Rocks Roadtrip, we recorded an episode of The Tablet Show. The recording is online now and I'll have to give it a listen myself to remember what we talked about - Hilo, for sure, and C++ AMP, and just generally why C++ can be a great choice for tablet development.
Friday, November 16, 2012
Don McCrady, who with Jim Radigan did an inspiring talk on performance at Build this year, has blogged about a proof-of-concept project that adds C++ AMP to CLANG and LLVM using OpenCL underneath instead of using DirectX the way Visual Studio does. This is super cool! As Don says:
When Microsoft announced C++ AMP back in June 2011, we told you that we would release the C++ AMP specification under the Microsoft Community Promise – essentially opening up the specification to allow any C++ compiler implementer to add C++ AMP to their compiler. Shevlin Park serves as an example of the platform portability potential intended by the Community Promise.
Do read Don's post and follow the links to learn more about Shevlin Park. The praise for C++ AMP as a programming model, and the likelihood that multiple compilers will support it, should make you feel all warm and fuzzy about learning it. You might even want to use my book to do so
Saturday, November 03, 2012
Day 4 was the first time I started to experience what some others had been complaining about with not being able to get into the room for a popular talk. I guess I'll just have to watch the recording.
I remembered to take some pictures of the signage that directed us around to help cope with being in two different buildings plus the tents:
And the map on the ground outside the building:
There were also people holding giant arrows to point attendees towards lunch or shuttles or whatever. It would have been extra-ordinarily difficult to get lost. Herb's session Friday
was everything it had promised to be. I just love the idea of http://isocpp.org/
and I intend to make good use of it when people ask me "getting started" questions.
Finally I had to accept it was ending. They were even tearing the tent down already:
I used the airport WiFi to download sessions to watch on the way home. Good week, Microsoft!
Friday, November 02, 2012
One of the stickers for the badge this year was to attend an 8:30 session. I achieved that by going to Alive with activity: Tiles, notifications, and background tasks which, to be honest, I chose as much to see what Kraig Brockschmidt is doing lately as to learn about tiles and toast. But I'm glad I went, because it was a very good talk.
I've come to Redmond so many times, but I never particularly noticed the colours changing. This week they've been spectacular. I had some meetings in other buildings so I was able to get out of the giant lines at least long enough to take pictures of the giant lines
And yes, it rained, but they were ready for that:
I really like the vibe that came from being on campus. Speakers tended to get up from their desks, jump on a shuttle or walk over, pull on the shirt and talk to us. I really got the sense we were being welcomed into their home.
I also went to Tips for building a Windows Store app using XAML and C++: The Hilo project
- how could I not, since I was on the project. Excellent summary of some hard-learned lessons and one you should totally download and watch.
Wednesday, October 31, 2012
Build this year is less focused on announcing things (though the Windows phone and native C++ material is brand new) and more on drilling down into topics that we've had a year to experiment with and want some deep study on. Most of the speakers are from product teams. What's fun for me is that most of the attendees are very motivated and here to learn.
I'm also enjoying how full the rooms are for C++ sessions. Here's Tarek's Day 1 session
BTW, that was session 3-000 demonstrating that (a) the sessions are numbered using zero-based indexing and (b) the C++ sessions were first on the list.
And here's the C++ performance talk
from right after the keynote this morning:
This room was standing room only. It's possible all the C++ talks were, I don't always sit at the back where I can see whether people are standing back there or not. And you may not be able to tell from the picture but there were plenty of young developers there too.
There was also a nice session on Project Austin
which is a lovely reference app showing how to use DirectX in a Windows Store app. You can get the code from Codeplex
and take a look at it yourself or just use it to take beautiful notes on a tablet.
Speaking of reference apps, Hilo (which I've written about before) is now an official sample
in the SDK and on the Dev Center. There's a Hilo session
here at Build too. Within a day or two these links should have recordings and slides for you to download.
Want to know more about C++ at Build? Here's less than two minutes on just that topic
. If you can, please watch Herb's talk on Friday
. It promises to be exciting!
Tuesday, October 30, 2012
I arrived in Seattle Sunday night and filled Monday with meetings, then lined up to register for Build. I'll spare you the photos of the giant lineup that everyone else seems to have taken, and show you these delicious cupcakes from the welcome reception:
For me the most exciting part of the lineup was the revised session schedule I was handed, with lots of sessions on writing Windows Phone 8 apps in native C++. I cheerfully added them to my schedule along with all the existing sessions on C++. (The sessions are recorded so check them out yourself
And I ended up at dinner with a lot of geeks. We were unable to resist a little side by side comparison of our phones:
It sure made me want a 920 - good thing it turns out I'm getting one
Saturday, October 27, 2012
I really enjoyed my evening in Nashville. It was fun answering the question: C++ - Why on earth? I think I even convinced a few of you.
Of course the biggest Nashville attraction for me is my friend Billy Hollis:
Look what a luxurious meeting room they have! Couches and tables and general comfort. And yes, I got to see the inside of the RV:
If I got you interested in C++, you might like some links:
Thanks for the visit, and I hope to be back!
Saturday, October 20, 2012
Is the C++ Renaissance real? Well I'll tell you one thing: conference organizers are way more receptive to all-day C++ sessions than they used to be . I'll be doing yet another one this year. This time it's in Las Vegas Dec 9th, as part of DevIntersection. Here's the abstract:
PRECON04: C++ in 2012: Modern, Readable, Safe, Fast (9:00 AM - 4:00 PM)
C++ is gaining momentum as a development language, so whether you've never used C++ or stopped using it a decade ago, it may be time to brush up on your skills. With a new standard release providing new keywords and capabilities, C++ is a featured language for many of the new Microsoft technologies and enables some amazing speed-ups of your application using libraries like PPL and C++ AMP. What's more, Visual Studio offers tools to native developers that have only been available for managed developers in earlier versions. This all-day workshop will show you what all the fuss is about and give you the skills you need to understand the advantages of C++ today and how to start applying those benefits to your application.
If you're an experienced and current C++ developer, you may not need to come to this session. But if you were thinking you needed a refresher, here's a great way to get one, and at the same time look at some of the cool new stuff that is available to you once you know C++. If you've never written a line of C++ code in your life, but you're solid in C# or Java so you know the basic syntax (if, while, etc) you should be able to follow this session, though it won't teach you all the fiddly bits of C++ syntax and make you a C++ developer from scratch. It should, however, give you the inspiration you might need to go and learn all that fiddly syntax, and understand why we have it.
The workshop costs an extra $399 for conference attendees and will cover a lot of ground: new language and library goodies in C++11, ALM Support for C++ developers in Visual Studio 2012, a quick taste of some PPL and C++ AMP power, and plenty of advice on best practices and modern C++ style.
I hope to see you there! Don't forget, if you register for the conference before Nov 1st, you'll get a tablet!
Friday, October 19, 2012
Microsoft and Stack Overflow are joining forces on a fun Windows 8 development contest. And since one of the strengths of StackOverlflow is how the community reviews all the content, it only makes sense that there's a serious review component to this contest! And it's not US-only (for once!) so as long as you're over 18 and don't live in Cuba, Iran, North Korea, Sudan or Syria you're good to go. Well, you need a StackOverflow account, but you needed one of those anyway, right?
Top prize is $5,000 and there are shiny achievements and everything - so get going!
Thursday, October 18, 2012
I love the fact that big-name speakers are willing to come and speak at the East of Toronto .NET User Group. You don't have to live in a big city (or struggle through big-city traffic on a visit) to keep up to date with the latest technology and meet fellow developers. The latest example:
As the website says:
Beth Massi is a Senior Program Manager on the Visual Studio team at
Microsoft. Beth is a community champion for business application
developers and has over 15 years of industry experience building
business apps. She is a frequent speaker at various software development
events and you can find her on a variety of developer sites including
MSDN Developer Centers, Channel 9, and her blog http://www.bethmassi.com. Follow her on twitter @BethMassi
And what will she be talking about?
When and where?
|6:30 - 7:00||Socialize and refreshments|
|7:00 - 8:30||Presentation|
Pickering Central Library
Auditorium (2nd floor)
One the EsplanadeRegister now
Pickering, ON L1V 6K7
- it's a good way to spend a Wednesday night.
Wednesday, October 17, 2012
Here's an amazing grand finale to the Dot Net Rocks Roadtrip this year -a full on developer conference in Las Vegas, Dec 9th - 12th.
I love this answer to "What is DevIntersection?"
This three-day conference marks the final stop on the USA leg of the .NET Rocks! Visual Studio 2012 Launch Road Trip! DevIntersection is a developer conference PLUS the recording venue for the last stop of the three-month road trip hosted by Richard Campbell and Carl Franklin. We're bringing together some of the best speakers (and our personal friends) for a conference that is relaxed and educational, plus forward looking as you and your company start to figure out what to do with Windows 8 and Visual Studio for the next few years. Our attendees tend to be .NET software developers plus other members of their teams. DevIntersection is an educational onsite conference for anyone who is attached to a .NET development programming project who is looking to use Visual Studio to develop apps for desktop, web and mobile platfoms.
I have two breakout sessions - one on C++ AMP and one on developing for the Windows Store in C++. No .NET in either one of them; this is a conference for expanding your horizons, after all.
For $1595 you get three full days of sessions. And if you register in October (hurry!) you will also get a new tablet. Build sold out in hours, so this is your chance to get access to deep and current information for developers across the Microsoft ecosystem. See you there!
Tuesday, October 16, 2012
I love writing courses for Pluralsight. I can reach a lot of people and I know the production quality will be top notch. My most recent course is Introduction to Visual Studio 2012 Part 1. It's aimed at people who've never used Visual Studio before, but even a seasoned user will learn something from it - just use the cool speedup feature to zip through things that are already familiar, like the difference between a project and a solution. I cover some very nice productivity features and there's sure to be something in there that's new to you.
Another recent Pluralsight development is that the MSDN Subscriber benefit has expanded to cover MSDN subscribers worldwide, not just in the US, and five more courses were added. If you have an MSDN subscription, you can watch all these courses free:
- Agile Team Practices with Scrum
- ALM for Developers with Visual Studio 2012
- ALM with Team Foundation Server 2010
- ALM with TFS 2012 Fundamentals
- Building Windows 8 Metro Apps with C# and XAML
- Building Windows 8 Metro Apps with C++ and XAML
- C# Fundamentals - Part 1
- C++ Fundamentals
- Continuous Integration
- Developing for Windows 7
- Introduction to .NET Debugging using Visual Studio 2010
- Introduction to Building Windows 8 Applications
- Introduction to Visual Studio 2010 - Part 1
- Introduction to Visual Studio 2010 - Part 2
- Introduction to Visual Studio 2012 - Part 1
- Introduction to Windows 7 Development
- Kanban Fundamentals
- Microsoft Fakes Fundamentals
- Solution Modeling with UML in Visual Studio 2010
- Test First Development - Part 1
- Test First Development - Part 2
- Web Application Performance and Scalability Testing
- Windows Azure Diagnostics
- Windows Phone 7 Basics
The bolded ones are mine. Here's how to sign up - do it by Dec 11th 2012 - and get your one year free access to all these great courses!
Monday, October 15, 2012
Hilo is a reference project written in C++/CX for Windows 8 by the Patterns and Practices team. I was delighted to be part of this project and think it turned out very well. I use the Hilo codebase to remind myself how to do certain things when writing a Windows Store app in C++ (something I'm in the middle of doing for another project.) The accompanying document is rich in best practices for Windows 8 development, async work, modern C++, unit testing, and more. Now the latest version has been released, updated for Windows 8 RTM.
Hilo itself is a photo viewer. Before you roll your eyes, bear with me. I actually think it's better than the one that ships with Windows 8. It shows you some of your pictures as a sort of overview:
Click on one to interact with it. You can right-click to bring up both the app bar at the bottom and a nice strip-navigation control at the top:
If you want to see something cool, use Cartoon Effect. This leverages C++ AMP to cartoonize the picture. I've shopped this image a little to reduce the width (pulled the appbar in from the edges) but the cartoon work was done by Hilo - and super quickly.
If you have any thoughts of writing Windows Store apps, and C++ is a possibility for you, get over to Codeplex, download the Hilo code and the .chm file, and get reading!
Friday, September 28, 2012
I’ve been writing a book, though I swore I wouldn’t write any more books, and it’s finally done! You can buy a Kindle version from Amazon or an e-book directly from O’Reilly today. The paper copies will be ready in about a week and you can order them from O’Reilly or Amazon. The book is published by Microsoft Press, but O’Reilly handles the actual production of the books.
I’ve got a page dedicated to the book
with links for you to buy it, get the code, submit errata, and whatever else you might want. (If you think something’s missing, comment here and I’ll try to take care of it.)
Thursday, September 27, 2012
ago or so, when Visual Studio 2010 launched, the crazy duo of Richard Campbell
and Carl Franklin – if you’re a Dot Net Rocks listener, they’re the voices in
your head – took their show on the road and drove an RV across the USA holding
live Dot Net Rocks evenings pretty much every night for weeks on end. Each city
featured a surprise “rockstar” flown in for the occasion. I did St Louis and
had a great time. Now they’re doing it again and this time announcing us in
advance – I’ll be in Nashville Oct 24th.
Registration is free, and please do register
using the big red Register button for your city (I hope to see you in
Nashville). You can track them online too and follow
the #dnrRoadTrip hashtag on Twitter.
If you’re in
Toronto, don’t miss the October 13th Saturday-a-ganza at the
Microsoft Canada offices featuring Michele Leroux Bustmante! I know I won’t!
Wednesday, September 26, 2012
writing courses for Pluralsight. I have quite a few and am working on more
right now. They like to interview their authors about each course. Here's one about my latest for them. If you’ve
done the whole course you won’t learn anything new from the interview, but if
you’re curious about writing what we’re now calling Windows Store applications
for Windows 8 using C++ and Visual Studio, perhaps this interview will help you
decide whether it’s something you want to learn. There’s a transcript as well
as an audio link.
Tuesday, September 25, 2012
We now have a Windows Phone application in the marketplace. We wrote it for ourselves, to learn the framework and to give us a way to track how we spend our time. The minute we started designing it, we discovered everyone in the company wanted a different way to track. People who do pretty much the same thing all the time (coding, for example) wanted to track project-by-project. People who work on only one project at a time wanted to differentiate between types of work, like meetings or email or writing documents. We decided to make it as simple and flexible as we could. I was inspired by a story of a time tracking technique involving physical objects. You get 5-10 paper cups and write things on the cups like Email, Meetings, and so on. Then you get 32 poker chips, all the same colour. As each 15-minute piece of time goes by, you toss a chip into the cup. It is supposed to help you understand that you very literally “spend” your time. And at the end of the day you can look in the cups and see where your day went.
like to track your time like this – hit the + button to toss a “15 minute”
square into a particular “bucket” or just hit the falling drops button to
accumulate time in one bucket until you change tasks – please try our app and
let me know how it works for you.
Monday, July 02, 2012
I'm headed to Australia tomorrow (I won't get there till Thursday though) and I'm going to be doing some C++ talks while I'm there. Both are aimed at folks who haven't been keeping up to date on all that's been happening in the world of C++ over the last few years.
On Tuesday, July 10th, I'll do a free Tech Breakfast on the new features of the C++ language in the standard once called C++0x and now called C++ 11. I'll demonstrate how a lot of these features are already in Visual Studio 2010 and some in Visual Studio 2012. It runs from 9am to 11 am in Sydney, and you do need to pre-register.
Then all day Wednesday, July 11th, I'll do a course on modern C++ development with Visual Studio 2010 and 2012. I'll cover language changes, tool changes, drill into my favourite feature - lambdas - and show some of the cool things they enable, and give you some advice on best practices for writing C++ today. This course costs $300 Australian and will be held in Sydney just once.
I realize many people who read my blog don't need to come and learn this material. But perhaps you know someone who does? There is room in both sessions for more people - and I want to reach as many people as possible, so please spread the word! Registration links for both session are on the SSW page announcing them
Tuesday, June 26, 2012
As I am soon to discover first-hand, Australia is a very long way from North America. So when Adam Cogan makes the trip, he often extends his stay to see more people or places. Last September when we all gathered for //build/, Adam tacked a mini Canada tour onto his North American stay and we got together for a quick chat near my home. Part of it was filmed and (after a long delay to cope with the sound issues) is now available
on the SSW TV site.
We talk about C++ and why it has advantages over managed code in some cases, about C++ AMP, and about tablets, leading to this moment:
It's just a 7 minute video, so give it a listen!
Thursday, May 31, 2012
Recently one of my staff went to a week-long conference - her first. I gave her some tips before she went and it occurred to me that others might like them too. I hope you'll apply them to a trip to Tech Ed or some other conference where you can hear me speak.
First, here are some links to some other good posts on the topic. Here's me a year ago
, pointing to John Bristowe's suggestions for going to a big conference. And here's me 18 months ago
, pointing to Joey deVilla's suggestions for meeting people and talking to them. And here's a great question
(with an answer from me) on Programmers.StackExchange about networking at conferences. (BTW I met the asker of that question in person at Tech Ed, which was great for both of us.) And here's me four years
ago with some details on choosing talks to attend.
Now, here's the super condensed version of my advice:
- Plan your sessions in advance, at least two per timeslot. Carry a paper list of session names and room numbers so if you decide to bail on one, you know exactly where to run to, even if your electronics are out of battery and there's no wifi.
- Wear comfortable shoes and clothes, but not so comfortable that you would feel underdressed when talking to a potential employer or other business contacts. You will walk a LOT so choose those shoes with special care. It will be both stinking hot (outside - many conferences are held in hot places at muggy times) and freezing cold (if you end up right under the AC that is set on stun) so have a layering approach.
- Bring your own bag so you can tell it apart from everyone else's, and know just where to find things you need. Leave as much as you possibly can in the hotel room, to save your back during all that walking and to minimize what you might lose if there's any kind of bag mishap.
- Eat at the conference - it's a great time to meet people and this is where I usually bump into people I know.
- Go to the trade show floor, the community area, and the like multiple times. Serendipity will happen but you have to give it a chance
- Pack a somewhat larger bag than you need to - there is a lot of swag at Tech Ed and first timers can't resist lining up for TShirts and the like. Don't be that person who stuffs it all in the conference bag and checks a second bag on the way home. For one thing, someone may accidentally pick up your conference bag thinking it is theirs. Your conference bag and all your other swag should fit in your main bag.
- Pack your days and evenings FULL. Don't you dare watch TV in your hotel room! Go to the labs and try something you always wanted to learn a little more about. Download something that was just released and try it. Go to a party. Write up your notes (or better yet, blog them.) Send your boss late night emails about what a great time you're having and how much you're learning. Watch one of the sessions you didn't get to that day and then figure out if the speaker is likely still at the conference and how you can arrange to find that speaker and say thanks for the talk or ask a question. Fill out the evals for the talks you went to. There is SO MUCH you can do while you're on site, so try very hard to do it all. Make the most of the week, make it intense, and you will get more out of it by fully engaging.
- Try to do at least a few hours of sightseeing - one afternoon or evening - with some friends if you can. Maybe the attendee party is being held in some iconic location? Go to that. Or there's a restaurant in the town that you've always wanted to eat at? Gather a few folks and arrange something. Twitter is great with the conference hashtag - "who wants to go to XYZ tonight?" - I've done this for going on tours too. Gives you fellow geeks to talk to while you sightsee and strengthens friendships if you go with people you only know professionally. But don't overdo the sightseeing - you're here for the conference, remember.
I hope I see you there! The better prepared you are, the more benefit you will get from the conference!
Tuesday, May 29, 2012
I've been putting my schedule together for the talks I want to attend at Tech Ed North America and Tech Ed Europe this year. While I wasn't looking, a bunch more C++ content was added.
Plus some language agnostic sessions that chose to put C++ in their session descriptions, which is a new thing these days.
Now as it happens, Tech Ed North America is sold out, so if you're not registered yet, you have three choices: join the waiting list, watch these sessions online, or get your boss to agree to a slightly larger T&E budget and head to Tech Ed Europe in Amsterdam just two weeks later. There we will have:
- PRC08, my all day Monday precon: C++ in Visual Studio 11: Modern, Readable, Safe, Fast
- DEV316, Tuesday at 4:30 pm: Application Lifecycle Management Tools for C++ in Visual Studio 11 by Rong Lu
- DEV368, Wednesday at 2:45 pm: Visual C++ and the Native Renaissance by Steve Teixeira
- DEV322, Thursday at 8:30 am: Building Windows 8 Metro style Apps with Visual C++ 11 by Rong Lu
- DEV367, Thursday at 4:30: Building Windows 8 Metro Style Apps With C++ by Steve Teixeira
- DEV334, Friday at 1:00 pm: C++ Accelerated Massive Parallelism in Visual C++ 11 by me
(Europe doesn't have direct links to the sessions, but they do allow links to the search for C++.) I'll have to miss Steve's talk because Rong and I are going to Belgium, so that one I'll be watching online.
One way or another, please attend or watch these sessions. There's a lot of new stuff happening!
Monday, May 28, 2012
I am having a very lucky year. I've been nominated and accepted as a judge
at the Worldwide finals of the Imagine Cup. I love being around students, and everything I've heard about Imagine Cup tells me that the energy, excitement, and creativity is marvelous to be part of. While I'm there, I decided to stay an extra day (July 11th) so I can offer my one-day C++ training to those who can't make it to Tech Ed in Orlando or Amsterdam. Here's what I'll cover:
- Modern C++ with the Standard Library
- Application Lifecycle Management for Visual C++ 11
- Leveraging Lambdas for the PPL and C++ AMP
- Best practices for C++ developers today
This is not a free session, but the price is even lower than the Tech Ed precons since I don't have travel expenses to get down there and see you all. If you live in Australia, please register and take advantage of this chance to come and learn what's been going on with C++ while you weren't looking! And if you don't, I'd appreciate it if you could spread the word to those who do.
Sunday, May 27, 2012
Some people really go above and beyond for community. They have an idea, and then they make it happen. Take Marc Gregoire
, for example. Our names are similar, and we both care about community, C++, and related topics, but we've never met. That didn't stop him from emailing me to see if I would do a user group talk while I was nearby for Tech Ed Europe. Of course I would! And then he arranged for Rong Lu from the C++ team to come and do one as well. Marc has done all the work of getting the room, the travel arrangements, you name it. All I have to do is take a short scenic train ride, and talk about a topic I'm excited about. That part is easy. The organizing part is hard.
It's going to be a very fun evening. I'm going to talk about C++ AMP, and Rong will cover what's new in VC++ 11. I've seen her speak before, and I know you're going to enjoy it. Be there, Wednesday June 27th at the Microsoft offices in Brussels. (I was kinda hoping for Tuesday, so I could make a joke
, but Wednesday will be fine.) You need to register
, so please do!
Saturday, May 26, 2012
This report is well overdue, I know. On April 17th I spoke at the first meeting of the Toronto C++ User Group! The room was PACKED:
And as you can see, there's quite an age range represented. The space was provided by bNotions. It was lovely and airy, and I was thrilled to hear their commitment to community across a variety of technologies:
Once I got started, my challenge was to give the one hour version of this talk, and not the six-hour one I plan to do at my Tech Ed precons
in June. Here I am in action (thanks Eran for wandering the room with my camera throughout the talk) explaining the new ranged-based for:
The next meeting will be shared with the North Toronto .NET User Group, covering Windows 8 development in native C++
. Yes, the .NET folks want to hear about this, too! I'll see you there June 4th, right?
Thursday, May 10, 2012
So much C++ news going on lately. Time to clear my queue:
- I updated my C++ Windows 8 Development course for the Consumer Preview of Windows 8. There were a few breaking changes, so if you're working on a Windows 8 app, take a look through it.
- I'm part of a group working on a Windows 8 app in C++ and XAML called Hilo, inspired by the Windows 7 Hilo application. You can read more about it on Scott Densmore's blog, the Parallel Programming in Native Code blog, and the Codeplex site. There's another related blog entry, too.
- There are Windows 8 development camps going on all over the place, but most of them are in managed code. There's a native C++ one happening in Redmond on May 18th, and it's going to be live streamed.
- Don't forget my Advanced Topics in C++ course. I did an interview about it recently.
- Then there's C++ AMP - the topic of the book I'm spending all my time writing. They're hiring. This is a great opportunity for the right developer.
- Oh, and James McNellis spent the last however-many-months answering the question "hey, if native WinRT has all this metadata about types, could you leverage that to implement reflection for native code?" Which for some people was a rhetorical question or interesting thing to muse about, but he went and did it. Incredibly cool.
It's hard to keep up with it all! Especially when I'm on a book deadline
Saturday, April 14, 2012
Like a lot of folks on Twitter, I have a search column open that notices mentions of my name. It mostly catches spammers linking to places my books can be downloaded for free. But lately, there's been something weird:
Here's how that tweet looked originally (about two weeks earlier):
So the strange spam tweets:
- Have one letter randomly removed
- Have two letters randomly substituted
- Lost the + in C++ and replaced with spaces (common when being passed through a URL)
- Are using the exact same URL as before, so this isn't some weird attempt to be paid for clicks
- Have usernames that appear to be random strings
So there's something going on here, something spammy, but I don't see how they benefit. Is it to dilute an otherwise all-spam stream with some "useful" links? Should I report them to Twitter? If anyone knows, please clue me in.
Friday, April 13, 2012
The times for my sessions at Tech Ed North America and Tech Ed Europe have been announced.
- PRC08 - C++ in Visual Studio 11: Modern, Readable, Safe, Fast is Sunday, June 10th in Orlando, 10am to 6pm. This is the session for those who've been ignoring C++ and are wondering why they keep hearing about it. Please encourage your friends to attend.
- DEV334 - C++ Accelerated Massive Parallelism in Visual C++ 11 is Tuesday, June 12th in Orlando, 10:15am - 11:30 am. This session will show you what C++ AMP is all about.
- PRC08 - C++ in Visual Studio 11: Modern, Readable, Safe, Fast is Monday, June 25th in Amsterdam, 9am to 5pm. The same material as in Orlando, just saving some travel time and costs for attendees
- DEV334 - C++ Accelerated Massive Parallelism in Visual C++ 11 is Friday , June 29th in Amsterdam, 1pm - 2:15 pm. Again, same material, different continent.
If you or those you influence are not yet registered for the conference in general, and the preconferences in particular (they cost extra and require you to arrive early, so plan ahead) please take care of that as soon as you can. Here are some helpful links:
North America Europe
Hope to see you in one place or the other!
Monday, March 26, 2012
How's this for a renaissance? People are starting C++ user groups!
- The Jerusalem .NET/C++ User Group will cover both topics. They've had their first meeting already.
- The Central Ohio C++ User Group has also had its first meeting and will meet monthly.
- In Austin Texas they're calling it the C++ Meetup and the description sounds a lot like a user group
- The Belgian C++ User Group has its first meeting in April
It's so much fun to see this excitement springing up. There seem to be two popular topics for first meetings: either "What's new in C++ 11" or "Writing Windows 8 Apps". I think these two things arriving together - the huge language and library improvements (and the unexpected synergy of the language changes and the library changes) with the chance to write for Windows 8 in C++and XAML - is producing much more interest than there used to be.
And now the fun is spreading to Toronto! No, I'm not founding the group - I'm surely not the only C++ developer in Toronto after all. But I am honoured to be speaking at the first event on April 17th right downtown (pretty much Yonge and Bloor.) I'd love to dive deep into C++ AMP, or show how the Consumer Preview of Windows 8 is easier to code for, but I think I should begin at the beginning, so my talk is titled What happened in C++ 11 and why do I care? and has this abstract:
C++, both the language and the libraries that come with every compiler, is
defined by an ISO standard. The latest version of the standard, generally known
as C++ 11 after its approval last fall, was optimistically called C++0x
throughout the multi-year process that led to its adoption. Many of the language
changes (new keywords, new punctuation, new rules) and library changes
(genuinely smart pointers, threading, and more) have already been implemented by
vendors who were following the standards process closely.
In this session
Kate will introduce and demonstrate many of the highlights of C++11 including
lambdas, auto, shared_ptr, and unique_ptr. These are all supported in
Microsoft’s Visual Studio 2010. You can see how to make your code more readable
and expressive, easier to update, more correct (less bugs and memory leaks) and
faster, not by trading off among those possible constraints but by adopting
modern C++ which gives you improvements in all four areas at once. If you’ve
been ignoring the Standard Library, for example, you must see how lambdas make
all the difference and open a world of productivity to you.
A sneak peek of the next version of
Visual Studio will show you even more C++11 goodness.
If you've looked at my Pluralsight courses
, you'll know that my biggest challenge is going to be fitting this into an hour plus Q&A. This will be an overview, an overture if you like, and should whet your appetite for the meetings to come!
as soon as you can, please spread the word, and I hope to see you there!
Friday, March 23, 2012
My C++ precon, an all-day session about modern C++, has had a slight title change and is now called PRC08, C++ in Visual Studio 11: Modern, Readable, Safe, Fast. The content is still the same. My high level outline is:
- Modern C++ with the Standard Library (demo of strings, shared pointers)
- Application Lifecycle Management for Visual C++ 11
- Leveraging Lambdas for the PPL and C++ AMP
practices for C++ developers today
This is all day the Sunday before Tech Ed Orlando starts, June 10th. You don't have to be registered for Tech Ed to attend a pre-con. It's a great way to get caught back up on what's been happening with C++ over the last decade or so. It's really not the language you remember. I plan to show you what's fun and amazing about it. Forget all that pointer-to-pointer-to-pointer and manual memory management stuff you may remember, and get ready to see how C++ can be simple, fast, and genuinely useful in some surprising ways.
© Copyright 2020 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820
| Page rendered at Sunday, July 05, 2020 5:10:20 PM (Eastern Daylight Time, UTC-04:00)
On this page....
Pluralsight Free Trial
Click Start a FREE 10-Day trial