Pretty, Pretty Quiet!

with gripsAlmost a decade ago, I posted my original review of my springfield 1911.  Over the years, little mods have taken place, like different grips, a different magwell, etc.  The newest piece is a modification to the gun to enable an addition.  I replaced the standard barrel with a threaded storm lake barrel, so that I could attach a suppressor!  And yes, silencers are legal!WP_20140920_16_47_59_Pro 1

The silencer here is a SilencerCo Osprey 45, which has a unique profile: it isn’t round like other silencers!  The effectiveness of a suppressor is directly related to the internal volume of the suppressor, which captures the expanding gasses as they escape from the barrel.  In order to maximize the volume, most silencers are cylindrical.  And the bigger the cylinder, in both radius and length, the better it works.  however, with a pistol silencer, you don’t want it to be too long, or it quickly becomes too heavy out there on the end of a pistol.  And you can’t increase the radius of the cylinder too much, or you’ll interfere with the pistol’s sights!  For rifles, neither of these are usually an issue, as overall length isn’t as big of a deal, and most rifles already have sights elevated over the height of the bore for other reasons.  But on a pistol, the only real way to increase the volume is to make the suppressor a shape other than a cylinder.  So the Osprey is an eccentric shape, basically a rectangle with rounded edges.  the flat top edge makes most pistol sights still visible, and because of the design of pistols and the location of recoil guides and springs below the barrel, the bottom edge generally doesn’t interfere with any lights or lasers that might be attached on a pistol’s bottom rail, if you have one.

But if the suppressor isn’t a cylinder, a new problem arises: it isn’t symmetric, you can’t just thread it onto a barrel and have it line up!  With cylindrical cans, you just rotate it until the suppressor stops, and it doesn’t matter which way the suppressor ends up.  But with the osprey, that wouldn’t work.  so there’s a locking cam mechanism. You rotate the osprey on normally until it stops, then unlock the lever, rotate the silencer until it is the right orientation, then lock the lever.  from then on, whenever you take it off and put it back onto the same host, it will line up!

At the range, the osprey definitely adds some weight to the front, but doesn’t make the pistol too front heavy, and the weight out front seems to help a little with muzzle rise.  As with any suppressor, the blowback in your face might be a little surprising, so make sure to wear your safety glasses!  And, again, like any suppressor, it does get hot fast, so remember to bring gloves!  I need to buy an ove-glove or something to put in my range bag!

Posted in General Tagged with:

Random Review: Dead Rising 3

Way back when the XBox 360 came out (2006!), I did a review of Dead Rising.  It was  a great game, one of my favorites of that first generation of 360 games.  When Dead Rising 2 came out in 2010, it was lost in a sea of other games, so I never ended up playing it.  I did play through part of their free “preview” game, Dead Rising: Case Zero, but I never finished that either…


When the Xbox One released a few months ago, Dead Rising 3 was one of the launch titles.  I didn’t buy an Xbox One right away, instead I waited for the holiday drama to subside, and watched for people selling consoles they might have bought only to flip to people that were desperate for one during the holidays.  And indeed, I did get a great deal on a bundle with an extra controller, Dead Rising 3, and Lego Marvel.

My review of the 3rd installment would be very similar to the first one.  It was awesome.  Hilariously awesome.  Execution wise, very similar to the first game.  You have a limited amount of time to follow through the story, rescue people, and wreak mayhem amongst the hordes of zombies.  and on the xbox one, they are literal hordes.  It was amazing to be standing on the roof of a car, and its just zombies, everywhere, as far as the eye can see.  Thousands of them.

Dead Rising 2 apparently introduced the “combo weapon” concept, where you can take 2 random things, like a rake and a car battery, and turn them into an electrified rake.  Or a giant stuffed bear, a machine gun, and a radio (or whatever) to make this automated bear machine gun that sits on the ground and taunts zombies, then kills them.  And many of the combo weapons can then be combined with something else to turn them into “super-combo” weapons that can do amazing amounts of damage or maybe small amounts in a very hilarious way.  One of favorites was “the ultimate shout”, a combination of an orange traffic cone, a speaker, a battery, and a portable radio.  To use it, you’d hold it up and yell through it, causing all zombies, vehicles, and items in like a 30 yard cone in front of you to be destroyed and sent flying.  Another was the “Electro ice staff”, which was a traffic light combined with a battery and then liquid nitrogen.  you could swing it like a staff, or ram it into the ground, freezing everything around you, or aim it like a gun and fire it to freeze zombies in front of you. 

And this electro ice staff leads me to one of my favorite features in the game (well, in the XBox One in general), called “Xbox record that”.  While playing any game, you can just say out loud “xbox record that” and it will save the previous 30 seconds of whatever just happened.  Then later you can edit it and share it.  Here’s an example,of me using said “electro ice staff”, racking up a HUGE combo of 525 kills:

As you can see in the video, my character looks a little.. out of the ordinary?  Prior to this, there’s a section of the game where you have to infiltrate an area filled with special forces soldiers.  You have several options for getting into the area, like attacking, guns blazing at the front door, sneaking in through a high window, or blending in by finding a uniform. Like the other dead rising games, there are clothing options scattered throughout so you can change clothes and look like whoever you want.  prior to this point in the game, I was always wearing a “Mr. Rodgers” style red sweater, which I thought looked rather stylish :).  It turns out, if you’re wearing the uniform, special forces soldiers won’t shoot at you until provoked… So I took advantage of this for the rest of the game.  I picked up other clothing to try to get achievements, but I always went back to the SF outfit.  And my crazy outrageous head is a Blanka (of street fighter fame!) mask.  It turns out the mask can be combined with other things to make a mask weapon as well, but I wore it because it looks hilarious.  Even more hilarious than running around killing zombies with a blanka mask on?  Cutscenes with a blanka mask on!  

None of the other people in the game seemed to notice that I was wearing a hilariously outlandish mask. I swear there was a kissing scene that I recorded, but I can’t seem to find it on the game dvr.  If I find it, I’ll add it here.

The only thing that I ran into that I didn’t like was that you never know if a main story mission is going to jump you way ahead in time.  When I was near the end, with less than 24 hours (of the initial week) left, I completed what I thought would just be the end of that chapter.  Yes, it completed the chapter, but also skipped all the way to the end of the 24 hour period, right to the last phase of the game, putting me in a timed section where I couldn’t do any of the rest of the side stories that I had in progress!  and not only that, the last part had checkpoints, so when I got about 3/4 of the way through it, I realized that mistakes I’d made at the beginning of the section were going to make it impossible for me to finish what I needed to do before the bad guy finished what he needed to do.  So I restarted that chapter.  Which apparently aborts any and all side missions that were in progress?  Once I completed the game, it lets you start over but keep everything you’ve found, your level, etc.  So I tried to restart the chapter I’d been on before I’d accidentally finished so I could complete all the side missions… only none of the side missions I’d completed to that point were done.  you can redo that chapter, and start any missions that you can find in that chapter, but none of the survivors you’ve rescued are available, etc.  If you want to do any side missions you missed, you pretty much have to start over again from scratch.  Bummer.  Like in the Lego games, I wish there was a prompt before you did something that was going to make it impossible to go back. Or if not a prompt, some other kind of indication that you can’t go back…

All in all, dead rising 3 was a great game.  The story was good, the forced timeline forces you to make some decisions about who you’re going to try to save, and how much extra stuff you’ll try to accomplish.  The characters are believable to a point, and then they throw all believability aside because, well, it’s a video game about zombies that started with mutant cows to produce cheap hamburgers.  While violent, a lot of the violence is hilariously cartoony, like driving a steamroller combined with a motorcycle that shoots flames.  So fun!

At one point, Dead Rising 2 was free in the Games for Gold program, so I did download it (I think!), now I’ll just have to find time to go back and play it, so I can fill in the parts of this story that didn’t make sense!

Posted in General Tagged with: ,

Random Review: Surface Pro 2

I’ve had a Surface since they originally came out.  I bought a day one Surface RT of my own, and used it all the time.  I really liked the idea of the surface pro, but since it had like half the battery life of the RT, at like twice the expense.  But when the surface pro 2 was announced, it was with a much more efficient Intel i5 “Haswell” processor with much better battery life.  And much more available memory. And a much bigger drive.  So I pre-ordered the Surface Pro 2 with 8g of ram and the 256g drive.  After using it for several months now, as a tablet, a laptop (and now as my entire desktop replacement!), here’s my bullet item pros and cons random review.


  • can run everything windows!
    • Being full windows, not windows RT, I can run pretty much every app I’ve ever needed ever.  Although, aside from doing development or playing games, I’m finding that there are windows store apps for almost everything I need.
  • this means Steam games are “game on!”
    • Shadowrun Returns plays great with pen and touch input.
    • I’ve also played Star Wars: The Old Republic on it as well, although I do have to set scaling to 100% or the UI gets confused and clicking doesn’t go where you think it does!
  • visual studio!  I can use this as a dev box!
    • In fact, I have to, since my old desktop machine doesn’t have hardware capable of running the windows phone emulator.  But the surface pro does, so I can work on phone apps and windows apps.
  • skydrive OneDrive integration is awesome
    • except that it now requires sign in with a microsoft account, you can’t even open the app at all on a domain joined machine at work (which is probably safer, since you can’t accidentally save stuff there when you should be saving to Skydrive Pro OneDrive for Business at work anyway…
  • Windows Live Writer!  I still don’t understand why there’s no version of live writer for Win8 yet.  that would be even better
    • plus, you can set the drafts directory to OneDrive, and POOF you have those synchronized across machines too
      • to do this, using regedit, go to HKEY_CURRENT_USER\Software\Microsoft\Windows Live\Writer, and add a new string value “PostsDirectory”, and point it to whatever directory under your C:\Users\[user]\SkyDrive\Documents folder that you want to be your live writer “cache”.  (since the name change, I haven’t checked to see if they’ve also re-named the directory or not!)
      • then, in that directory, right click the folder and set its Skydrive settings to “Available offline”.  without this step, writer didn’t seem to see the posts synced from the other machine.
    • You can also use 2 finger zooming to zoom in on the text part of live writer, even though there doesn’t appear to be any mention of zooming anywhere.  I’ve read some things online that said ctrl-+ or alt-+ used to zoom, but that only worked for zoom out for me, and I found 2 finger zoom gesture by accident. But it does work awesome!
  • Pen input is pretty cool.  I wish i could draw better!
    • I use it  all the time to take notes in meetings, and then using the ink to text features of onenote, it is (mostly) turned into searchable notes.  about the only thing that I have had problems with for that is if I underline or cross out things, that ink stays behind but doesn’t match up with the text anymore.  that can be confusing.
    • The pen also works very well in Shadowrun Returns. 
  • Surface Pro dock + USB3, ethernet!
    • I Have the SP2 hooked up to a 10 port USB3 hub when I’m at home.  Attached to this hub is a USB3 blu-ray drive, a USB3 hard drive enclosure with a bunch of drives in it, and various other random things, like the fitbit dock thing.  Also, standard keyboard and mouse.  
    • Also, hooked up through minDV to a big monitor, so when I work from home, the SP2’s touch screen is always showing outlook and lync (or skype), and the bit monitor is remote desktop’d into one of my machines running VS


  • gets a little hot when running games
  • noticeably heavier than a Surface
  • the new type keyboard doesn’t have physical buttons on the cover’s trackpad, so I didn’t get one.  I’m still using the type cover 1 on my Surface Pro 2, and the touch cover 1 on our Surface RT. 
  • the multi monitor scaling support on windows 8.1
    • It doesn’t make any sense to me!  Supposedly, by unchecking the “Let me choose one scaling level for all my displays”, it does some kind of different scaling per monitor.  But there’s no independent settings for each monitor?  When in this mode, I want the SP2’s screen scaled up to the 150% (default) setting, so I can use touch more effectively.  But I want the external monitor completely unscaled.  This doesn’t appear to be possible.  No matter what I choose, things on the secondary monitor are sometimes scaled, sometimes blurry.  Office does one thing, Windows does its own thing.  The taskbar gets scaled up, like it it is on the main monitor.  I don’t understand why there isn’t an explicit scaling setting on each monitor on the “Screen Resolution” control panel.  It seems that windows is trying to guess what I want, instead of letting me tell it explicitly what I want. 
Posted in Uncategorized

What I work on: CodeLens (VS2013 RC!)

As of yesterday, the Release Candidate of Visual Studio 2013 is now available! (And, MSFT changed its mind, so if you have an MSDN subscription, you can also download Windows 8.1 RTM!)

The feature my team (and others) has been working on, CodeLens, has undergone some major updates and cleanups since the preview. To see the most of it, you can go to

Here’s just one little picture including some of the new stuff. for the rest, go to the MSDN link above!

codelens tasks

In the RC, we’ve added indicators for bugs, workitems, and code reviews that were attached to changesets for that code. Keep in mind, this is changesets associated with that class/method/property, not changesets associated with the file! This makes it super easy to browse through the code and see exactly who (authors indicator, showing the last person to change the code (above, Jamal Hartnett and 2 others), what (4 changes affected that constructor), why (for 2 bugs and 1 workitems), and who reviewed those changes (1 code review). You can also see that that constructor has 12 references from other code, and that in the current state, only 6 of 11 unit tests are passing.

In the authors and changes indicator, there’s also a “local version” tag that appears for the version of the code you have locally. If you’re working on some code, and you see that the changes indicator says “5 +1 changes”, you know that someone else has moedified and checked in a change to that code, so you better get the latest version, or, to quote South Park, “you’re gonna have a bad time!”

We also hooked up Lync integration, so if your org is using Lync, when you open the details popup, you can see the Lync status of the people who’ve touched the code (looks like Jamal is green, so he’s available!), and you get the full lync integration, with a link contact card, and the ability to IM or start a call/video chat right from inside the IDE!

We also added expanders, so in all of the TFS powered indicators you can see what workitems are related to what changesets by clicking the standard VS triangle expander. There’s also a new icon up in the upper left corner that lets you dock the popup into a full toolwindow, so you can move it around, make it bigger, and keep it open while you click through references or tests and navigate around in your code. Each different indicator can dock to its own toolwindow.

The references, test status, and tested by indicators also got makeovers and new features, so make sure to check those out as well. Those indicators are not powered by TFS, so they’ll work even if your org isn’t using TFS!

Posted in General Tagged with:

Another new office!

This one is much bigger than the last.  Unfortunately, it isn’t a single office.  it would be pretty awesome if it was.  But my team (and most of the rest of the team that makes Visual Studio) is now in “Team Rooms” in the newly remodeled Building 18.  Team rooms are the new hotness, apparently.  I think that every team in b18 (including managers, etc!) are all in team rooms.

Old office in building 41, in photosynth panorama form:

photo (10)


New office in building 18, also in photosynth panorama form:

photo (7)


The team room looks really big, but that’s partially because there’s no computers in that picture.  Once everyone has their 2+ monitors and 2 computers slung under the desk, the room fills up quickly.  I’m still looking for a bamboo plant or something to put in the “hole” between the 4 desks where I am.  We’ve been in the team room for about a month now, and so far, it isn’t so bad.  The layout of the building itself makes for a lot of people wandering into the teamroom looking for a conference room, or the copy room, but other than that things are good.  Well, except the time I got trapped in the elevator.  But that was only for a couple minutes 😀

Posted in Uncategorized Tagged with:

What I work on: CodeLens!

Today at the //build/ conference, Visual Studio 2013 was announced and shown in preview form (and download!). And once again, my group (well, my group plus our larger team) made the front page of

2013 indicators!

In Visual Studio 2013, when doing c# and vb, you’ll get extra “indicators” above your methods that give you kindof a “heads up display” of things about that class/method/property. The first one shows you references to the method, if you’re also using TFS it will show you which people have touched that method and in what changesets. Its tfs history on steroids! If you’re also using the built in unit testing features, that method will also show you an indicator that shows which tests test that method, and how many are pass/fail. If you click on any of the indicators, you’ll get a popup that shows you the details, and each details popup window has more useful info and actions you can do with that reference, or that changeset, or that unit test!

2013 popup

From the article at

Understanding what a line of code does is only part of your challenge as a developer. You must also understand its history, who worked on it, what code references it, and more. This becomes especially challenging in team-oriented projects. CodeLens (Code Information Indicators) in Visual Studio 2013 Preview uses information from both your project metadata and Team Foundation Server 2013 preview to place decorators on each of the methods in your code that show information such as what changesets led to the creation or recent change, who was the last person to work on the code, what unit tests cover the method (including the latest pass/fail state), and what code references exist. You can also quickly jump into that data, such as an associated changeset or referenced code file with just a click.

The larger ALM org (along with Matt and others from the VS language experience team!) was responsible for the plumbing that makes it work, my group was specifically responsible for the authors and changes indicators, and I did a lot of work to make that popup with the callout that points back to the originating indicator, among other things.

Edit 6/27/2013: There are even live msdn docs for codelens now!

Posted in General Tagged with:

Now on Azure!

So as an MSDN subscriber, you get up to $150 / month of credits on windows azure. And azure supports wordpress, so… I created a site on azure in like 5 minutes, exported the content from my garage based server, imported into my new azure site, and blammo, it’s back up. Admittedly, it took some time to re-install all my plug-ins and find a new theme (the theme I was using hasn’t been updated in 2 years, apparently?), but other than that it was a pretty painless process. Then I tweaked some DNS things (which required overnight to propogate), and everything appears to be working. So far! I’ve been looking for a way to move all of my hosted stuff off of the server that’s running in my garage, and the combination of this, azure’s VM service, and the MSDN credits might finally be a solution!

Posted in General Tagged with:

What I Work on: Code Map Debugger Integration

In the last “what I work on” post, I talked about the Code Map feature that was new in Visual Studio 2012 Ultimate (Update 1).  It has turned out to be a very popular feature (as it should) because it is super useful!

After people have used Code Map for a while, one of their first requests is “how do I get debugger information into this map?”  There are ways to do it, where as you step through code, you keep manually doing “show on code map” on the method you’re in, but that gets very tedious.

So, for Update 2 (now available!) we added debugger integration to Code Map!  To see it in action, you can watch this channel 9 video, or update today and play with it yourself!

Here’s a screenshot of it in action, debugging a Windows 8 Store C# app:

code map debugger integration

When debugging the “old” way, you have to watch both the editor window and the call stack window, step in or out or whatever, and try to mentally figure out what is still on the stack, which commonly ends up in “where am I now?”  or “how in the world did I get here?” kinds of issues.  And then, as soon as you stop debugging, the call stack window goes away, and if you were stepping through code that you don’t have open (so it was open in VS’s preview tab), then most of the files you stepped through aren’t open in the editor anymore! I know that I end up copying the call stack, and pasting it into notepad so I can remember where I was.  Or, if I’m trying to correlate multiple call stacks, I paste them into columns in an excel spreadsheet, then do a lot of excel work to line things up  to figure out what is the same.

Instead of all that… debugging the “new” way with the code map debugger integration gives you a nice little treasure map of where you’ve been (gray nodes), where you are (the standard call stack arrow, visible in the map, the editor, and the call stack window), and everything that is currently on the stack (orange nodes).  As you hit breakpoints or step around in code, the map updates to add whatever is on the stack at that point in time.  And when you stop debugging (and the stack window goes away!), the map is still there, and still functional!

You can see in the picture above, I was doing “shotgun” debugging, where I just scattered breakpoints around the code, to see who calls what.  In the old way, you’d have to mentally figure out that almost every call in the app ends up going through one method, with a giant name in the call stack window, like:

App1.exe!App1.Common.LayoutAwarePage.OnNavigatedTo(Windows.UI.Xaml.Navigation.NavigationEventArgs e) Line 332    C#

which certainly is a mouthful.  instead, in the graph, you can see it as a single node, you instantly see that everything we put breakpoints in goes through it somehow, and if you mouse over it:


From both the graph and the stack window, you can double click and go right to that code.  But, from the graph, you now have all the other powers of Code Map at your disposal.  Want to see what types all the methods are in?  Who derives from what?  just use the “show related items” menu in the code map toolbar, or right click and do stuff from there:


I did several steps to get to this diagram, by clicking the “LoadState” item in the first graph, and doing “find references”, which added 3 LoadState overloads from other classes.  Then, I selected everything and did “show containing type”, which added the groups.  Then I did “show derived types” on LayoutAwarePage, showing that 3 things on the graph are green, indicating they are the types that are subclasses of LayoutAwarePage. 

One of the fun things about the debugger integration is that almost every language that VS supports has really good debugger integration, because debugging is essential.  Not every language integration implements the things that Code Map needs to be super effective.  So if the debugger works for a language, the map part of the debugger should work.  Want to see how your old school C++ Win32 app works?  Put in some breakpoints, and generate a map,  and poof:

how your win32 app works

Want to see how your old school c++ Win32 app really works?  in the call stack window, right click and select “show external code”, then generate that graph again:

how your win32 app really works

In the first graph, all the items outside your solution end up being elided, and just show up as dashed links with “External Code” labels.  With “show externals” turned on, code map creates an individual node for everything that shows up in the call stack window, with a faded out look.  If the external assemblies have debug information the debugger can see, they’ll have somewhat useful names, but if you don’t have debug info for those assemblies, you just get addresses, but you still see the relationships!  you can see that Win32 has a lot of loops!

Posted in General Tagged with:

I Love my Surface!

I’ve had a Surface (RT) since the Surface launch day, and I love it. (Note: I am a Microsoft employee, and recently they did give each employee a Surface for primarily business use, with personal use allowed, primarily for evangelism purposes. The launch day surface is my own personal surface, purchased with my own hard earned money). Since buying the Surface, I haven’t used my laptop! Here are just a few of the things that I love about it.

  • Multiple user support. On “our” iPad (our in quotes since Easton has pretty much monopolized use of that device for the last 2 years), every time I turn it on the icons are somewhere else. Or not even there. I don’t know that he knows he’s doing it, or even doing it on purpose, but he does from time to time unintentionally uninstall apps. In order to “protect” stuff I want, I have all of those things in a folder on a secondary page. From time to time those things are all re-arranged, but he pretty much knows not to touch daddy’s stuff in there.


    But the Surface is a windows machine, complete with true multi-user support! So Easy has his own user account on the surface. He just taps his face at the login screen, and he is in his own account that I can control. I unpinned all the stuff he doesn’t need, and installed apps and games for him to use. My account has a password, so he can’t get in and mess up my stuff. Similarly, Laura has her own account with all of her stuff. Switching users any time is a 2 tap affair.


    There’s another interesting thing with having true user support, though! You can also flip a switch on Easton’s user account to turn on “family safety” settings. This turns on monitoring and reporting features, so every week I get an email like:

    family safety


    You can even see in the picture that it keeps track of web searches! In the pic above, I was trying to figure out how to get the windows store apps I’d purchased on my account to show up in his account as well. It also shows me using Flickr to find a picture to use for his account. The rest of that time playing Netflix and pinball and paint is all him :)


  • Doing 2 things at the same time! Similar to the “Snap” feature of windows 7, in windows 8 when using store (aka Metro) apps, you can drag one app to the side, and it will take up about 1/3 of the view. This lets you do work and watch twitter scroll by, or watch a movie while playing a game, etc. That mode comes in super handy on airplanes:

    Screenshot (4)

    I played games and watched movies at the same time for a couple hours while Easton slept on one of our recent airplane rides. Worked great!


  • Size and shape. I think this thing is just about the perfect size and shape for me. Maybe the screen could be bigger and the bezel thinner, but not by much. The surface is almost the same size as a piece of paper, but a little narrower. With the keyboard flipped shut, holding it by the spine feels a lot like holding a book. I carry it like one every day. With the kickstand out, it is a good angle for me, and it works well on my lap that way when I sit on the couch. I’m typing this right now, with the surface on my lap, kickstand out, typing on the touch cover, and it works a lot better than I thought it would.


  • The touch cover! This thing is freaky. It doesn’t look like it should do anything. It looks fake. And yet it works! It does take some getting used to. I miss the spacebar more than anything, and because there isn’t a lot of texture on the keyboard, it is easy to get off home row and start typing gibberish. The F and J keys do have a different bump on them so that you can feel where they are, but I’d like it if it was a raised bump instead of a dimple. The touch cover also has a track pad and buttons, although some people I know didn’t realize that was there. You can also flip the touch cover under when using the kickstand, which makes it into a pyramid. That makes it stable on thing that where the kickstand alone wouldn’t work well.


  • USB. Having a USB port on this thing has been great. When I want to charge my phone AND the surface, I don’t need to take up 2 plugs. Plug the surface into the wall, plug the phone into the surface. Done! Want to play a game that would work better with a controller? Plug in a wired Xbox 360 controller, and it just works:

    using controller

  • Micro SD card. The surface also supports removable storage, so I added 64 gigs of space for movies and music and stuff by just sticking in a tiny little card. During xmas, this came in handy, as my dad wanted new pictures of us to put on a digital photo frame. I plugged the card into the home computer, copied a couple gigs of pics onto it, and brought it home in the surface. My dad has a camera that uses micro SD, so I just popped the card into his computer, copied all the pics there, then stuck in the card for the photo frame, and copied them there. Having a standard SD card slot would be nice, but would take up a lot more space than the micro one does. Having 64 gigs of space also means that I have a bunch of movies on here, so I had stuff to watch on airplane rides during the holidays.


  • Gestures. I’ve gotten so used to the swipe from the edges gestures on Win8 that I unintentionally do them on my phone. Swipe in from the left edge of the screen to see running apps and switch (if you have that turned on, otherwise that swipe is effectively like alt-tab), swipe in from the right to get to search+settings (aka the “charms”), swipe from the top all the way to the bottom to close an app. Although, that close app swipe has had me close IE lots of times when I really just meant to close that tab :)



  • Battery life. So far, battery life has been pretty excellent for what I do. Even playing games and surfing, this thing lasts a couple days on a charge. And it charges super-fast. Couple hours on the charger and it is full. Sometimes the power connector can be a pain to seat just right, but that’s fine. I don’t think I’ve ever gotten an iPad connector in the right direction the first time ever, either. The only oddity so far is the low battery warning. Sometimes you don’t get it, and it goes to low battery shutdown. I tweaked power settings to warn me at 10% instead of the standard 5% and it hasn’t been a big issue.


  • OneNote (+SkyDrive +SkyDrive pro). I use the Win8 store (aka “metro”, aka “mx”) version of OneNote all day at work. With SkyDrive, my notebooks are shared across all of my computers, my surface and my phone, so I have things like shopping lists, blog notes, and other stuff all there. For work, I have my work notebook up on my SkyDrive pro (aka “my SharePoint”?), and I religiously track what I’m working on. I’ve been using OneNote every day since starting at Microsoft. You ask me a day in the last 3 years, and I can tell you what I did that day, if it was a work day. And the surface makes a pretty good meeting notes machine; it is small, and typing on the touch cover is almost silent.


    Screenshot (8)

  • Apps. A quick rundown of the things I use all the time, other than OneNote:
    1. Nextgen Reader – for feed reading of my Google reader feeds.
    2. TweeterLight – for twittering. Or twitter stalking anyway, I don’t post that much.
    3. Taptiles – an addictive tile matching game. Like 3d mahjong, kindof. Hard to play well with the mouse, but fantastic when tapping away. Especially when “green gem” mode kicks in and you’re just madly tapping with all fingers of both hands.
    4. Netflix, of course.
Posted in General Tagged with:

What I Work On: Code Map

Yesterday, Visual Studio 2012 Update 1 shipped! So I can officially talk about what I just worked on. Much of it has already been available in preview form and CTP releases and such, but you don’t want to get in trouble! :)

I joined the Visual Studio team back in April, just as work was finishing up on Visual Studio 2012. As part of that release, the VS team was moving to much more agile release schedule for updates, so here we are, about 4 months after going gold with an update with lots of fixes and cool new features!

The group I work in is called “Developer Visualization”, and is part of the “Application Lifecycle Tools” team. Most of our team’s features are part of Visual Studio Ultimate, but our team is responsible for some of the code that powers the Solution Explorer in all versions of VS. Anyway, the big new thing we worked on for VS Update 1 is called “Code Map”. While looking for a picture of the feature to put up here, I went to the official update web page, and BAM! Code Map is the background image! (I think the technical term is the “hero” image)

VS Update 1
(in that screenshot, i’m directly responsible for the green nodes (results of a query) and the green arrow (the cursor location))

What is Code Map?

Visually graphing code is nothing new, people have been drawing code diagrams of various forms for, well, as long as people have been writing code. Visual Studio has had graphs for a long time as well. Before I joined VS, a lot of the graphing code was re-written for 2012, in order to make it more useful, usable, and scalable. In ultimate, the main entry point to creating graphs was what we call “top down”, via the Architecture menu on the toolbar. You can use it to create a dependency diagram of your entire solution. But it starts a the assembly level. You can see which assemblies reference eachother, and then you can expand the assembly and see the namespaces inside. You can expand the namespaces to see the classes inside, and all the relationships between them. (The technical term for this is “progressive reveal”, which was the old name of our group). Another way to generate these graphs is via the architecture explorer, but that’s a rather advanced tool that not everyone uses. But generating a graph this way means you have a lot of stuff you might not be interested in! You can move stuff, remove stuff, but in a large solution, that would take a lot of time!

In Update 1, the Code Map feature lets you generate diagrams in the other direction (what we call “bottom up”) piece by piece, directly from code, side by side with the code editor (for C# and VB). Have the cursor in the code on a method? Right click, “Show on Code Map”. Poof: the window splits, and a new diagram appears with the method you were on. Put the cursor somewhere else, and use the keyboard shortcut, Ctrl+` (control+backtick), and poof, that method appears on the graph as well; and if the methods call eachother, the graph will automatically have links between the items on the graph. You can add pretty much every code construct to the graph: classes, method, properties, enums, etc, etc, and the links magically appear. You can also add things to code maps by dragging and dropping from solution explorer, or by using Show On Code Map from there.

But Wait, there’s more!

Not only can you then create small diagrams, only containing the things that you want and the relationships between them (a great way to explore unfamiliar code!), but you can explore the code directly from the graph! So you added a method to the graph above. Who calls it? From the code editor, you’d right click and do “Find all references”, and results appear in another window. In the code map, right click, and look at that, “Find all references” is there too! Select it and it will find calling methods, and add those to the map, with links between them. Want to know what class those other methods are inside of? Right click, “show containing class”. Nodes will now be grouped by which classes they are in, and links will be displayed between classes. Want to see the base types of a type on the graph? Derived types? All available! Add some notes, save it, send it around!

Want to see it in action? Go watch this channel 9 video!
Want to use it? Fire up Visual Studio Ultimate (you deserve ultimate! Upgrade today!), install Update 1, and get your Code Map on!

Posted in General Tagged with:

XBox GamerCard

Recent Flickr