<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja-JP"><title type="html">Cameron Beccario</title><subtitle type="html">Nullschool&lt;BR /&gt;&lt;SPAN&gt;&lt;STRONG&gt;NOTE: This blog has moved to: &lt;A HREF="http://journal.nullschool.net/"&gt;http://journal.nullschool.net/&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;</subtitle><id>http://blogs.msdn.com/cambecc/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/cambecc/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2004-06-01T19:43:00Z</updated><entry><title>Never stop moving</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2005/04/02/404934.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2005/04/02/404934.aspx</id><published>2005-04-02T12:25:00Z</published><updated>2005-04-02T12:25:00Z</updated><content type="html">It's been a year since I left Microsoft and moved to Japan to study Japanese at &lt;a href="http://www.yamasa.org/acjs/index.html"&gt;Yamasa&lt;/a&gt;. Now that my year-long studies have completed, I have moved to Tokyo (just this past Tuesday!) for a job doing IT design.&lt;br&gt;
&lt;br&gt;
In the spirit of change, my blog has also moved and can be found here: &lt;a href="http://journal.nullschool.net/"&gt;http://journal.nullschool.net/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Can I promise great articles, well-formed prose, and witty comments? No. But I like the colors.&lt;br&gt;
&lt;br&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=404934" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="General" scheme="http://blogs.msdn.com/cambecc/archive/tags/General/default.aspx" /></entry><entry><title>IsNot patent</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2005/02/22/377999.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2005/02/22/377999.aspx</id><published>2005-02-23T07:32:00Z</published><updated>2005-02-23T07:32:00Z</updated><content type="html">&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="2"&gt;I can't stand seeing my friends &lt;a href="http://yro.slashdot.org/yro/04/11/19/1426256.shtml?tid=155"&gt;slammed&lt;/a&gt; on Slashdot yet &lt;a href="http://yro.slashdot.org/yro/05/02/22/1310232.shtml?tid=109&amp;amp;tid=155"&gt;again&lt;/a&gt;, so I'd like to say something about the "&lt;a href="http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;amp;Sect2=HITOFF&amp;amp;d=PG01&amp;amp;p=1&amp;amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;s1=%2220040230959%22.PGNR.&amp;amp;OS=DN/20040230959&amp;amp;RS=DN/20040230959"&gt;IsNot patent&lt;/a&gt;" fiasco. Paul, Amanda, and Corneliu are some of the nicest people I know, and I had the pleasure to work directly with them for several years. The "IsNot patent" is the result of a broken system and a litigious software industry, not the selling-out of unprincipled applicants.&lt;/font&gt; &lt;/p&gt; &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=377999" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="VB Language" scheme="http://blogs.msdn.com/cambecc/archive/tags/VB+Language/default.aspx" /></entry><entry><title>Analyzing the aggregate music tastes of Mac, Windows, Linux users</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2005/01/29/363041.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2005/01/29/363041.aspx</id><published>2005-01-30T05:00:00Z</published><updated>2005-01-30T05:00:00Z</updated><content type="html">&lt;font face="Verdana" size="2"&gt;Recently, a friend of mine introduced me to &lt;a href="http://www.audioscrobbler.com"&gt;Audioscrobbler&lt;/a&gt;. Using an audio player plug-in, your music choices are collected and compiled into an overview of your musical taste, accessible from the Audioscrobbler website. The website also displays a list of neighbors--users with statistically close musical tastes. Friendster for music.&lt;br /&gt;&lt;br /&gt;Groups are another interesting feature of Audioscrobbler. By joining a group (voluntarily), my music taste is combined with other members to create an aggregate musical profile of the group. Curious, I decided to look at the musical tastes of three groups--Mac, Windows, and Linux--to see if I could learn anything about the psychology of their users.&lt;br /&gt;&lt;br /&gt;Presented with the top 50 favorite artists for each group of Mac, Windows, and Linux users, I first removed artists common to all three. For the record, those were:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="159"&gt;&lt;tbody&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Radiohead&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;U2&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;The Beatles&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Modest Mouse&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Pink Floyd&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Coldplay&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Metallica&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Nirvana&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Depeche Mode&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Green Day&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Red Hot Chili Peppers&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Muse&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Evanescence&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Led Zeppelin&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Franz Ferdinand&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Tori Amos&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;Second, I looked at the top 10 remaining artists in each group. This should give us a good profile of OS users' musical tastes:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;table id="Table1" border="0" cellpadding="0" cellspacing="0" width="476"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;&lt;p align="center"&gt;Mac&lt;/p&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;&lt;p align="center"&gt;Windows&lt;/p&gt;&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;&lt;p align="center"&gt;Linux&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;David Bowie&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Bushido&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Iron Maiden&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Beck&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Alexisonfire&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Rammstein&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Pixies&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Iron Maiden&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Nightwish&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;周杰倫&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Rammstein&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Eels&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Air&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Linkin Park&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Nine Inch Nails&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Björk&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;In Flames&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Lloyd Banks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Death Cab For Cutie&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Elliott Smith&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Dream Theater&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;菅野よう子&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Nightwish&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Blind Guardian&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Bob Dylan&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Incubus&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Placebo&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;R.E.M.&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Foo Fighters&lt;/td&gt;&lt;td nowrap="nowrap" valign="bottom" width="159"&gt;Dream&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;As somewhat expected, the Mac group features a definite indie streak. Many of these artists blaze their own paths, such as Bowie, Beck and Björk. After all, aren't these people who think different? Also not surprising is the political rebelliousness symbolized by Dylan and R.E.M. You think they voted Bush? Hell, no. And I'm willing to bet neither did your average Mac user. It seems anime is popular, too; Kanno Yoko (菅野よう子) is apparently a famous anime soundtrack composer. I have no idea why &lt;a href="http://www.jay-chou.net/"&gt;Jay Chou (周杰倫)&lt;/a&gt; has such a strong showing. I've never even heard of the guy.&lt;br /&gt;&lt;br /&gt;Windows and Linux users seem to be pretty angry people, Rammstein and Iron Maiden being highly ranked on each list. Who can blame them? Linux folks like to claim moral superiority, and this irks Windows users. On the other hand, Windows users don't care about command prompts and compiling kernels, and this irks Linux users ("they should care dammit, &lt;i&gt;freedom of humanity&lt;/i&gt; depends on it!"). But certainly their musical tastes must differ somehow. With so many artists in common I couldn't detect a difference, so I went back to the original top 50 lists and selected the top &lt;i&gt;uniquely-occurring&lt;/i&gt; artists. What remains is the true "essence" of the groups' musical tastes:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;table id="Table1" border="0" cellpadding="0" cellspacing="0" width="476"&gt;&lt;tbody&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;&lt;p style="" align="center"&gt;Mac&lt;/p&gt;&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;&lt;p style="" align="center"&gt;Windows&lt;/p&gt;&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;&lt;p style="" align="center"&gt;Linux&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;David Bowie&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Bushido&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Eels&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Beck&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Alexisonfire&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Lloyd Banks&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Pixies&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Incubus&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Dream&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;周杰倫&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Foo Fighters&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Grandaddy&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Death Cab For Cutie&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Blink-182&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;梶浦由記&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Bob Dylan&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Papa Roach&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Goo Goo Dolls&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;R.E.M.&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Korn&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;A Perfect Circle&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;The Cure&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Avril Lavigne&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Ben Folds&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;DJ Shadow&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Rage Against the Machine&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Motorworks&lt;/td&gt;&lt;/tr&gt;&lt;tr style=""&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;The Clash&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Bad Religion&lt;/td&gt;&lt;td style="" nowrap="nowrap" valign="bottom" width="159"&gt;Styles&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;The Mac group retains its indie rebelliousness (note inclusion of The Clash and The Cure). They probably have a hard time getting along with people outside of their "in-group". The Windows and Linux tastes are still hard to differentiate, so I looked up the "mood" of each artist at &lt;a href="http://www.allmusic.com"&gt;allmusic&lt;/a&gt;. If mood is any indication of the disposition of listeners then the results are oddly appropriate. Windows users are hostile, raucous, confrontational, nihilistic, &lt;i&gt;angry &lt;/i&gt;and &lt;i&gt;angst-ridden&lt;/i&gt;. On the other hand, Linux users are messy, cerebral, quirky, earnest, &lt;i&gt;greasy&lt;/i&gt; and &lt;i&gt;menacing&lt;/i&gt;. Well I guess that settles that.&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=363041" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="General" scheme="http://blogs.msdn.com/cambecc/archive/tags/General/default.aspx" /></entry><entry><title>Installing Japanese Keyboards on Windows XP</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2005/01/24/359359.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2005/01/24/359359.aspx</id><published>2005-01-25T01:32:00Z</published><updated>2005-01-25T01:32:00Z</updated><content type="html">&lt;font face="Verdana" size="2"&gt;A little while back I bought a Japanese keyboard to use with my laptop while docked. It's a Microsoft Basic Keyboard 1.0A, with 109 keys. Not only does it have more keys than a standard US keyboard, but the layout is slightly different (such as the location of the apostrophe ' and at-symbol @ keys). To enable this layout in the US version of Windows XP, I configured IME by adding the Japanese keyboard layout to the Japanese input language service. Unfortunately, this didn't work. A bit of searching turned up this very helpful page written by Michael Eng for &lt;a href="http://www.daydream.org.uk/meng/jpkbnt4/"&gt;installing Japanese keyboards on Windows XP&lt;/a&gt; (scroll down to the bottom of the page since it also contains instructions for NT4 and Win2k).&lt;br /&gt; &lt;br /&gt; Not only must you add the Japanese layout to IME, but you must also install a Japanese keyboard driver. Here's the set of instructions, updated to Windows XP SP2. Of course, use at your own risk.&lt;br /&gt; &lt;br /&gt; 1. Navigate to Start-&amp;gt;Control Panel-&amp;gt;Keyboard&lt;br /&gt; 2. On the Hardware tab, click Properties (note that the current driver is probably "Standard 101/102-Key or Microsoft Natural PS/2 Keyboard")&lt;br /&gt; 3. On the Driver tab, click Update Driver...&lt;br /&gt; 4. The Hardware Update Wizard launches. When it asks if Windows can connect to Windows Update to search for software, select "No, not this time" and click Next&lt;br /&gt; 5. Select "Install from a list or specific location (Advanced)" and click Next&lt;br /&gt; 6. Select "Don't search. I will choose the driver to install" and click Next&lt;br /&gt; 7. Uncheck "Show compatible hardware"&lt;br /&gt; 8. Select "Japanese PS/2 Keyboard (106/109 Key)" from the manufacturer "(Standard keyboards)" and click Next&lt;br /&gt; 9. Click Yes to continue with the installation when the warning about installing incompatible device drivers appears&lt;br /&gt; 10. Click Yes to continue with the installation when the warning about replacing PS/2 mouse port drivers appears&lt;br /&gt; 11. Click Finish and reboot&lt;br /&gt; &lt;br /&gt; A friend of mine said he didn't need to jump through these hoops, that his Japanese keyboard worked out of the box on his US WinXP machine. Not so in my case. It's interesting that step 7 is required; Windows seems unable to detect that I have attached a Japanese keyboard. In fact, if Windows could detect it, this whole workaround probably wouldn't be needed.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;/font&gt;&lt;br /&gt; &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=359359" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="Japan" scheme="http://blogs.msdn.com/cambecc/archive/tags/Japan/default.aspx" /></entry><entry><title>I'm at war with the washing machine</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2005/01/17/354283.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2005/01/17/354283.aspx</id><published>2005-01-17T08:39:00Z</published><updated>2005-01-17T08:39:00Z</updated><content type="html">&lt;font face="Verdana" size="2"&gt;I'm at war with the washing machine. No matter which countermeasures I take, this "home appliance" manages to stretch my clothes to extreme and unfair proportions. It is particularly brutal to t-shirts.&lt;br /&gt; &lt;br /&gt; I'm not the only one. Each apartment in my building has the same model. Every so often I spot a student, a fellow soldier from the front, with a t-shirt draped loosely around their neck like a toga; a t-shirt sent forth into the watery void only to return a changed garment, a v-neck vest or a one-piece skirt.&lt;br /&gt; &lt;br /&gt; The machine, a Sharp ES-25E, consists of a main washing tank with an impeller at the bottom. The impeller, which periodically changes direction, creates a watery vortex of death in which my hapless clothes become "clean". They also become stretched in a way similar to when approaching the event horizon of a black hole. The impeller can be set between two levels, strong and weak, both of which elicit evil cackles from the machine. Down at the 100 yen shop, you can buy nylon-mesh bags for protecting clothes. In theory this reduces the stresses experienced when spinning through the vortex but, alas, it merely delays the inevitable.&lt;br /&gt; &lt;br /&gt; If I had a dryer, I could purposefully shrink the clothing back into a reasonable shape. Hmm... Perhaps the war is not lost.&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=354283" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="General" scheme="http://blogs.msdn.com/cambecc/archive/tags/General/default.aspx" /></entry><entry><title>Outsider's Eyes</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2005/01/01/345382.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2005/01/01/345382.aspx</id><published>2005-01-02T06:32:00Z</published><updated>2005-01-02T06:32:00Z</updated><content type="html">&lt;font face="Verdana" size="2"&gt;It may sound strange, but odd-numbered years always bring me better fortune than even-numbered years. Sorry, I won't elucidate.&lt;br /&gt; &lt;br /&gt; I've returned to the United States for the holidays to visit family and friends. Having spent the previous 9 months living in Japan, I've wondered how this experience has changed my perception of the US. What would I see differently with outsider's eyes?&lt;br /&gt; &lt;br /&gt; First thing that struck me is the disproportionate amount of over-the-counter/prescription drug commercials on TV. No matter what ails you, it seems there's a drug to help.&lt;br /&gt; &lt;br /&gt; If English is the national obsession of Japan, then dieting must be the national obsession of the United States. I realized this when drinking some diet orange juice for breakfast. Diet *orange juice*? It seems everything comes in a diet form these days. Furthermore, newscasts report the latest findings on diet science, diet technology, diet success stories, etc., etc. Don't forget the commercials for exercise equipment, dieting books, and dieting drugs (see above).&lt;br /&gt; &lt;br /&gt; Speaking of diet, American cuisine is drenched with dairy products. Not that I'm complaining; I love dairy. Fried cheese anyone?&lt;br /&gt; &lt;br /&gt; It seems 1 out of 10 cars has a magnetic "hero-ribbon" or "flag-ribbon" stuck to it.&lt;br /&gt; &lt;br /&gt; In Japan, the ambient noise is loud and the people will rarely tell you exactly what they think. In the US, the people are loud and usually tell you exactly what they think (about you).&lt;br /&gt; &lt;br /&gt; America contains people who think voting for George W. Bush was a good idea. As far as I can tell, Japan does not.&lt;br /&gt; &lt;br /&gt; Finally, the American lifestyle is luxurious. Living spaces are huge. Transportation is super-convenient, assuming you own a car, and cheap (if I wanted to drive 45 km on the highway in Japan, it would cost me $14 in tolls). Food is cheap and portions are large.&amp;nbsp; Also, houses can be heated all day long. In Japan, I can afford to heat my bedroom, but not my kitchen or bathroom. This makes for some really cold showers in the morning (which perhaps partly explains why Japanese prefer to bathe at night).&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=345382" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="Japan" scheme="http://blogs.msdn.com/cambecc/archive/tags/Japan/default.aspx" /></entry><entry><title>People to thank, blogs as an emergent social network</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/09/14/229263.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/09/14/229263.aspx</id><published>2004-09-15T00:31:00Z</published><updated>2004-09-15T00:31:00Z</updated><content type="html">&lt;font face="Verdana" size="2"&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Meeting people and building social networks is what makes conferences like TechEd really valuable. Last week was no exception. I had the privilege of meeting and talking with quite a few nice people. Thanks to everyone on this list:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;伊藤由起子&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Yukiko Ito, &lt;a href="http://www.zest.jp/"&gt;ZEST Inc.&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;宇田豊和&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Toyokazu Uda, &lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;Fuji&lt;/st1:city&gt;&lt;/st1:place&gt; Xerox&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;柿沼雄一郎&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Yuichiro Kakinuma, ITMedia&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;河端善博&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Yoshihiro Kawabata, SQL Server MVP (&lt;a href="http://blogs.sqlpassj.org/yoshihirokawabata"&gt;blog&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;片岡真二&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Shinji Kataoka (&lt;a href="http://www.pegalabo.net/"&gt;Pegasus Laboratory&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;北端智&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Satoru Kitabata&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;小島紋&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Aya Kojima, INETA &lt;st1:country-region w:st="on"&gt;&lt;st1:place w:st="on"&gt;Japan&lt;/st1:place&gt;&lt;/st1:country-region&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;杉下朋年&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Tomotoshi Sugishita, Visual Basic MVP (&lt;a href="http://www.mitene.or.jp/%7Esugisita/"&gt;PAPA'n VB&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;鈴木祐巳&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Masami Suzuki, Microsoft&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;沼口繁&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Shigeru Numaguchi, Microsoft&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;堀田健也&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Kenya Horita, ASP .Net MVP (&lt;a href="http://www.hollytown.net/blog/"&gt;Hollytown&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;福王寺聡明&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Tomiaki Fukuoji (&lt;a href="http://www.foopah.com/"&gt;FooPah!&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;山崎明子&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Akiko Yamazaki, NEC, presented the VB 2005 session&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;[&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;優一吉原&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;] Yuichi Yoshihara (&lt;a href="http://www3.to/elfaria"&gt;Elfaria Development Studio.eds&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Special thanks go to Fukuoji-san, Sugishita-san, and Yoshihara-san for putting up with my horrible Japanese abilities for so long. Also to Ito-san for inviting me to TechEd and and Kawabata-san for inviting me to the Comega panel discussion.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;At the TechEd 10th Anniversary party, I was introduced to a bunch of people, one of whom had drawn my likeness in character-form on a paper plate and handed it to me along with his business card. No name, just a blog: &lt;a href="http://tlcblog.exblog.jp/"&gt;TimberLandChapel&lt;/a&gt;. [UPDATE: the owner is [今井 聡] Satoshi Imai--thanks for the email, and the drawing!]&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;There are many other cool people I met, but either I don't have their business card or I drank a little too much at the party. So, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'ＭＳ 明朝';" lang="JA"&gt;ごめんなさい&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;This got me thinking a little bit (the social networking, not the drinking, although that happens sometimes too). Closed social networks such as Friendster and Orkut are exactly that: closed. And they have a tendency for major branches of their networks to die off. But blogs and blogrolls can be said to constitute an emergent, loosely defined social network owned by no one entity. In much the same way that RSS is used as a standard for publishing (allowing aggregation and subscription, among other things), wouldn't it be nice to have a standard way of describing the social relationships between two people, i.e., two blogs? This standard could facilitate back tracking, privacy permissions (see LiveJournal), and who knows what else. Perhaps it already exists?&lt;/span&gt;&lt;font face="Times New Roman" size="3"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/font&gt;&lt;font face="Verdana" size="2"&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=229263" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="General" scheme="http://blogs.msdn.com/cambecc/archive/tags/General/default.aspx" /></entry><entry><title>TechEd part 2: Comega and VB</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/09/10/227798.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/09/10/227798.aspx</id><published>2004-09-11T02:05:00Z</published><updated>2004-09-11T02:05:00Z</updated><content type="html">&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;Finished another day here at TechEd.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Saw a presentation on &lt;/font&gt;&lt;a href="http://lab.msdn.microsoft.com/vs2005/teamsystem/"&gt;&lt;font face="Verdana" size="2"&gt;Visual Studio Team System&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Wow.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;No wonder the blogosphere is &lt;/font&gt;&lt;a href="http://weblogs.asp.net/robcaron/archive/2004/09/09/227765.aspx"&gt;&lt;font face="Verdana" size="2"&gt;ablaze&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; with Team System discussions.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Where did they find the time to build all that stuff?&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;font face="Verdana" size="2"&gt;I was fortunate enough to be invited by &lt;/font&gt;&lt;a href="http://www.ineta.jp/"&gt;&lt;font face="Verdana" size="2"&gt;INETA Japan&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; to participate in a panel discussion on &lt;/font&gt;&lt;a href="http://research.microsoft.com/Comega/"&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;C&lt;span lang="JA" style="mso-ansi-language: JA"&gt;ω&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;, a "strongly typed, data oriented programming language that bridges the gap between semi-structured hierarchical data (XML), relational data (SQL), and the .NET Common Type System (CTS)."&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;I began thinking what VB could do with C&lt;span lang="JA" style="mso-ansi-language: JA"&gt;ω&lt;/span&gt;-like features.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Some of the features such as streams, anonymous structures, and choice types seem an ill-fit for VB, but the ideas of concurrency and integrated SQL expressions are particularly appealing.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Imagine an application whose memory store is implemented as a database.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;The benefits are obvious--sophisticated search, sort, scalability, and persistence are automatically available.&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;Combine the database server with a garbage collector and you have a generalized memory manager, albeit one suited for web applications spread across geographically distant servers.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;But programming such a model today is difficult because the interface between source code and database in most languages is too complicated, not only for fetching and storing data but also for doing it in an asynchronous manner.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;A language that simplifies this code/database interface would be quite compelling.&lt;span style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'MS Shell Dlg'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;The C&lt;span lang="JA" style="mso-ansi-language: JA"&gt;ω&lt;/span&gt; feature which bothers me most is support for &lt;/font&gt;&lt;a href="http://research.microsoft.com/Comega/doc/comega_whatis.htm"&gt;&lt;font face="Verdana" size="2"&gt;XML syntax&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;XML may be the best thing since sliced bread, but this seems done more for the sake of fashion than functionality.&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;I see the benefits, but XML... inlined in my source code?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Bleh.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;It's not aesthetically pleasing.&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;I dislike XML comments for the same reason (but unfortunately they made it into VB).&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Perhaps I eat my own words here;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;SQL syntax seems similarly bolted on.&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;I agree, but it's the &lt;i style="mso-bidi-font-style: normal"&gt;idea&lt;/i&gt; of closing the code/database gap which is compelling, not which specific syntax is used.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;span lang="JA" style="mso-ansi-language: JA"&gt;Overall, though, Cω&lt;/span&gt; looks really neat.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;In particular, the SQL integration elicited oohs and ahhs from the normally reserved audience.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Thanks go to INETA Japan for inviting me to the discussion.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=227798" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="VB Language" scheme="http://blogs.msdn.com/cambecc/archive/tags/VB+Language/default.aspx" /></entry><entry><title>TechEd Impressions</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/09/08/226719.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/09/08/226719.aspx</id><published>2004-09-09T02:27:00Z</published><updated>2004-09-09T02:27:00Z</updated><content type="html">&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;I've finished my last session for the day here at TechEd. Right now I'm staring out over &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:PlaceName w:st="on"&gt;Yokohama&lt;/st1:PlaceName&gt; &lt;st1:PlaceType w:st="on"&gt;Bay&lt;/st1:PlaceType&gt; where the expansive &lt;st1:place w:st="on"&gt;&lt;st1:PlaceName w:st="on"&gt;Yokohama&lt;/st1:PlaceName&gt; &lt;st1:PlaceType w:st="on"&gt;Bay&lt;/st1:PlaceType&gt; &lt;st1:PlaceType w:st="on"&gt;Bridge&lt;/st1:PlaceType&gt;&lt;/st1:place&gt; dominates the view.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;I attended the VB 2005 session this afternoon to see what the audience was like and what kind of topics were discussed. The room, which sits about 1200, was probably 1/3 full (the same was true for the C# session immediately following). The presentation started out with demos of new language features such as My, unsigned types, operator overloading, and generics, and ended up discussing application settings and project related improvements.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;I sometimes forget that there is so much more to VB than the core language. The VB language and IDE team (the folks who do Intellisense, Edit &amp;amp; Continue, etc.) at Microsoft has historically been around 10 people in size, but there are 20 to 30 other developers in VB working on vital features such as Data, Project, and Deployment.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;Talked with a few attendees after the session&amp;nbsp;and asked what they thought about the new features in VB 2005. The favorite by far was Edit &amp;amp; Continue. I asked about Refactoring (prominently featured in C#) and the reception was lukewarm. My Japanese isn't good enough, so I couldn't figure out the reason why.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;I am surprised with how many women are attending TechEd, and I don't know whether it's &lt;st1:place w:st="on"&gt;&lt;st1:country-region w:st="on"&gt;Japan&lt;/st1:country-region&gt;&lt;/st1:place&gt; or a general industry trend (&lt;/font&gt;&lt;a href="http://www.theregister.co.uk/2004/08/13/eoc_study/"&gt;&lt;font face="Verdana" size="2"&gt;maybe not&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;). We, society as a whole, need more women working in IT. The industry simply cannot grow and innovate if 50% of society's intelligence resources aren't significantly involved.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;More to follow tomorrow.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=226719" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="VB Language" scheme="http://blogs.msdn.com/cambecc/archive/tags/VB+Language/default.aspx" /><category term="Japan" scheme="http://blogs.msdn.com/cambecc/archive/tags/Japan/default.aspx" /></entry><entry><title>Tech･Ed 2004 Yokohama</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/09/05/225769.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/09/05/225769.aspx</id><published>2004-09-05T22:41:00Z</published><updated>2004-09-05T22:41:00Z</updated><content type="html">&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="2"&gt;This week I will be attending &lt;/font&gt;&lt;a href="http://www.microsoft.com/japan/teched/"&gt;&lt;font face="Verdana" size="2"&gt;TechEd 2004 Yokohama&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;. The event runs from Tuesday, Sept. 7th, but I'll be heading out on Wednesday in time to attend the VB and C# sessions. Not sure exactly what to expect since everything will be in Japanese (I still feel like an absolute beginner despite my efforts to learn the language over the past five months), but I'm looking forward to it. If you're attending too, drop me a note. Hope to see you there!&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=225769" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="Japan" scheme="http://blogs.msdn.com/cambecc/archive/tags/Japan/default.aspx" /></entry><entry><title>Sumo</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/07/12/180534.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/07/12/180534.aspx</id><published>2004-07-13T04:27:00Z</published><updated>2004-07-13T04:27:00Z</updated><content type="html">&lt;P&gt;&lt;FONT face=Verdana size=2&gt;A week ago three classmates and I went to the Nagoya &lt;/FONT&gt;&lt;A href="http://www.sumo.or.jp/"&gt;&lt;FONT face=Verdana size=2&gt;Sumo&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; tournament and the experience was simply amazing. For those of you who think Sumo wrestling is a bunch of obese half-naked men pushing each other around, well... you're right. But that's about as useful a definition as "a lot of men on bikes" for the Tour de France or "hitting a ball with a stick and running around" for the World Series. Sumo is so much more than this simplistic definition. Quoting from the booklet handed out during the tournament (published by &lt;/FONT&gt;&lt;A href="http://www.sumo.or.jp/"&gt;&lt;FONT face=Verdana size=2&gt;Nihon-Sumo-Kyokai&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;, Japan Sumo Association): "According to Japanese legend the very origin of [the Japanese people] depended on the outcome of a sumo match. ...Apart from legend, however, sumo is an ancient sport dating back some 1500 years. ...The first sumo matches were a form of ritual dedicated to the gods.... Later in the hands of the samurai, jujitsu was developed as an offshoot of sumo." In other words, this is a sport steeped in history, tradition and ritual, and should not be confused for &lt;/FONT&gt;&lt;A href="http://www.wwe.com/"&gt;&lt;FONT face=Verdana size=2&gt;other forms&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; of wrestling.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;A Sumo tournament (there are 6 held yearly) lasts 15 days. Since we attended the second day of matches, tickets were easier to find. We would have liked to attend the final day, when winners are determined, but tickets had sold out quickly. I believe matches start at 9 am but we showed up at 10 am and found a mostly empty hall, perhaps 12 other spectators. This suited us just fine because we could watch the lower-ranked rikishi, or wrestlers, compete. (Higher-ranking bouts occur at the end of the day). Since there are no weight-limitations in sumo, we sometimes saw huge rikishi matched against astonishingly small opponents. It was awesome.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The day progressed and more spectators filtered in. At lunchtime they served &lt;/FONT&gt;&lt;A href="http://www.banzuke.com/chanko-nabe/"&gt;&lt;FONT face=Verdana size=2&gt;chanko&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; &lt;/FONT&gt;&lt;A href="http://metropolis.japantoday.com/tokyofooddrinksarchive349/302/tokyofooddrinksinc.htm"&gt;&lt;FONT face=Verdana size=2&gt;nabe&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;, a delicious throw-everything-into-a-pot-and-stir soup that rikishi eat to fatten up. As we headed down to grab lunch, we didn't realize we would soon be featured on Japanese national television.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;It turns out that this day was the first day that chanko nabe had ever been served at a Nagoya Sumo tournament. We didn't know this and so were quite surprised to find a throng of TV camera people and photographers documenting the entire chanko nabe purchase and ingestion affair. As I placed my 300 yen on the counter and waited for my bowl of caloried goodness, I couldn't help but feel somewhat sheepish as photographers snapped photo after photo...of me...waiting...for a bowl of soup. But it was very much worth it. The chanko nabe was simply excellent.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;As we ate, we were approached by a reporter from &lt;/FONT&gt;&lt;A href="http://www.nhk.or.jp/"&gt;&lt;FONT face=Verdana size=2&gt;NHK&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; (the Japanese equivalent of NBC/CBS/ABC/PBS rolled into one). She asked us what we thought about the soup and we all said "oishii" (delicious) and meant it.&amp;nbsp; One of us got adventurous and *gasp* &lt;I&gt;actually used a grammatical construction&lt;/I&gt;: "futoku narimasu" which my friend wishes meant "Superb; the konyaku nicely accents the chicken" but instead means "I will become fat", and requires conjugation of the adjective "fat" combined with the polite form of the verb "to become".&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;(Let me go out on a limb and make a huge, broad, sweeping generalization and say that Japanese people, no &lt;I&gt;Asian cultures&lt;/I&gt;, adore food. After sampling first hand the culinary delights to be found over here, I desperately wish the United States had a similar passion. Alas, we have only &lt;/FONT&gt;&lt;A href="http://www.foodtv.com/"&gt;&lt;FONT face=Verdana size=2&gt;The Food Network&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;.&amp;nbsp;In Japan, &lt;I&gt;every &lt;/I&gt;broadcast channel is kinda like The Food Network, except in Japanese and features more fish.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Later that night our pictures and actual spoken words were featured on NHK news and shown again two days later (but that time featuring only my friend exclaiming "I will become fat").&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;As the tournament drew to a climax, the arena filled up further but not as much as we expected. We got to see Asashoryu (the top rikishi) beat Kokkai. There was much rejoicing. My Taiwanese friend kept saying "he's strong" and "I like Asashoryu", which gives you a rough idea of where we are, grammatically, among friends outside of class.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;After the tournament ended at 6 PM, we headed out to eat &lt;/FONT&gt;&lt;A href="http://www3.starcat.ne.jp/~kikuko/english/misokatsu.html"&gt;&lt;FONT face=Verdana size=2&gt;miso katsu&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; and again there was much rejoicing.&amp;nbsp;And for a &lt;I&gt;very&lt;/I&gt; brief instant I thought to myself, if I eat enough I too could become a Sumo wrestler.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=180534" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="Japan" scheme="http://blogs.msdn.com/cambecc/archive/tags/Japan/default.aspx" /></entry><entry><title>Tokyo Trip Report: the Java-in-Japan question</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/07/06/173253.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/07/06/173253.aspx</id><published>2004-07-06T08:07:00Z</published><updated>2004-07-06T08:07:00Z</updated><content type="html">&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana"&gt;Had a great time in Tokyo last week. Used &lt;A href="http://www.freespot.net/"&gt;Freespot&lt;/A&gt; to find some places with free wireless access, among them &lt;A href="http://www.kadoya-hotel.co.jp/la_voie/lavoie.html"&gt;Cafe la Voie&lt;/A&gt; and &lt;A href="http://www.metro-net.co.jp/"&gt;Mixing Cafe&lt;/A&gt;. Also went to a meeting of the &lt;A href="http://www.tokyopc.org/"&gt;Tokyo PC Users Group&lt;/A&gt; where I heard an enjoyable presentation on the application of the electromagnetic spectrum to weapons technology. Spent some time in &lt;A href="http://www.roppongihills.com/"&gt;Roppongi Hills&lt;/A&gt;, which is just absolutely amazing in its vision, style, and labyrinthine layout. (And convinced me once again that wealth knows no boundary). Finally, I had a great talk with Yuki Ito (official Nice Person in my book) about user groups, Visual Basic, Java, and a&amp;nbsp;slew of&amp;nbsp;other topics. Why is it that Java is so popular in Japan? I like to gauge a technology's popularity by the number of books for sale. While browsing the stacks at &lt;A href="http://bookweb.kinokuniya.co.jp/"&gt;Kinokuniya&lt;/A&gt; (a book store), I noticed one shelf of books for .Net, one for VB, two for C/C++, and &lt;I&gt;six&lt;/I&gt; for Java. Perhaps more telling, the aisle was full of people &lt;I&gt;reading&lt;/I&gt; the Java books.&amp;nbsp;Talking with Yuki, it seems .Net usage is growing&amp;nbsp;extremely quickly, but no doubt it has a lot of catching up to do (since .Net is still "new" in Japan). What happened?&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=173253" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="Japan" scheme="http://blogs.msdn.com/cambecc/archive/tags/Japan/default.aspx" /><category term="General" scheme="http://blogs.msdn.com/cambecc/archive/tags/General/default.aspx" /></entry><entry><title>An Abstract Specification for Visual Basic Late Binding</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/06/27/166868.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/06/27/166868.aspx</id><published>2004-06-27T09:28:00Z</published><updated>2004-06-27T09:28:00Z</updated><content type="html">An Abstract Specification for Visual Basic Late Binding...(&lt;a href="http://blogs.msdn.com/cambecc/archive/2004/06/27/166868.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=166868" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="VB Language" scheme="http://blogs.msdn.com/cambecc/archive/tags/VB+Language/default.aspx" /></entry><entry><title>Tokyo</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/06/22/162269.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/06/22/162269.aspx</id><published>2004-06-23T04:36:00Z</published><updated>2004-06-23T04:36:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: Verdana"&gt;After three grueling months of Japanese language study, I'm ready for a break. Thankfully, summer vacation is coming! All next week I will relax in the quiet and peaceful expanse called Tokyo. But what to do? Cool caf&amp;#233;s, restaurants, shops... any suggestions? I want to skip the major tourist attractions. Perhaps there is a .Net user's group that meets around then (which the &lt;A href="http://vbug.jp/"&gt;Visual Basic Users Group Japan&lt;/A&gt; seems to, but I don't know enough Japanese to tell where).&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=162269" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="Japan" scheme="http://blogs.msdn.com/cambecc/archive/tags/Japan/default.aspx" /></entry><entry><title>The Anatomy of a Late Bound Expression</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/cambecc/archive/2004/06/01/145309.aspx" /><id>http://blogs.msdn.com/cambecc/archive/2004/06/01/145309.aspx</id><published>2004-06-02T02:43:00Z</published><updated>2004-06-02T02:43:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;When I first arrived at Microsoft to work on the Visual Basic team, I had no idea what Late Binding was. My manager at the time explained it to me: "Late Binding is all about figuring out which methods to call &lt;I&gt;while the program runs&lt;/I&gt;. It's complicated. You're going to work on something else." This spawned more questions. How is it done? What happens behind the scenes? What's involved? For awhile, Late Binding remained a black box to me, but eventually I learned the answers to these questions.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The process of figuring out what methods to call and fields to use is called "member lookup and resolution", or "binding". Most of the time, the compiler binds method calls &lt;I&gt;during compilation&lt;/I&gt;, a process we call Early Binding (well, some of us do). However, if your program uses types that aren't known during compilation, binding is deferred and instead performed &lt;I&gt;while the program runs&lt;/I&gt;. This process is called Late Binding and is best described with an example:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Class&lt;/SPAN&gt; Queen&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt; Move(&lt;SPAN style="COLOR: blue"&gt;ByRef&lt;/SPAN&gt; x &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; y &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt; Replay(&lt;SPAN style="COLOR: blue"&gt;ByRef&lt;/SPAN&gt; x &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; y &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Date&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; z &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Integer&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Class&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Class&lt;/SPAN&gt; Knight&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt; ResetPosition()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Class&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt; Main()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; a &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String &lt;/SPAN&gt;= ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; b &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Integer&lt;/SPAN&gt; = ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; x &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Queen &lt;/SPAN&gt;= ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; o &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt; = ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x.Move(a, b)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.Move(a, b)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The expression &lt;B&gt;x.Move(a, b)&lt;/B&gt; is a call to the method &lt;B&gt;Move&lt;/B&gt; defined on &lt;B&gt;Queen&lt;/B&gt; (determined from the type of variable &lt;B&gt;x&lt;/B&gt;). The compiler, via the process of Early Binding, figures out that the text "Move" refers to method &lt;B&gt;Move&lt;/B&gt; on type &lt;B&gt;Queen&lt;/B&gt;, taking two &lt;B&gt;String&lt;/B&gt; parameters. The compiler successfully analyzes this statement (i.e., binds the call) and moves to the next line.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The expression &lt;B&gt;o.Move(a,b)&lt;/B&gt; is also a call to method &lt;B&gt;Move&lt;/B&gt;, but on which type? The variable &lt;B&gt;o&lt;/B&gt; is &lt;B&gt;Object&lt;/B&gt; and can hold anything depending on the program's run-time behavior. Sometimes it might hold instances of &lt;B&gt;Queen&lt;/B&gt; objects; sometimes &lt;B&gt;Knight&lt;/B&gt; objects (or anything else for that matter). This is where Late Binding comes into action.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The compiler always tries Early Binding first. &lt;B&gt;Move&lt;/B&gt; isn't a member of &lt;B&gt;System.Object&lt;/B&gt;, so Early Binding fails. Normally, compilation stops here and a compile error results. However, because &lt;B&gt;o&lt;/B&gt; is &lt;B&gt;Object&lt;/B&gt;, because it can hold anything, the compiler defers binding and turns this expression into a Late Bound expression. The deferral is made by changing &lt;B&gt;o.Move(a, b)&lt;/B&gt; into a helper function call. This helper function, which lives in the Late Binder (which itself is found in Microsoft.VisualBasic.dll), looks something like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt; LateCall( _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; Instance &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; MethodName &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; Arguments() &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; ArgumentNames() &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; CopyBack() &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Boolean&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;'implementation&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The corresponding VB code generated for &lt;B&gt;o.Move(a, b)&lt;/B&gt; looks something like:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _args &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;() = {a, b}&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: green"&gt;'temporary variable&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _copyback &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Boolean&lt;/SPAN&gt;() = {&lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;}&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;'temporary variable&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.CompilerServices.LateCall(o, "Move", _args, &lt;SPAN style="COLOR: blue"&gt;Nothing&lt;/SPAN&gt;, _copyback)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The method we're trying to call is &lt;B&gt;Move&lt;/B&gt;. At compilation time we know only its name, so the &lt;I&gt;MethodName&lt;/I&gt; parameter is the string "Move". The &lt;I&gt;Instance&lt;/I&gt; parameter is &lt;B&gt;o&lt;/B&gt;, the object on which we want to invoke &lt;B&gt;Move&lt;/B&gt;. And the call has two arguments, &lt;B&gt;a&lt;/B&gt; and &lt;B&gt;b&lt;/B&gt;, so the compiler packages them into an array and passes them to the &lt;I&gt;Arguments&lt;/I&gt; parameter. (For now, we will skip discussion of the &lt;I&gt;ArgumentNames&lt;/I&gt; and &lt;I&gt;CopyBack&lt;/I&gt; parameters.)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;When the program runs and the line &lt;B&gt;o.Move(a, b)&lt;/B&gt; is reached, the call into the Late Binder is made. Because the object sitting in &lt;B&gt;o&lt;/B&gt; has a definite type, the Late Binder has all the information it needs to bind the call to &lt;B&gt;Move&lt;/B&gt;. It performs the full member lookup and resolution process, a process which in many ways is analogous to the Early Binding done by the VB compiler. For example, &lt;B&gt;o&lt;/B&gt; might be an object of type &lt;B&gt;Queen&lt;/B&gt;, so the Late Binder figures out that the string "Move" refers to method &lt;B&gt;Move&lt;/B&gt; on type &lt;B&gt;Queen&lt;/B&gt;, taking two &lt;B&gt;String&lt;/B&gt; parameters. Success! The method &lt;B&gt;Queen.Move&lt;/B&gt; is invoked and the program continues running. However, &lt;B&gt;o&lt;/B&gt; might be an object of type &lt;B&gt;Knight&lt;/B&gt;. &lt;B&gt;Knight&lt;/B&gt; has no method &lt;B&gt;Move&lt;/B&gt;, so in this case, member lookup and resolution fails and the Late Binder throws a &lt;B&gt;MissingMemberException&lt;/B&gt;. This is the equivalent of getting the compile error "'Move' is not a member of 'Knight'" were the variable &lt;B&gt;o&lt;/B&gt; typed as &lt;B&gt;Knight&lt;/B&gt; instead of &lt;B&gt;Object&lt;/B&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Now for some details that my manager, back in the day, was eluding to: &lt;B&gt;ByRef&lt;/B&gt; parameters cause trouble. Because a Late Bound expression such as &lt;B&gt;Move&lt;/B&gt; is working with &lt;I&gt;copies&lt;/I&gt; of &lt;B&gt;a&lt;/B&gt; and &lt;B&gt;b&lt;/B&gt; (remember the &lt;I&gt;Arguments&lt;/I&gt; parameter), we have to take special care to copy the values back out if any match a &lt;B&gt;ByRef&lt;/B&gt; parameter. This is done by using the &lt;I&gt;CopyBack&lt;/I&gt; parameter and some conditional statements. The &lt;I&gt;CopyBack&lt;/I&gt; parameter is used by the Late Binder to communicate back to the call site which arguments ended up matching &lt;B&gt;ByRef&lt;/B&gt; parameters. After the call to &lt;B&gt;LateCall&lt;/B&gt; is completed, the &lt;B&gt;Boolean&lt;/B&gt; values stored in the &lt;I&gt;CopyBack&lt;/I&gt; parameter are checked and, if &lt;B&gt;True&lt;/B&gt;, the values are copied-out. This means that along with the helper call, a Late Bound expression also consists of several &lt;B&gt;If..Then&lt;/B&gt; statements that check the &lt;I&gt;CopyBack&lt;/I&gt; parameter:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _args &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;() = {a, b}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;'temporary variable&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _copyback &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Boolean&lt;/SPAN&gt;() = {&lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;}&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;'temporary variable&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.CompilerServices.LateCall(o, "Move", _args, &lt;SPAN style="COLOR: blue"&gt;Nothing&lt;/SPAN&gt;, _copyback)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt; _copyback(0) &lt;SPAN style="COLOR: blue"&gt;Then&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = _args(0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt; _copyback(1) &lt;SPAN style="COLOR: blue"&gt;Then&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = _args(0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Each &lt;B&gt;True&lt;/B&gt; value in the &lt;I&gt;CopyBack&lt;/I&gt; array means that the corresponding argument in the &lt;I&gt;Arguments&lt;/I&gt; array matched a &lt;B&gt;ByRef&lt;/B&gt; parameter and potentially changed during the call invocation. For example, since the zeroth parameter of &lt;B&gt;Queen.Move&lt;/B&gt; is &lt;B&gt;ByRef&lt;/B&gt;, the zeroth value in &lt;I&gt;CopyBack&lt;/I&gt; will be set to &lt;B&gt;True&lt;/B&gt; by the Late Binder, thus causing &lt;B&gt;a&lt;/B&gt; to be assigned the new value.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;But why initialize the &lt;I&gt;CopyBack&lt;/I&gt; array with &lt;B&gt;True&lt;/B&gt; values? Because there's no point checking and copying back values when the original argument isn't a storage location. To communicate this information to the Late Binder, the compiler initializes the &lt;I&gt;CopyBack&lt;/I&gt; array with &lt;B&gt;True&lt;/B&gt; values for each argument that comes from a variable, field, array, etc. If the argument isn't a storage location, such as a constant, function, ReadOnly property, etc., the compiler will specify &lt;B&gt;False&lt;/B&gt; and omit the &lt;B&gt;If..Then&lt;/B&gt; check corresponding to that argument:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.Move(10, b)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;becomes:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _args &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;() = {10, b}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _copyback &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Boolean&lt;/SPAN&gt;() = {&lt;SPAN style="COLOR: blue"&gt;False&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.CompilerServices.LateCall(o, "Move", _args, &lt;SPAN style="COLOR: blue"&gt;Nothing&lt;/SPAN&gt;, _copyback)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt; _copyback(1) &lt;SPAN style="COLOR: blue"&gt;Then&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = _args(0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;There are even more compliations to consider when named arguments have been specified by the user. For example:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.Replay(GetA(), z:=TimeOfDay(), y:=GetB())&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Because named arguments affect binding, the Late Binder needs to know which names were specified and for which arguments. This information is communicated using the &lt;I&gt;ArgumentNames&lt;/I&gt; string array. For example, the &lt;I&gt;ArgumentNames&lt;/I&gt; array for the expression above would be &lt;B&gt;{"z", "y"}&lt;/B&gt;. VB rule: once a named argument is specified in the argument list, all subsequent arguments must be named. Naturally, this requirement would force all argument values into the &lt;I&gt;end&lt;/I&gt; of the &lt;I&gt;Arguments&lt;/I&gt; array. However, for simplicity, we would like the same index into the &lt;I&gt;Arguments&lt;/I&gt; array and &lt;I&gt;ArgumentNames&lt;/I&gt; array to refer to matched value-name pairs. This means the compiler must rearrange the argument values into the &lt;I&gt;beginning&lt;/I&gt; of the &lt;I&gt;Arguments&lt;/I&gt; array, which would look like &lt;B&gt;{TimeOfDay(), GetB(), GetA()}&lt;/B&gt;. Yet this tweak contains a hidden complication: order of evaluation. The evaluation of the argument list should occur lexically, left-to-right, where &lt;B&gt;GetA&lt;/B&gt; is invoked before &lt;B&gt;TimeOfDay&lt;/B&gt; which is itself invoked before &lt;B&gt;GetB&lt;/B&gt;. If the &lt;I&gt;Arguments&lt;/I&gt; array were initialized starting from the zeroth index, &lt;B&gt;TimeOfDay&lt;/B&gt; and &lt;B&gt;GetB&lt;/B&gt; would be invoked before &lt;B&gt;GetA&lt;/B&gt;! This could cause serious trouble if these functions had side effects. By initializing the &lt;I&gt;Arguments&lt;/I&gt; array in lexical order, the order of evaluation is preserved:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _args &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;() = &lt;SPAN style="COLOR: blue"&gt;New&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;(2) {}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _args(2) = GetA()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _args(0) = TimeOfDay()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _args(1) = GetB()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _argnames &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;() = {"z", "y"}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; _copyback &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Boolean&lt;/SPAN&gt;() = {&lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;False&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;False&lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.VisualBasic.CompilerServices.LateCall(o, "Replay", _args, _argnames, _copyback)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt; _copyback(0) &lt;SPAN style="COLOR: blue"&gt;Then&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOfDay() = _args(0)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;(note that &lt;B&gt;TimeOfDay&lt;/B&gt; is a read/write property and can be changed if it matches a &lt;B&gt;ByRef&lt;/B&gt; parameter, thus the value &lt;B&gt;True&lt;/B&gt; in the &lt;I&gt;CopyBack&lt;/I&gt; array).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;So far, I have discussed the simplest Late Binding scenario. Matters complicate yet further in other scenarios, where the call &lt;B&gt;o.Move&lt;/B&gt; occurs on either side of an assignment:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.Move(a, b) = c&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;In scenarios such as these, &lt;B&gt;c&lt;/B&gt; must be packaged as another parameter and the whole expression evaluated as a possible &lt;B&gt;Property&lt;/B&gt; or &lt;B&gt;Field&lt;/B&gt; assignment (with a potential intermediate &lt;B&gt;Default Property&lt;/B&gt; access). In fact, each of the following forms represents a unique Late Binding scenario:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.Move(a, b)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o.Move(a, b) = c&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = o.Move(a, b)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; o(a, b) = c&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = o(a, b)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Only the first statement corresponds to the &lt;B&gt;LateCall&lt;/B&gt; helper we've been analyzing. The other scenarios each have their own helper with various additional arguments to control the unique semantic differences that arise.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;I want to briefly describe what the &lt;B&gt;LateCall&lt;/B&gt; helper actually does. The following is a &lt;I&gt;very&lt;/I&gt; rough implementation and demonstrates how the VB Late Binder interacts with System.Reflection:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt; LateCall( _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; Instance &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; MethodName &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; Arguments() &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Object&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; ArgumentNames() &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;String&lt;/SPAN&gt;, _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;ByVal&lt;/SPAN&gt; CopyBack() &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Boolean&lt;/SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; T &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; Type = Instance.GetType&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; Members &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; Reflection.MemberInfo() = T.GetMember(MethodName)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; Result &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; Reflection.MemberInfo = _&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PerformMemberResolution(Members, Arguments, ArgumentNames)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Select&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Case&lt;/SPAN&gt; Result.MemberType&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Case&lt;/SPAN&gt; MemberTypes.Method&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; MethodResult &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; MethodInfo = &lt;SPAN style="COLOR: blue"&gt;DirectCast&lt;/SPAN&gt;(Result, MethodInfo)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MethodResult.Invoke(Instance, Arguments)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;For&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Each&lt;/SPAN&gt; P &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; ParameterInfo &lt;SPAN style="COLOR: blue"&gt;In&lt;/SPAN&gt; MethodResult.GetParameters&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt; P.ParameterType.IsByRef &lt;SPAN style="COLOR: blue"&gt;Then&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CopyBack(index_of_P) = &lt;SPAN style="COLOR: blue"&gt;True&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;If&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Next&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;Case&lt;/SPAN&gt; ...&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Select&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;First, Reflection is used to fetch all the members matching &lt;I&gt;MethodName&lt;/I&gt; into an array. This array, along with &lt;I&gt;Arguments&lt;/I&gt; and &lt;I&gt;ArgumentNames&lt;/I&gt;, is passed to a function &lt;B&gt;PerformMemberResolution&lt;/B&gt;. This function is responsible for implementing all of Visual Basic's binding semantics, including name shadowing, method overload resolution, named argument matching, and various other checks. However, selecting the method is only half the work. Once a selection is made, the member must be invoked. In the case of methods, this is done via the &lt;B&gt;Reflection.MethodInfo.Invoke&lt;/B&gt; member. Once execution of the method is complete, the &lt;I&gt;CopyBack&lt;/I&gt; array is populated with the correct values and the Late Bound expression is complete.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;I should have listened to my manager. :)&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=145309" width="1" height="1"&gt;</content><author><name>cambecc</name><uri>http://blogs.msdn.com/members/cambecc.aspx</uri></author><category term="VB Language" scheme="http://blogs.msdn.com/cambecc/archive/tags/VB+Language/default.aspx" /></entry></feed>