<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>White.Steve.Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/stevewhite/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/stevewhite/feed.xml</link>
    <description>Mostly software and music, some work, but all play</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:25:14 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>The kanji for "what", and birds' tails</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/the-kanji-for-what-and-birds-tails</link>
      <pubDate>Thu, 15 Oct 2015 17:02:16 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/10/15/the-kanji-for-what-and-birds-tails/</guid>
      <description><![CDATA[If you were drawing a square, how many strokes would you use and in what order? You might be...]]></description>
      <content:encoded><![CDATA[<p>If you were drawing a square, how many strokes would you use and in what order? You might be thinking: I don't know: does it matter? If you're writing the square inside the kanji character for the word "what" (何), then it does matter. When it's time to draw just that square, you have to draw the leftmost side of it top-to-bottom. Then a single stroke covering another two sides: the top side left-to-right and the right side top-to-bottom. Then the bottom side, left-to-right. And that's just the radical in the center; there's other framing stuff around it. You have to start the whole character in the correct place, write three framing strokes, then do the square in the center, then go back and do the last framing stroke. The correct number of strokes, in the correct stroke-sequence, drawn in the correct directions. It's similar for all kanji, and there are 五万 (50,000) of them, although only 二千 (2,000) are in common use. I LOVE that! The fact that those things matter, for some reason, really appeals to me.</p>
<p>Some might say it's being anally-retentive. I don't. It seems to me to come from a love of beauty, and correctness, and excellence. And isn't that also what we love in software?</p>
<p>But it also makes me think of a theory about the tails of birds of paradise and peacocks. The theory says that these features evolved precisely because they are handicaps; that the male is attractive to females because he has survived in spite of his tail. As if, of two runners finishing a race at the same time, one is also carrying a heavy load and so he therefore must have a deeper, almost hidden, potential. Is something similar going on with kanji? What does the mastery of what appears to be an unnecessarily burdensome writing system imply? What does it say about the mind and the character of the individual willing and able to achieve it?</p>
<p>But even if this burdensome-for-the-sake-of-it aspect of kanji exists outside of my imagination, it's not what most attracts me to it as a mate. It's more about its ethics, morals, honor, even pride (because even our greatest strengths are rooted in human frailty). It's a search for the ideal.</p>]]></content:encoded>
    </item>
    <item>
      <title>Can we be a bit more authentically digital?</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/can-we-be-a-bit-more-authentically-digital</link>
      <pubDate>Thu, 10 Sep 2015 15:44:00 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/09/10/can-we-be-a-bit-more-authentically-digital/</guid>
      <description><![CDATA[Be authentic (not skeuomorphic), they say. Be authentic to the digital domain. Don't just ape the...]]></description>
      <content:encoded><![CDATA[<p>Be authentic (not skeuomorphic), they say. Be authentic to the digital domain. Don't just ape the appearance and interaction of real-world objects. Instead, do things that are only possible with the power of today's hardware and software. Do something magical. For example, I like the way OneNote saves automatically. It may not be a super-exiting example, but it's pretty smart and convenient. But I use software and machines in my office every day, and it's not every day that I get a sense of much that's magical going on. Some things make me smile, but usually things work ok at best, and way too often they're dumb and annoying. Like: not being allowed into my admin commmand prompt until I've clicked on a safety button (pressing 'Y' doesn't work). Or having to say three times (using different dialogs/affordances) that I want to uninstall something. That was what started me thinking about this post, and the idea that making "undo" a more elemental piece of the experience of computing (and perhaps being able to passively detect a user's identity) might solve these annoyances and others.</p>
<p>Sometimes, you see signs by the road in mountain passes, signs with drawings of falling rocks. You don't actually have to click or tap an OK button before you can get past these signs, but you are meant to look at them and take notice. See, being careful is important in actual reality: you have no option. You have to look before you leap, so taking a moment to pause, consider, and confirm, is worth the investment. There's no CTRL+Z in actual reality, nor do you get three lives like you do in Super Mario. But in the digital domain, you CAN undo, and you CAN have multiple chances to get things right. At least, you can if the software has been written that way. But not enough of it is.</p>
<p>Why am I inundated with annoying, cloying confirmation dialogs at every turn? Why can't I be allowed to proceeed with impunity, knowing that if anything goes wrong I can just turn back time (like Cher wanted to do)? Something like System Restore, except at the finest level of granularity imaginable. Obviously, the answer is because of how Windows was designed and has grown over time. There's too much inertia, and resistance, to the redesign that'd be necessary. It's like a centuries-old city where the streets are absurdly, inconveniently too narrow simply because it's impossible to move all the ancient stone buildings. But, for some people, the charms of living in a medieval city would compensate. And, in any case, Windows is a digital artifact. There's no reason (except will and economics) that it couldn't be redesigned in these ways.</p>
<p>Both the real world and the digital domain are sodden and saturated with safety and security measures. FBI warnings on my DVDs, baby latches in my kitchen, ratings on my movies and games, locks on everything, passwords for everything, cardkeys, guards, walls, gates, speedbumps, and on and on. Why? Because the very young don't understand, and most other people won't do, what's good for them and good for the community. The primary personas and use cases of everything I use and experience--real and digital alike--focus on children and criminals. Kids and criminals are the users who were first and foremost in the minds of the designers of all these things. Catering for those folks is the priority, and the rest of us (the ones actually generating value in the world) have to make do. In the real world, this is unavoidable. We have no option, and prevention is better than cure, because we can't undo, unsee, or resurrect (and litigation is expensive). But in the digital domain we can work magic. I'm convinced that in the digital domain (if we wanted it enough to design things correctly) things needn't be as inconvenient as they are; that it needn't be as constantly-in-your-face obvious that kids and crooks are the pri zero when it comes to requirements. Being able to more easily undo seems like an obvious improvement (and that extends to being able to undo the unauthorized movement of digital wealth between accounts, for example). There's still the issue that you can't unsee a thing, and privacy and innocence are important, but for that the idea of passive authentication springs to mind.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Sherlock Holmes and the Inferior Analysis</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/sherlock-holmes-and-the-inferior-analysis</link>
      <pubDate>Mon, 31 Aug 2015 12:00:29 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/08/31/sherlock-holmes-and-the-inferior-analysis/</guid>
      <description><![CDATA[No, this is not about Sherlock Holmes performing an inferior analysis! But I was reading a SH story...]]></description>
      <content:encoded><![CDATA[<p>No, this is not about Sherlock Holmes performing an inferior analysis! But I was reading a SH story and something in it got me thinking about the subject of this post.</p>
<p>It's common when showing off something new (could be some hardware, but in my world it's nearly always software) to hear "That's cool!". And that's the inferior analysis I'm talking about. Sure, "cool" is more welcome than "it sucks!" but, as analyses, both of them leave something to be desired. The author of the software wants a metric that they can understand, put a figure on, measure, correlate to sales or some other indicator of success, and improve. Instead of "that's cool", how about "That's time-saving, it's labor-saving, it gives a more accurate answer than I could, the visuals are irresistibly beautiful, the gameplay is compelling and addictive."</p>
<p>What I read in the SH story that got me thinking about this was simply the use of the word "positive". Doyle used it in its original sense, to mean "consisting in or characterized by the presence or possession of features or qualities rather than their absence." I think it's a really clear concept when used in that way. Instead, colloquially these days we use the word "positive" (especially with respect to feedback or comments) to mean just vaguely nice, or good. But, again, if you take a moment longer you can often come up with a more useful analysis of what exactly it is that's positive (it's reassuring, calming, encouraging, motivating, wise, or whatever). And instead of "negative", how about "uncooperative", "intimidating", "destructive", or whatever fits the particular species of negativity.</p>
<p>And using the word "negative" in that woolly sense has led to such goofiness as "negative energy". I don't think we're meant to try to make sense of that idea by, say, thinking of the trough of an alternating current cycle. I think it's more akin to the Cesar Milan sense of "energy" which means mood, or attitude. But I see dubious virtue in stealing terms from one field of study (where they're well-defined) for another (where they're not) and then further diluting value with vagueness such as "negative".</p>
<p>So why do I think that it matters in any way to be clear and to analyze well? I may be wrong, but I suspect that clarity of thought and communication in folks who build software correlates with the quality and usability of that software. Also, interestingly, I suspect there's a link between being encouraged and allowed to be excellent on one hand, and high morale on the other. Now I could say that all this goodness is cool, and positive. :)&nbsp;And it is: no doubt. But more than that, I'm convinced that these are factors in economic strength. And that they're factors in that virtuous cycle that we software folks are always talking about and striving for.</p>]]></content:encoded>
    </item>
    <item>
      <title>Video: Introduction to UWP and device families</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/video-introduction-to-uwp-and-device-families</link>
      <pubDate>Fri, 10 Jul 2015 13:35:46 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/07/10/video-introduction-to-uwp-and-device-families/</guid>
      <description><![CDATA[My team just published a new video explaining the basics of app-targeting in Windows 10. Previously,...]]></description>
      <content:encoded><![CDATA[<p>My team just published a new video explaining the basics of app-targeting in Windows 10. Previously, your app targeted an operating system. From Win10 onward, your app targets a "device family". To hear about the benefits of that change and for more details, see the video: <a href="https://channel9.msdn.com/Blogs/One-Dev-Minute/Introduction-to-UWP-and-Device-Families">Introduction to UWP and device families</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Two Universal Windows Platform (UWP) app samples on GitHub</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/two-universal-windows-platform-uwp-app-samples-on-github</link>
      <pubDate>Wed, 29 Apr 2015 16:21:26 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/04/29/two-universal-windows-platform-uwp-app-samples-on-github/</guid>
      <description><![CDATA[The app-building virtual team I belong to (in Microsoft's developer content publishing organization)...]]></description>
      <content:encoded><![CDATA[<p>The app-building virtual team I belong to (in Microsoft's developer content publishing organization) has published its first two Universal Windows Platform (UWP) app samples on GitHub. You can find them here:</p>
<p><strong>QuizGame</strong> is a Universal Windows Platform (UWP) app sample that explores the benefits of running the same app on multiple devices in direct communication with one-another. <a href="https://github.com/Microsoft/Windows-appsample-quizgame">https://github.com/Microsoft/Windows-appsample-quizgame</a></p>
<p><strong>RSSReader</strong> is a sample Universal Windows Platform (UWP) app for retrieving RSS feeds and viewing articles. <a href="https://github.com/Microsoft/Windows-appsample-rssreader">https://github.com/Microsoft/Windows-appsample-rssreader</a></p>
<p>Also, today we launched the new Windows Dev Center (<a href="http://dev.windows.com/">http://dev.windows.com/).</a> This is a significant launch that includes the preview of the new dashboard, a new home page, and a lot of new and updated content for developers.</p>]]></content:encoded>
    </item>
    <item>
      <title>The tools I use with my Microsoft Azure Web App</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/the-tools-i-use-with-my-microsoft-azure-web-app</link>
      <pubDate>Sat, 18 Apr 2015 01:27:00 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/04/18/the-tools-i-use-with-my-microsoft-azure-web-app/</guid>
      <description><![CDATA[I wanted to share with you my positive experience with the Microsoft Azure App Service (of which Web...]]></description>
      <content:encoded><![CDATA[<p>I wanted to share with you my positive experience with the <a href="http://azure.microsoft.com/services/app-service/">Microsoft Azure App Service</a> (of which Web Apps, formerly known as Websites, is just one aspect). I also thought it might be of interest to some folks if I give a run-down of the tools I use to create the content on my Web App which is at <a href="http://voices.azurewebsites.net/">http://voices.azurewebsites.net/</a>.</p>
<p>If you want to create your own Web App, you'll begin by signing in with your Microsoft Account and creating a free trial subscription. If you're wondering why the submit button doesn't light up and why the credit card section is collapsed, that's because first you have to press the button to validate your Microsoft Account and then enter the security code you'll be sent. Then you can fill in your payment details (which, the site says, will not be used as long as you stick with your free subscription). It's all very quick and easy, and the management portal is very impressive, beautiful, full-featured, and a pleasure to use.</p>
<p>For authoring html and css, I use Microsoft Expression Web 4. You can get a free version <a href="http://www.microsoft.com/en-us/download/details.aspx?id=36179">here</a>. Grab the ftp details from the Azure portal and plug them into Expression Web and you're ready to author and publish. I find Expression Web very easy and pleasant to use. It has everything I need but if you have ideas for alternatives, please let me know in the comments. That goes for any tool I mention here.</p>
<p>Next comes interactivity. I have just one page with interactive little controls on it, and that's the <a href="http://voices.azurewebsites.net/elements/">introductory page</a> to my elements of music section. The controls are rendered with the <a href="http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx">Silverlight browser plugin</a>, which is arguably anachronistic in this day and age. But it's familiar to me and I know it far better than I know HTML5 (which is barely at all). And I use <a href="https://www.visualstudio.com/">Visual Studio</a> (and sometimes Blend for Visual Studio) to develop my Silverlight controls. The 3D helix is made of plain old Silverlight Ellipse shapes z-sorted, perspective projected, and rendered back to front. Complicated, but effective. The piano keyboard control uses a <a href="https://msdn.microsoft.com/en-us/library/system.windows.media.mediastreamsource(v=vs.95).aspx">MediaStreamSource</a> to generate sample buffers and play them back through a <a href="https://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement%28v=vs.110%29.aspx">MediaElement</a>.</p>
<p>For images, I typically generate those using my Silverlight controls and then take screenshots. Then I manipulate them in Paint or sometimes in Paint.net. By the way, be careful if you try to download Paint.net: the product's website hosts some clickjacking ads even more prominently than it does its own download link. For that reason I hesitate even to link to it. You can find it very easily, though.</p>
<p>Finally, there's the musical score and the audio files, examples of which you can see on the <a href="http://voices.azurewebsites.net/harmony/suspense.htm">harmony/suspense</a> page. I use <a href="http://www.steinberg.net/en/products/cubase/start.html">Steinberg Cubase</a> 7.5 to record midi and then use the score editor to make it look just right. I then export it as a png at 100dpi and then just clip it to size in Paint. The audio is recorded in Cubase simply by recording into an audio track while playing back the midi. Then it's exported as an audio mixdown in mp3 format. I use an img element to show the score and an audio element for the mp3.</p>
<p>Building this site has been tremendous fun so far, and I have a lot more content to add to the harmony section before I'm done. And hopefully a lot more recordings.</p>
<p>Let me know what you think!</p>
<p>-Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Anatomy of a simple musical composition</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/anatomy-of-a-simple-musical-composition</link>
      <pubDate>Sat, 21 Mar 2015 19:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/03/21/anatomy-of-a-simple-musical-composition/</guid>
      <description><![CDATA[Limerick is a simple-sounding 19-bar (counting the pickup bar) piece in 4/4. It's slow, at 75 bpm,...]]></description>
      <content:encoded><![CDATA[<p>Limerick is a simple-sounding 19-bar (counting the pickup bar) piece in 4/4. It's slow, at 75 bpm, and its key is F for the first 9 bars and then it modulates to the closely-related key of C for the rest.</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/2465.VID00001.wmv]</p>
<p>The sheet music is here: <a href="http://voices.azurewebsites.net/my_music/score/limerick_001.png">http://voices.azurewebsites.net/my_music/score/limerick_001.png</a>, and the video is also available on YouTube:&nbsp;<a title="https://www.youtube.com/watch?v=xMnqopGn12Q" href="https://www.youtube.com/watch?v=xMnqopGn12Q">https://www.youtube.com/watch?v=xMnqopGn12Q</a>.</p>
<p>Modulating from F to C is an example of modulating to the dominant (up a fifth, or down a fourth) and is done by sharpening the 4th degree (that is, adding an augmented unison) to make it #4, then taking the 5th degree (or dominant, and C is the dominant of F) to be the new tonic, whereupon that #4 becomes the 7th degree of the new key.</p>
<p>In terms of sol-fa, we're modulating from doh to soh. Fah is sharpened to fe and it becomes te of the new key.</p>
<p>Because F and C are such closely-related keys, there are plenty of interesting moments of ambiguity in this piece that we can examine.</p>
<p>Beginning in F, bar 2 moves from F (I) to Am (iii) then in the next bar Dm (vi) back to iii. The roots of the chords have spelled out a Dm in first inversion (F-A-D) which is the submediant triad (the submediant, or 6th degree, is the relative minor). By the way, these minor chords sound pleasant but they're doing a poor job of persuading the ear that F major is the tonality. That's because their roots (3 and 6) are modal scale degrees, and not tonal scale degrees (like 1, 4, 5, and 2 somewhat, are). While playing that Dm (vi) chord, you heard the high F5 note as the melody, and that note is the min3 of the chord. In the next bar (0:09) that same F5 melody note is played again but this time against a Bb (IV) harmony where the F note functions now as a stronger 5th. That's followed by the tonic triad F (I) in the same bar. The F tonality has now been insinuated a little better, but that impression gets even stronger in the fourth bar where IVadd9 (a Bb with a slightly discordant dominant-to-the-key C note in the bass) is followed up by V7 which strongly suggests the F tonality because that's exactly where it desperately wants to resolve.</p>
<p>That resolution comes in bar 6 (0:16) and disappears just as quickly in that bar and the next as we again swing up through a repeat of I-iii/vi-iii. But this time the IV in the following bar moves to the tense V7, leaving the final bar free to spend its entire four beats (0:25) resolving to I and staying there. Phew!</p>
<p>Ok, well that was pretty standard stuff. Now we move into some ambiguous territory. For the second half of the piece, you'll feel that a C major tonality is established, although ambiguously so because we use pretty much the same chords and notes as before (although, we do play B as often natural as we do sharpened, and a G chord plays a cameo as a pretty conspicuous V, or arguably V7).</p>
<p>So, in terms of the new tonality of C, we move (0:29) IV-vi7/IV-IV. Then we move (with that brief resolution) to I-I/bVII-bVIIadd9. What's that flattened leading-tone triad doing there? If we were in F that'd be a simple IV. But in C it's a partial v7 (that is a V7, made into a minor v7 by flattening the third, the B to bB, and then losing the root and with it any 5-1 root movement we'd have enjoyed). But it still functions as a v7 in C, nicely sandwiched between two Is (for I-v7-I). You can hear the resolution to the tonic that follows it. That's taken care of four of what were the eight remaining bars and we're still not entirely sure we're in C. But next there's I (0:42) (with the subdominant F in the bass) to IV (with the submediant A in the bass). Then we take a vi chord (6-1-3) and throw an F (subdominant of the key) beneath it to make it a IVmaj7 (4-6-1-3) and move immediately to a G chord (V) which has its own 3rd, a B note, the leading-tone of the key, in the bass. A IV-V cadence (with those tonal degrees for roots) is actually sufficient on its own to establish a tonality so it's arguable that the ear is now perfectly primed for a C chord and the resolution it will bring. Furthermore, the bass movement over the last two chords from that F to that B (0:47) is a tritone and it spells out the business end of a dominant 7th (the 3rd to the fifth of a V7), which makes the ear even more anxious for a restful C chord. Over the next two bars that's what we get, by way of the nice sus4 of the F note that seems itself almost reluctant to let go of the tension and allow us to slip down to that C.</p>
<p>And maybe this is a case of "you should quit while you're ahead". Or in this case, quit while you're resolved. Because bars 18 and 19 (the coda) of the piece mess with our head a little. An octave higher, the motif of bars 16 and 17 are repeated (0:55) but this time instead of ending satisfactorily in a C chord, we end with a Csus4/F. It's a nod to the key of F that we started with but it feels less like a resolving Fsus2 chord (which is made from the same notes we're playing) and more like what it is: a cheeky little refusal to completely resolve to C by allowing that F to move down the minor 2nd that it wants to to E, and the bass to move to C. If you like, when you play the piece, you can just throw a nice satisfactory C in at the end. It sounds good. But if you prefer "cheeky" then stop where the score does. :)</p>
<p>Btw, the book whose spine you can see in the video is "Applications = Code + Markup" which is a book about WPF by one of my heroes, Charles Petzold.</p>
<p>&nbsp;-Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>An experiment in musical harmonization</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/an-experiment-in-musical-harmonization</link>
      <pubDate>Tue, 03 Mar 2015 22:48:00 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/03/03/an-experiment-in-musical-harmonization/</guid>
      <description><![CDATA[UPDATE: well, that didn't work, sadly. In the Preview tab you get when writing a blog post, these...]]></description>
      <content:encoded><![CDATA[<p>UPDATE: well, that didn't work, sadly. In the Preview tab you get when writing a blog post, these WMA files appear with nice little transport controls, which work perfectly. If anyone wants to hear the audio, come see me, I'll log in and edit this post and show you the Preview tab. That's the best I can do for now.</p>
<p>It's time I did a musical post. This blog's subtitle is, after all, "<span>Mostly software and music, some work, but all play</span>". :)</p>
<p>I was folding laundry and humming a made-up tune and I wanted to experiment with it, find out what key it's in, how to harmonize it with chords, where it wants to go to resolve, that kind of thing. Here's what I had in my head, listen to it a couple of times.</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/1563.01-the-melody.wma]</p>
<p>As I was finding the notes on the piano, it reminded me of Queen's "Fun It". It's not the same, but it's similar, so let's take a look at "Fun It" later and compare that to where we end up. It also sounds a bit like a James Bond movie cue, too (which, it turns out, is in a different key so we'll look at that later, too). But first let's see what this one is made of.</p>
<p>&nbsp;Because of the notes used in the melody, a na&iuml;ve interpretation indicates that it should be in the key of either E or A. But it doesn't resolve to either. Here's an attempt to resolve to E.</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/8015.02-resolve-to-E.wma]</p>
<p>And here's an attempt to resolve to A.</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/1856.03-resolve-to-A.wma]</p>
<p>It does resolve to D, though.</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/8004.04-resolve-to-D.wma]</p>
<p>Ok, so if the key is D then that G# in the melody is chromatic. How does it sound if we substitute a diatonic G?</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/7658.05-G-natural.wma]</p>
<p>It doesn't make much difference. Ok, let's stick with the G# for now then. In the key of D, with 1 representing the tonic D, that gives us a melody (in terms of scale degrees) of 3-#4-5-3-#4-5-6-3-1. Why is there a #4 in there, though? A 4 is the fourth degree, or subdominant. But this one is sharpened, or augmented. The interval from 1 to #4 is a tritone (an augmented fourth), and you find tritones in dominant seventh chords. Ok, so maybe the tritone is D up to G#, which would give us a Bb7, resolving to Eb. So we should try harmonizing that G# (the #4) with a Bb7 chord and then harmonizing a note that follows (let's choose the A) with an Eb. As it happens, that makes no musical sense here, listen (but be careful, this sounds terrible).</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/7652.06-sounds-bad.wma]</p>
<p>Ok, the other option of course is that the tritone is G# up to D. That would give us E7 (which is II7 in the key of D) resolving to A (which is the V, or dominant, in D). Listen to that, I think it makes a lot more sense.</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/8562.07-II7_2D00_V_2D00_II7_2D00_V_2D00_I.wma]</p>
<p>Harmonizing the G# note (the #4 note) with an E7 chord (the II7 chord) makes the G# the major third of that chord. In a major key, the triad formed on the second degree of the scale is minor, so it's written ii. In the key of D, ii is Em so of course its third is minor and it falls on G natural. And the (minor) third of that ii is the same note as the key's 4th scale degree (which is a perfect fourth, and G is a per4 above D). But here we're taking the ii and sharpening its third, making it into a II (which is major). In the process, we're sharpening our per4 to an aug4, or #4. At least now the function of that #4 is making sense: it's the maj3 of II7 (or, more generally, of II). I'm not sure I like this harmonization yet, though. How does it sound with a V7 toward the end (that high F# note turning the A7 into an A7add6)? And then resolving to I?</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/7026.08-II7_2D00_V_2D00_II7_2D00_V_2D00_V7_2D00_I.wma]</p>
<p>Ok, that II7-V7-I is all very cycle-of-fifths (II is the V-of-V, and of course V is the V-of-I, so we get three nice descending root movements in fifths for a pleasing little chain of resolutions). But I feel we can do better. Let's leave that G# note unharmonized and, for some different color, use iii (F#m) instead of V to harmonize the A note. Since we're leaving the G# naked, let's harmonize the B note with a IV (which is a G chord). So, that gives us iii-iii-IV-V7-I.</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/4024.09-iii_2D00_iii_2D00_IV_2D00_V7_2D00_I-with-G_2300_.wma]</p>
<p>I like the gentle, neutral, minor mood at the start which lifts off with that IV (which introduces our key note D for the first time) and then cranks things up with that tense and (slightly) exotic V7add6 which pops us nicely home into the D. For contrast, how does the same thing work with that G as a natural?</p>
<p>[View:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-59-08/3716.10-iii_2D00_iii_2D00_IV_2D00_V7_2D00_I-with-G.wma]</p>
<p>They're both good, but there's something about that G# that I prefer; I don't know, it sounds somehow more mischievous. The first three diatonic notes of F#m are F#-G#-A. So, when you use the G#, and you harmonize the third note (the A) with an F#m (as we did in the last two recordings), the melody actually goes with the F#m chord and not with the key of D. We're temporarily in a very unambiguous tonal center (a minor tonal center) of F#m for a moment at the beginning. It's only later when the global context of D major is established that the ear realizes it was being deceived. However, if you use a G natural with the F#m then you're really diluting the minor sense that the chord is trying to establish. And I think that's why it doesn't quite work as well. But it's subtle.</p>
<p>I'll take a look at "Fun It" and the James Bond music in a future post.</p>
<p>-Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Jack uses the loci mnemonic to recall his Cortana presentation (Part 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/jack-uses-the-loci-mnemonic-to-recall-his-cortana-presentation-part-2</link>
      <pubDate>Sat, 14 Feb 2015 16:13:00 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/02/14/jack-uses-the-loci-mnemonic-to-recall-his-cortana-presentation-part-2/</guid>
      <description><![CDATA[While reading Part 1, you might have thought: hang on, it seems to have been necessary for Jack to...]]></description>
      <content:encoded><![CDATA[<p>While reading <a href="http://blogs.msdn.com/b/stevewhite/archive/2015/02/08/jack-uses-the-loci-mnemonic-to-recall-his-cortana-presentation-part-1.aspx">Part 1</a>, you might have thought: hang on, it seems to have been necessary for Jack to remember a lot more <em>stuff</em> than if he'd <em>just</em> remembered the facts of his talk and nothing more.</p>
<p>That is true. But <em>volume of stuff</em> is generally not the issue with memory. The issue is not storage, but recall. And many times just a prompt or a clue is enough to trigger the recall of things that are connected in your mind, so the issue is really just getting recall going from a cold start. To recall an idea from nothing, the idea needs to have a good handle or hook on it that you can grab onto.</p>
<p>In the physical world, a piece of luggage that has a strap on it, or a bunch of things chained together, are much easier to carry, and less likely to be lost, than something (even a much lighter something) that you <em>can't</em> attach to yourself. In the virtual world of the imagination, images&mdash;especially vivid, animated, emotive, often bizarre images&mdash;typically have handles all over them for your mind to get ahold of. And things, people, or places that you see regularly are easy to recall, too. But numbers, and unordered or ordered lists of words or sentences or concepts, for example, don't have those qualities. They don't have enough "grippage", as Karl Pilkington would say (and you can search for that word in the Dictionary of Karl Pilkington, if you like).</p>
<p>Enter the loci mnemonic system. First, choose a building, area, or locality that you're very familiar with and that can be decomposed into individual locations; each locus having a unique and memorable feature. Choose the sequence of loci such that visiting them one after the other takes you on a tour in your imagination. Each locus naturally leads to the next one. You might choose loci at your home, at your office building, out in your residential street, or on the High Street. Jack chose his home, and he decided to begin the tour out at the post that stands where his driveway meets the street.</p>
<p>Jack's first talking point was "the Microphone capability" and, as the prompt for that talking point, he took "microphone". To associate the post with "microphone", he played on the similar shape of a post and a microphone and made them the same thing. A giant microphone growing out of the ground is a pretty striking image, and striking equals memorable. Also, the fact that the locus and the prompt for the talking point are one and the same makes the association particularly strong. Jack focused on the image for a few long moments so that it became crisp, vivid, and realistic. Later during recall, during the speech, Jack recalled his first locus, the post, immediately saw the giant microphone, and used that hook to reel in the talking point. When done correctly, each item (of the locus, the prompt, and the talking point) is securely connected to the next and retrieval requires no effort. Let's briefly look at the associations for each of the remaining loci.</p>
<p>Talking point: "create a Voice Command Definition (VCD) file". Prompt: for whatever reason, whenever Jack sees the acronym "VCD", his brain always says "VCR" to him. The whys don't matter; all that matters is that it's a natural, effortless association for Jack. You will have your own natural, effortless associations: if not in this case then certainly in others. So Jack's prompt is "create a VCR". Locus: the driveway. Image: Santa's elves create things, so an elf sitting cross-legged on the driveway, using a coarse-toothed file to grind away at the asphalt surface and reveal in it the shape of a video cassette recorder. The file (VDC <em>file</em>) was just extra insurance.</p>
<p>Talking point: "open and edit the contents of the VCD file". Prompt: "edit". Locus: garden gate. Image: the gate's wooden boards are strips of film or magnetic tape cut (edited) to shape.</p>
<p>Talking point: "markup in the VCD file contains CommandSet elements, and inside each of those are Command elements". Prompt: "commands are the building-blocks of command sets". Locus: red-brick path. Image: each brick is a command, and the path as a whole is a set of commands.</p>
<p>Talking point: "the first element in a Command is the Example element". Prompt: "eggs-ample". Locus: garage. Image: the car pelted with eggs.</p>
<p>Talking point: "next is the ListenFor element: the pattern of words or phrases that Cortana listens for with respect to your app." Prompt: "listen for". Locus: porch. Image: four doctors squashed into the bench on the porch and listening through stethoscopes (uses the phonetic similarity of "for" and "four").</p>
<p>Talking point: "next is the Feedback element, which lets the user know that their command has been recognized and what action is being taken". Prompt: "feedback". Locus: front door. Image: Jimi Hendrix standing in the doorway, creating feedback with his guitar.</p>
<p>Talking point: "last is the Navigate element, which is optionally used to define what page the app should navigate to". Prompt: "navigate". Locus: lounge. Image: in the darkened lounge, a sailor is navigating by stars that twinkle in the ceiling.</p>
<p>Talking point: "it only takes a couple of lines of code to install the commands in the VCD file when your app is run for the first time". Prompt: "install". Locus: kitchen. Image: some contractors installing a range.</p>
<p>Talking point: "next, write some code to handle activation and determine whether the activation was caused by a Cortana voice command, and so on." Prompt: "handle". Locus: dining-room. Image: where the dining-table should be, an enormous wooden door handle grows up from the floor.</p>
<p>As you can see from these examples, it's not about encoding every little detail of the talking points into the images. Jack is already familiar with the details; the <em>existence</em> of the memories is not a problem. What he needs help with is recalling those memories, at the right time, in the right order. And for that he just needs a little bit of prompting. So, only the locus and the prompt are encoded together. And, because the loci are known in order, the prompts and consequently the talking points can be recalled in order, too.</p>
<p>When you're extracting a prompt from an item that you want to recall, and when you're encoding a locus and a prompt together into an image, prefer the first one that occurs to you. First usually means instinctive, effortless, so there's a good chance that the image or the association between the prompt and the item will return to your mind equally instinctively during recall. You never need to explain your images/associations to anyone else. But if your first instinct seems too weak and unmemorable then go for another (the act of paying enough attention to the item to encode it into an image is a factor in helping lock it into the memory, too). Also prefer bizarre/humorous/stimulating images to commonplace ones, simply because they're more memorable. You never need to show your images/associations to anyone else, either.</p>
<p>You can think of the loci and the images as being memory cues. You can think of them as being devices to turn a free recall (or unaided recall) task into an aided recall task. Another way of thinking about it is that you organize your memories so that every not-so-easy-to-recall thing has an easy-to-recall thing attached to it.</p>
<p>-Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Jack uses the loci mnemonic to recall his Cortana presentation (Part 1)</title>
      <link>https://docs.microsoft.com/archive/blogs/stevewhite/jack-uses-the-loci-mnemonic-to-recall-his-cortana-presentation-part-1</link>
      <pubDate>Sun, 08 Feb 2015 20:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Steven Charles White]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/stevewhite/2015/02/08/jack-uses-the-loci-mnemonic-to-recall-his-cortana-presentation-part-1/</guid>
      <description><![CDATA[I am Jack's imaginary loci.
Loci is pronounced "low sigh". It's the plural of the word locus,...]]></description>
      <content:encoded><![CDATA[<p>I am Jack's imaginary loci.</p>
<p>Loci is pronounced "low sigh". It's the plural of the word locus, meaning place, or location. Right now, Jack is rising from his chair, walking to the front of the room, and getting ready to begin presenting his session about integrating an app with Cortana. So, as Jack's loci, I'm about to come in quite useful.</p>
<p>Jack brings to mind his first locus in a series of spots in and around his home. This first locus is at the end of his driveway, where a post stands. Jack either drives or walks past that post at least twice a day. It is painted black, topped with a lamp, and it stands in a boisterous carpet of ivy that comes up to its knees. The post supports a board on which Jack's house number is painted. Calling to mind that first locus is effortless for Jack because it simply is what it is: it's his first locus, just like "a" is the first letter of the alphabet. That first locus is as easy to find in his memory as his nose is to find on his face.</p>
<p>Right now, though, the post is taking the form of a giant black microphone standing upright. An absurdly big microphone, with Jack's house number hanging off of it and with the business end where the lamp should be. Jack tells his audience that the first step in integrating your app with Cortana is to declare the <em>Microphone</em> device capability in your app package manifest file. You can do this in Visual Studio, he says, by double-clicking package.appxmanifest and using the convenient editor.</p>
<p>It took Jack maybe a second to recall this first point and begin speaking: a second to move his attention to the black post, which is actually a giant black microphone, and to decode that mental image into a much richer set of actionable facts that he was then able to begin to talk about.</p>
<p>Jack moves on to the next locus&mdash;the driveway leading to his house&mdash;and with a small amount of pleasure he allows himself to become aware of the little Santa's elf sitting cross-legged in the middle of the driveway. The elf is not paying attention to Jack: it's busy using a coarse-toothed file to grind away at the asphalt surface and reveal in it the shape of a video cassette recorder (VCR). Jack tells the audience that next you create a VCD file, and he explains what the acronym stands for, and he describes the steps you take in Visual Studio to add the VCD file to your project.</p>
<p>The next locus, instead of going directly to the house at the end of the driveway, is the adjacent gate to the garden. It's a wooden gate, and the vertical boards are now made of strips of film or magnetic tape cut to shape. Jack tells the audience that you now need to open and edit the contents of the VCD file.</p>
<p>Through the gate is a red-brick path leading around the side of the garage. Jack becomes aware that each brick is a command, so the path itself is a set of commands. He explains that markup in the VCD file contains CommandSet elements, and inside each of those are Command elements.</p>
<p>Jack imagines himself going around the back and into the garage where his car is sitting there: a complete mess, and thoroughly pelted with eggs. The first element in a Command is the Example element, he says. This gives the user an idea of the kinds of things they can say.</p>
<p>Out through the garage side-door and onto the front porch where four doctors are sitting, quite squashed together, on Jack's bench. The doctors have gleaming white coats on and they're each holding up stethoscopes, earpieces-in-ears. These are the "listening four", Jack remembers. The next element in a Command is the ListenFor element. In here, you define the pattern of words or phrases that the user can speak that Cortana will associate with launching your app.</p>
<p>Across the porch, to the front door. The door is missing. Instead, Jimi Hendrix is standing in the empty doorway. Even though they're immaterial, the details of what the musician is wearing return to Jack without effort: tight black bell-bottoms, flowery shirt, and headband around his head. Slung in front is a bright white Fender Stratocaster from which Jimi, with an expression of pure concentration, is coaxing screams of feedback. Then comes the Feedback element, Jack says. This lets the user know that their command has been recognized and what action is being taken.</p>
<p>Through the doorway, into the lounge which is very dark. Stars twinkle in the black ceiling, and an ancient sailor points an astrolabe at them. Lastly comes the Navigate element. This is optionally used to define what page the app should navigate to for this command, after being activated.</p>
<p>Moving counter-clockwise around the lower floor, Jack comes to the kitchen. Just like the men installing the range, Jack tells his audience that they next need to write a couple of lines of code to install the commands in the VCD file when their app is run for the first time. In the dining room, where the table should be, is an enormous wooden door handle growing up from the floor. Jack says that next it's necessary to write some code to handle activation and there to determine whether the activation was caused by a Cortana voice command and, if so, to look at the details of the activation arguments and take appropriate action, such as navigating to the specific page.</p>
<p>And those are the fundamental steps in integrating your app with Cortana. In <a href="http://blogs.msdn.com/b/stevewhite/archive/2015/02/14/jack-uses-the-loci-mnemonic-to-recall-his-cortana-presentation-part-2.aspx">Part 2</a>, I'll say more about the loci mnemonic, what it is, why it works, how Jack used it to encode the main points of his talk, and how you can do the same.</p>
<p>I did, of course, use the technique to write this post. Even though I was involved in updating the Cortana docs for Windows Phone 8.1 (so, they're somewhat familiar), I never bothered to commit the details to memory. If required to, I'd have been unable to recall the steps with any kind of fluency nor completeness. So, yesterday, I went through&nbsp;<a href="https://msdn.microsoft.com/en-us/library/dn630430.aspx">the Quickstart</a> and associated the steps, in sequence, with my loci. It didn't take long. Over 24 hours later, during which time I'd thought of neither my loci nor the images I'd encoded, I wrote the stuff above with zero effort and without needing to refer back to the docs.</p>
<p>-Steve</p>]]></content:encoded>
    </item>
  </channel>
</rss>