<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
>

<channel rdf:about="http://tabletumlnews.powerblogs.com/">
<title>Tablet UML News</title>
<link>http://tabletumlnews.powerblogs.com/</link>
<description>News and commentary from Martin L. Shoemaker, author of Tablet UML</description>
<dc:language>en-us</dc:language>
<dc:date>2007-04-10T14:04+00:00</dc:date>
<items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1122474050.shtml" />
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1172441246.shtml" />
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1172065571.shtml" />
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1165675951.shtml" />
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1165101023.shtml" />
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1150926934.shtml" />
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1130309682.shtml" />
  <rdf:li rdf:resource="http://tabletumlnews.powerblogs.com/posts/1129370355.shtml" />
 </rdf:Seq>
</items>
</channel>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1122474050.shtml">
<title>My speaking and other travel schedule (Revised April 10, 2007)</title>
<link>http://tabletumlnews.powerblogs.com/posts/1122474050.shtml</link>
<description>UPDATE: To make it easier to find this entry, I've added a link to it in the right sidebar, right under the links for my books and my classes....</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2007-04-10T14:04+00:00</dc:date>
<content:encoded><![CDATA[UPDATE: To make it easier to find this entry, I've added a link to it in the right sidebar, right under the links for my books and my classes.<br />
<br />
<a href="http://www.grdotnet.org">West Michigan .NET User Group</a> in Grand Rapids MI. April 17. Topic: Dee Jay: A Voice-Controlled Juke Box for Windows Vista.<br />
<br />
<a href="http://www.dayofdotnet.org/Sessions.aspx">Ann Arbor Day of .NET</a> in Ann Arbor MI. May 5. Topic: Talking with Vista.<br />
<br />
<a href="http://www.grdotnet.org/DODN07/Sessions.aspx">West Michigan Day of .NET</a> in Grand Rapids MI. May 5. Topics: Do, Undo, Redo, Do Over: A Generics Command Pattern Implementation; Talking with Vista.<br />
<br />
<a href="http://huntug.org/DesktopDefault.aspx">Huntsville New Technology User Group</a> in Huntsville AL. September 11. Topic: Dee Jay: A Voice-Controlled Juke Box for Windows Vista.<br />
]]></content:encoded>
</item>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1172441246.shtml">
<title>Generically speaking II</title>
<link>http://tabletumlnews.powerblogs.com/posts/1172441246.shtml</link>
<description>The slides and code samples for my generic talks are now up at the GANG site....</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2007-02-25T22:02+00:00</dc:date>
<content:encoded><![CDATA[The slides and code samples for <a href="http://tabletumlnews.powerblogs.com/posts/1172065571.shtml">my generic talks</a> are now up at <a href="http://www.migang.org/Default.aspx?tabid=22">the GANG site</a>.<br />
<br />
You can also find them here:<br />
<br />
<a href="http://www.tabletuml.com/Generics.aspx">Everything You Never Wanted to Know About .NET Generics (But Were Afraid Someone Would Ask)</a><br />
<br />
<a href="http://www.tabletuml.com/DoUndoRedo.aspx">Do, Undo, Redo, Do Over: A Generics Command Pattern Implementation</a>]]></content:encoded>
</item>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1172065571.shtml">
<title>Generically speaking</title>
<link>http://tabletumlnews.powerblogs.com/posts/1172065571.shtml</link>
<description>...</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2007-02-21T13:02+00:00</dc:date>
<content:encoded><![CDATA[I'll be speaking on a .NET generic implementation of Undo, Redo, Scripting, and Logging at <a href="http://www.migang.org/Default.aspx?tabid=22">GANG tonight</a>.]]></content:encoded>
</item>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1165675951.shtml">
<title>Reply hazy, try again</title>
<link>http://tabletumlnews.powerblogs.com/posts/1165675951.shtml</link>
<description>...</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2006-12-09T14:12+00:00</dc:date>
<content:encoded><![CDATA[<a href="http://tabletumlnews.powerblogs.com/posts/1165101023.shtml">Still exploring.</a> Updates soon, I hope.]]></content:encoded>
</item>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1165101023.shtml">
<title>Help me help someone</title>
<link>http://tabletumlnews.powerblogs.com/posts/1165101023.shtml</link>
<description>As some of you may know, I have been named an MVP for Visual Development (C#) by Microsoft. The MVP program is an effort by Microsoft to recognize people in...</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2006-12-02T23:12+00:00</dc:date>
<content:encoded><![CDATA[As some of you may know, I have been named an MVP for Visual Development (C#) by Microsoft. <a href="https://mvp.support.microsoft.com/default.aspx?wa=wsignin1.0">The MVP program</a> is an effort by Microsoft to recognize people in the community who help other people to learn and use Microsoft's technologies. They give us advance information and other perks because they know we're enthusiastic supporters of their products. They hope that their supporting us will help us to build the community of satisfied Microsoft users.<br />
<br />
As part of that growth effort, early this year they sent us each three coupons for MSDN Premium Subscriptions, with the instruction that we were to use them to help the community. They gave us no rules or guidelines beyond that. <a href="http://msdn2.microsoft.com/en-us/subscriptions/default.aspx">MSDN Premium</a> is a developer suite consisting of pretty much every development tool Microsoft has, plus developer licenses for Office, SQL Server, and every operating system Microsoft publishes. There's lots of other stuff as well. It's everything a developer needs to develop for the MS platforms.<br />
<br />
I'm trying to take seriously the commission to use these coupons for the good of the community. I gave my first coupon to a friend of a friend who was out of work, and who wanted to upgrade his skill set. I figured that was a good cause. I gave my second coupon to <a href="http://grdotnet.org/">the West Michigan .NET User Group</a> where I was speaking, so that they could offer it as a door prize to help promote the group. Good .NET groups are a great way to spread .NET programming knowledge.<br />
<br />
But I'm still trying to find a home for the final MSDN Premium Subscription before year end; and I <i>really</i> want to make this one count. I would like it to go to a good cause; but I'm not sure what that cause should be, so I'm asking for your help. Maybe you know a way I can use this to help a good cause. Maybe you know a good charity that could use it, or maybe a really deserving person who could use it to get into a development job. When I give this one away, I want to feel like Microsoft and I made a difference in some way.<br />
<br />
So if you have a suggestion for a way to put this coupon to good use, please let me know. Either leave a comment, or send an email to MSDN*at*TabletUML*dot*com (address obscured to cut down on spam &mdash; you can figure it out). I'll take all suggestions from now until next Friday. Then I'll review them, decide which looks like the best (as judged by me and some trusted friends), and announce the results in the following week.<br />
<br />
A lot of people would like this for the free stuff. I understand that. If you're going to suggest I give it to you, I won't ask you not to; but please consider if you're doing so for the free stuff, or because you really have a need for it. I'll listen to your justification; but the coupon will go where I think it will do the most good.<br />
<br />
I really hope you can help me here. Thanks!]]></content:encoded>
</item>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1150926934.shtml">
<title>Lessons in porting</title>
<link>http://tabletumlnews.powerblogs.com/posts/1150926934.shtml</link>
<description>At a client's request, I've been porting my Tablet PC labs to VB.NET. In the process, I've learned some lessons that might be helpful to others who have to make...</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2006-06-22T01:06+00:00</dc:date>
<content:encoded><![CDATA[At a client's request, I've been porting <a href="http://www.richardhaleshawgroup.com/RHSGroup/DesktopDefault.aspx?tabindex=6&tabid=61">my Tablet PC labs</a> to VB.NET. In the process, I've learned some lessons that might be helpful to others who have to make this sort of a port. This is strictly programmer geek stuff, so I'm hiding it. The rest of you may prefer to <a href="http://mfrost.typepad.com/cute_overload/2006/06/is_there_room_e.html">look at the cute baby llama</a>.<br />
<br />
<div class="trigger" id="sheoq7lab3.6b"><a href="#" onClick="document.getElementById('heoq7lab3.6b').style.display = 'block'; document.getElementById('sheoq7lab3.6b').style.display = 'none'; return false;">I'm ready for programmer geek stuff...</a></div><br />
<div class="hidden" style="display: none;" id="heoq7lab3.6b"><br />
<br />
<b>Note:</b> In no way is this intended as a slam against VB.NET. Anything I can do with C#, I can do with VB.NET, and vice versa. It's simply a pair of lessons to keep in mind if you work in both languages.<br />
<br />
But before the lessons, let me briefly describe the porting process, since either of these lessons might not have been learned if I had written the VB.NET code from scratch. I started with 200 pages of C# labs (yes, folks, <a href="http://www.richardhaleshawgroup.com/RHSGroup/DesktopDefault.aspx?tabindex=6&tabid=61">our Tablet PC class</a> is that intensive, and more). Then I built a VB.NET project, recreated the UI elements by hand, pasted in the C# code, and edited the code until it was syntactically correct for VB.NET. And except for these two lessons, it seems to have worked well.<br />
<br />
<b>Lesson 1: Divide <> Divide</b><br />
<br />
I had a strange bug in the VB.NET version of the labs. In C#, I could scroll the document to the end of the page. In VB.NET, I would get an exception after the scroll passed the half-way point. Digging into the debugger, I found that my scroll bar ranged from 0 to 99; but I was trying to set the scroll bar value to 101. Further investigation led me to discover differences in the behavior of division in the two languages.<br />
<br />
Let's look at some C# code first:<br />
<br />
<blockquote><br />
static void Main(string[] args)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;object result = 51 / 100;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(result.GetType().Name +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" - " + result.ToString());<br />
}<br />
</blockquote><br />
<br />
This code divides two integers and stores the result in an <b>object</b>, the .NET base type that all other types derive from. That means that any value can be stores as an object. The code then displays the real type of the object, as well as a string representation of the value of the object. And here's the result:<br />
<br />
<blockquote><br />
Int32 - 0<br />
</blockquote><br />
<br />
Now here's what <i>seems</i> like the same VB.NET code. This is exactly what I get by following my copy-and-make-it-compile porting strategy:<br />
<br />
<blockquote><br />
Sub Main()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim result As Object = 51 / 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(result.GetType().Name + _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" - " + result.ToString())<br />
<br />
End Sub<br />
</blockquote><br />
<br />
And here's the result:<br />
<br />
<blockquote><br />
Double - 0.51<br />
</blockquote><br />
<br />
This is probably not news to any VB or VB.NET or even just Basic programmers out there; but it's important for porting programmers to keep in mind:<br />
<br />
<b>In Basic, any numeric divisor or dividend is converted to a Double (i.e., a double-precision floating point value) before the division, and the resulting quotient is a Double.</b><br />
<br />
Anyone who knows VB.NET will see the obvious error in my port: I should have used the special integer division operator, \:<br />
<br />
<blockquote><br />
Sub Main()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim result As Object = 51 \ 100<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(result.GetType().Name + _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" - " + result.ToString())<br />
<br />
End Sub<br />
</blockquote><br />
<br />
And here's the result:<br />
<br />
<blockquote><br />
Int32 - 0<br />
</blockquote><br />
<br />
The results are exactly the same as we saw with the original C# code.<br />
<br />
The problem with this lesson is that it completely undermines my copy-and-make-it-compile porting strategy: the copied division symbol <i>compiles</i>, but it doesn't yield the same results.<br />
<br />
And it gets slightly more complicated yet. Let's modify that C# code:<br />
<br />
<blockquote><br />
static void Main(string[] args)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;object result = (int)(51.0f / 100.0f);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(result.GetType().Name +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" - " + result.ToString());<br />
}<br />
</blockquote><br />
<br />
Here, I <i>know</i> I'm dividing floating point values; but then I cast back to an int. And here's the result:<br />
<br />
<blockquote><br />
Int32 - 0<br />
</blockquote><br />
<br />
It's exactly the same as the original, because the final cast truncates the fractional portion.<br />
<br />
Now here's the "same" code, VB.NET style:<br />
<br />
<blockquote><br />
Sub Main()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim result As Object = CInt(51.0f / 100.0f)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(result.GetType().Name + _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" - " + result.ToString())<br />
<br />
End Sub<br />
</blockquote><br />
<br />
And here's the result:<br />
<br />
<blockquote><br />
Int32 - 1<br />
</blockquote><br />
<br />
The result is an integer, just like in C#; but instead of the remainder being truncated, it's rounded, either up or down. (And then, just to offend mathematical norms, a precise value of 0.5 will round <i>down</i>.)<br />
<br />
So I could see that the division results needed to be converted; but I didn't see that as they were converted, they were rounding.<br />
<br />
Keep in mind as you port: Divide != Divide.<br />
<br />
<b>Lesson 2: Name <> Name</b><br />
<br />
Inside a C# Form (i.e., inherited from System.Windows.Forms.Form), I wrote code that looked like this:<br />
<br />
<blockquote><br />
private void OpenDrawing()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (dlgOpen.ShowDialog(this) == DialogResult.OK)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenDrawing(dlgOpen.FileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</blockquote><br />
<br />
Ported to a VB.NET Form, the code looked like this:<br />
<br />
<blockquote><br />
Private Sub OpenDrawing()<br />
&nbsp;&nbsp;&nbsp;&nbsp;If (dlgOpen.ShowDialog(Me) = <b>DialogResult.OK</b>) Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenDrawing(dlgOpen.FileName)<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
End Sub<br />
</blockquote><br />
<br />
Both versions compiled. Both versions ran correctly. But when I compiled the VB.NET version, I got this warning on the highlighted code:<br />
<br />
<blockquote><br />
Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated.<br />
</blockquote><br />
<br />
After a little thought, I remembered that System.Windows.Forms.Form has a property of type DialogResult that is also <i>called</i> DialogResult <i>and</i> that the return type from ShowDialog is <i>also</i> of type DialogResult.<br />
<br />
Now you might question the wisdom of using the same name for a property and its type. Heck, I've done it a lot myself, but now <i>I'm</i> questioning the wisdom. Because it appears that VB.NET and C# have different rules for resolving that name: C# looks to the name first, while VB.NET looks to the property first. Now as it happens, VB.NET sees the property used as a qualifier to access a value within the type, sees the qualifier as superfluous, issues a warning, and just uses the type. So the end result is the same; but the VB.NET programmer gets a confusing or possible scary warning message.<br />
<br />
Now there's a very easy way to avoid that message: simply be explicit. Here's a modified version:<br />
<br />
<blockquote><br />
Private Sub OpenDrawing()<br />
&nbsp;&nbsp;&nbsp;&nbsp;If (dlgOpen.ShowDialog(Me) = <b>System.Windows.Forms.Form.DialogResult.OK</b>) Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenDrawing(dlgOpen.FileName)<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
End Sub<br />
</blockquote><br />
<br />
When you explicitly qualify the type, VB.NET won't be confused about what you mean, and the warning goes away.<br />
<br />
<div class="trigger"><a href="#" onClick="document.getElementById('sheoq7lab3.6b').style.display = 'block';document.getElementById('heoq7lab3.6b').style.display = 'none'; return false;">Too geeky for me! Make it go away!</a></div></div>]]></content:encoded>
</item>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1130309682.shtml">
<title>Notes from the Microsoft double secret training</title>
<link>http://tabletumlnews.powerblogs.com/posts/1130309682.shtml</link>
<description>There aren't any. I'm under NDA. So if I told you anything they told us here, I'd be in a pile of trouble....</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2005-10-26T06:10+00:00</dc:date>
<content:encoded><![CDATA[There aren't any. I'm under NDA. So if I told you anything they told us here, I'd be in a pile of trouble.<br />
<br />
Except, of course, for any information which is already publicly available: that I can bring to your attention. So I'll share some things with you, including links to where you can find the same information yourself.<br />
<br />
The subject of the training is Visual Studio Team System (VSTS), a grand, sweeping effort to unify the tools that a team uses to develop software. VSTS lets project managers, software architects, software developers, testers, and others all work on their individual tasks with their individual tools; and then it ties together the work products of those tasks into a common repository, with common reporting and workflows and rules. It also allows the team to define work items, assign them to individuals, and track their progress. VSTS is only available in beta right now, but is scheduled for release next month. You can learn more about VSTS <a href="http://www.vstsrocks.com">here</a>.<br />
<br />
VSTS builds upon Visual Studio 2005 (VS 2005), the latest version of Microsoft's popular developer tool suite; but it extends Visual Studio's capacities to support other team members besides developers. And in addition, it integrates with popular MS Office tools for project management, and it provides hooks for third parties to integrate into the VSTS environment.<br />
<br />
The basic structure of VSTS is shown in this image, taken from <a href="http://teamsystemrocks.com/Tutorials/VSTS%2DAscend%5FTraining/02%2DVSTS%2DAscend%5FTraining%2DModule01%5Ffiles/">this tutorial</a>:<br />
<br />
<a href="/files/tabletumlnews-VSTSOverview.jpg"><img src="/files/tabletumlnews-VSTSOverview-small.jpg" width="220" height="164"  alt="VSTS Structure"></a><br />
<br />
The left column shows the elements of VSTS for Software Architects:<br />
<br />
<ul><br />
<li><b>Application Designer.</b> This tool allows an architect to define the components that will be deployed as part of a project, as well as the connections between them. It also allows the architect to generate the source code shells for these components.</li><br />
<li><b>Logical Datacenter Designer.</b> This tool allows an architect to define the logical servers and server zones where the parts of a project will be deployed, as well as the connections between them.</li><br />
<li><b>Deployment Designer.</b> This tool allows an architect to assign components (from the Application Designer) to servers and server zones (from the Logical Datacenter Designer) and to validate that no component connections violate the datacenter design constraints.</li><br />
</ul><br />
<br />
The center column shows the elements of VSTS for Software Developers (in addition to the basic code development capabilities of VS 2005):<br />
<br />
<ul><br />
<li><b>Dynamic Code Analyzer.</b> This tool allows a developer to test the run-time behavior of a component, including whether it overruns its memory and how it manages resources such as handles and critical sections.</li><br />
<li><b>Static Code Analyzer.</b> This tool allows a developer to assess how well the source code for a component complies with coding standards and practices.</li><br />
<li><b>Code Profiler.</b> This tool allows a developer to determine how much time the program spends in particular areas, and is useful for identifying inefficient code and bottlenecks.</li><br />
</ul><br />
<br />
The right column shows the elements of VSTS for Testers:<br />
<br />
<ul><br />
<li><b>Load/Web Tester.</b> This tool allows a tester to assess how well the system performs under various system loads, such as a particular number of concurrent users.</li><br />
<li><b>Manual Testing.</b> This tool allows a tester to design and implement manual tests, while still having the results incorporated into the work item tracking and reporting systems (described below).</li><br />
<li><b>Test Case Management.</b> This tool allows a tester to define and manage test cases: sets of data to be used in various tests, as well as the expected and actual result sets.</li><br />
</ul><br />
<br />
Across the right two columns are the elements that are common to Developers and Testers:<br />
<br />
<ul><br />
<li><b>Unit Testing.</b> This tool allows low-level, pass-fail testing of the internal structure of the code.</li><br />
<li><b>Code Coverage.</b> This tool allows a tester or developer to identify parts of the code which haven't been exercised or tested yet (and where bugs may therefore be hiding).</li><br />
</ul><br />
<br />
<br />
And across all three columns are the elements that are common to all roles:<br />
<br />
<ul><br />
<li><b>Class Modeling.</b> This tool allows a user to define code classes and the relations between them. This is not UML, but I'll forgive them.</li><br />
<li><b>Visio and UML Modeling.</b> This tool allows UML modeling as a communications tool (but I can suggest <a href="http://www.TabletUML.com">a better one</a>).</li><br />
<li><b>Team Explorer.</b> This tool allows a user to explore the work items in the project.</li><br />
<li><b>Visual Studio Professional.</b> This is the VS 2005 shell that hosts the other tools.</li><br />
</ul><br />
<br />
All of these tools are built on top of the services in the Visual Studio Team Foundation:<br />
<br />
<ul><br />
<li><b>Build Manager.</b> This service supports automated project builds.</li><br />
<li><b>Change Management.</b> This service supports archives of old versions of source files and other artifacts. It replaces the much-loathed Visual SourceSafe.</li><br />
<li><b>Work Item Tracking.</b> This service supports creation of work items (i.e., tasks to be performed in your development process), as well as assigning work items to workers and tracking work item progress.</li><br />
<li><b>Reporting.</b> This service supports flexible queries and reports based on work items.</li><br />
<li><b>Project Site.</b> This service creates and maintains a Microsoft SharePoint Web site that lets Web users view the reports and other status of the work items in the project.</li><br />
<li><b>Integration Services.</b> This service allows third party components to integrate into the VSTS environment.</li><br />
<li><b>Project Management.</b> This service allows integration with MS Project and Excel.</li><br />
</ul><br />
<br />
Whew! That's a lot of power in there; and I haven't even begun to discuss the <i>real</i> power in VSTS: process templates! Look for those in my next installment.]]></content:encoded>
</item>

<item rdf:about="http://tabletumlnews.powerblogs.com/posts/1129370355.shtml">
<title>Seen around the tech blogs this week</title>
<link>http://tabletumlnews.powerblogs.com/posts/1129370355.shtml</link>
<description>Ever have a night when you really need to get up early, and yet things keep you up late, and finally it seems like the safest course is just to stay...</description>
<dc:creator>Martin L. Shoemaker</dc:creator>
<dc:date>2005-10-15T09:10+00:00</dc:date>
<content:encoded><![CDATA[Ever have a night when you <i>really</i> need to get up early, and yet things keep you up late, and finally it seems like the safest course is just to stay up? Or does that only happen to me? Either way, this is one of those nights. In five-and-a-half hours, my plane leaves Atlanta. I've been away from Sandy and the dogs and our home for four weeks. <b>I am going to be on that plane.</b> And I already learned this week that this hotel's wake-up calls are still pretty unreliable. And while the M200 has pretty good speakers and usually serves as my alarm clock, <a href="http://tabletumlnews.powerblogs.com/posts/1129141840.shtml">it's having some problems right now</a>. (Never buy Toshiba. Toshibas are junk.) And this 3500 has had the speakers repaired, but they pretty much suck, and I can barely hear them. (Never buy Toshiba. Toshibas are junk.)<br />
<br />
So at this point, the safe way to be sure I'm on that plane is to stay awake until I board, and then sleep on the plane. So to find things to keep me going, I decided to do something I haven't done in a while. It's time for another installment of <a href="http://tabletumlnews.powerblogs.com/posts/1123251617.shtml">Seen around the tech blogs</a>.<br />
<br />
--------------------------------------------------------<br />
<br />
Richard Hale Shaw makes <a href="http://www.richardhaleshawgroup.com/RHSGroup/Community/blogs/richard_hale_shaws_blog/archive/2005/10/06/177.aspx">an interesting argument against the C# using statement</a> (<i>not</i> the using directive; and thank you, C# team, for that bit of confusing language). I disagree with him; but it will take time and sleep before I can fully explain why. The short preview: he says you can't force people to use your class correctly; I say I can, and I'll show you how, soon.<br />
<br />
--------------------------------------------------------<br />
<br />
Joe Kunk passes along <a href="http://jbknet.blogspot.com/2005/10/solution-for-converting-c-mfc-code-to.html">some suggestions on porting MFC code to .NET</a>, including some discussion of tools to automate parts of the port. Since I have <a href="http://www.tabletuml.com/TechnicalPresentations.aspx">a presentation on this topic</a>, I'm going to check out those tools.<br />
<br />
--------------------------------------------------------<br />
<br />
<a href="http://apolloera.blogspot.com/2005/10/apollo-command-modules.html">From the Earth to the Moon</a> links to <a href="http://www.spaceflightonline.com/Apollo%20Command%20Modules">this discussion of where the Apollo capsules are today</a>. Until it shut down, the Michigan Space and Science Center in Jackson was home to the Apollo 9 capsule. (Commander McDivitt was a Jackson-area native.) I used to go there for inspiration whenever I had a spare afternoon. When I think of what those engineers accomplished at a time where the sum total of all the computers at NASA amounted to less memory than I have in my hand, I realize that no job of mine is that tough. It was a sad day when I learned that MSSC had closed. Now I have to go all the way to San Diego to see Apollo 9. Of course, my flight home tomorrow ends in Dayton (I started this trip with INETA meetings in Cincinatti and Dayton), and Apollo 15 is at the Air Force museum there; and later this year I'll be in Huntsville for another INETA presentation, where Apollo 16 is. So I'll get my fixes then. (Bonus: outside of Dayton and on the road toward home is the Neil Armstrong Museum!)<br />
<br />
--------------------------------------------------------<br />
<br />
James Avery is <a href="http://dotavery.com/blog/archive/2005/10/09/5288.aspx">looking to switch blog engines</a>, and wishes he had a decent, easy to use and extend .NET solution. I could be wrong, James, but I think it will be <i>really</i> easy to build your own with ASP.NET 2.0.<br />
<br />
--------------------------------------------------------<br />
<br />
<a href="http://www.tabletpcbuzz.com/forum/topic.asp?TOPIC_ID=29284">Tablet PC Buzz</a> points out <a href="http://josheinstein.com/journal/archive/2005/10/13/1153.aspx">this post by Josh Einstein</a> about fixes that will make Tablet PC components work properly under .NET Framework 2.0. I'm getting a new version of Tablet UML ready, so this was important news to me!<br />
<br />
--------------------------------------------------------<br />
<br />
Space Law Probe has <a href="http://spacelawprobe.blogspot.com/2005/10/friday-flybys-vol-21.html">a round-up of reactions to China's manned space launch</a>.<br />
<br />
--------------------------------------------------------<br />
<br />
I don't have <a href="http://jameshudnall.com/blog.php">James Hudnall</a> under Tech Blogs, because I think of him as a comics guy. His <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0871356937/qid=1129365208/sr=8-4/ref=sr_8_xs_ap_i4_xgl14/002-5231508-2549661?v=glance&s=books&n=507846">Espers</a> is one of my favorite series. But he's also <a href="http://en.wikipedia.org/wiki/James_Hudnall">a computer geek</a>. This week, he <a href="http://jameshudnall.com/blog.php?/weblog/e_paper_is_almost_here/">posted</a> about <a href="http://media.guardian.co.uk/site/story/0,14173,1591602,00.html">the latest story on e-paper</a>, and we drooled over the possible comic book applications.<br />
<br />
Marvel has released <a href="http://www.amazon.com/exec/obidos/tg/detail/-/B0006Q7FEM/qid=1129365463/sr=8-1/ref=pd_bbs_1/002-5231508-2549661?v=glance&s=software&n=507846">40 Years Of The Amazing Spider-Man on CD</a>. I haven't picked it up yet, because I'm afraid someone may get it for me as a gift, and I wouldn't want to spoil that. I really would love to read that collection on a Tablet PC (particularly <a href="http://www.gateway.com/products/GConfig/prodDetails.asp?system_id=cx200x&seg=hm">my new Gateway CX200X Tablet PC</a>, to be ordered next week); but a programmable e-paper comic would be equally cool.<br />
<br />
(And I hope that Marvel and DC and others release a lot more of their back stock this way.)<br />
<br />
--------------------------------------------------------<br />
<br />
Mike Swanson shows off <a href="http://blogs.msdn.com/mswanson/archive/2005/10/11/479966.aspx">the 5 best videos from the PDC</a>. I wish I could've been there, but I was earning the money that will pay for <a href="http://www.gateway.com/products/GConfig/prodDetails.asp?system_id=cx200x&seg=hm">my new Gateway CX200X Tablet PC</a>.<br />
<br />
--------------------------------------------------------<br />
<br />
Matt Propst announces the <a href="http://apache.techgv.com/~propstm/?p=8">Formal Cancellation of Grand Valley Programming Competition</a>. That's too bad, but I hope they can pull it off next year. <a href="http://www.srtsolutions.com/public/blog/19990">Josh Holmes</a> and I were asked to be judges. One of my oldest programming memories is high school programming competitions at Grand Valley, so this would've been like going full circle.<br />
<br />
--------------------------------------------------------<br />
<br />
And speaking of Josh Holmes, he has a <a href="http://www.srtsolutions.com/public/item/105062?model=user/myst/user-srt-corporate-comments&style=user/myst/srt-corporate&scheme=green">couple</a> of <a href="http://www.srtsolutions.com/public/item/105107?model=user/myst/user-srt-corporate-comments&style=user/myst/srt-corporate&scheme=green">posts</a> on his latest work with Compact Framework and Win CE. Josh is my goto guy on this Windows handheld stuff, and he should be yours, too.<br />
<br />
--------------------------------------------------------<br />
<br />
<a href="http://samgentile.com/blog/archive/2005/10/14/32035.aspx">Sam Gentile</a> posts about <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=126731">a Channel 9 interview with him and Ward Cunningham</a>. Since neither gentleman is shy &mdash; especially with their opinions! &mdash; it's pretty no-holds-barred.<br />
<br />
--------------------------------------------------------<br />
<br />
And speaking of Robert Scoble (the guy behind Channel 9), he's on <a href="http://scobleizer.wordpress.com/2005/10/15/doc-searls-says-microsoft-doesnt-get-it/">a crusade to get Microsoft to focus on blog searching</a>.<br />
<br />
--------------------------------------------------------<br />
<br />
Julie Lerman has <a href="http://www.thedatafarm.com/blog/PermaLink.aspx?guid=4d141b76-fda3-4394-adad-21556e8bfdcf">a 512MB memory chip for a Toshiba Portege M200.</a> Julie, Julie, Julie... Some day you'll learn: <a href="http://tabletumlnews.powerblogs.com/posts/1129141840.shtml">never buy Toshiba. Toshibas are junk.</a><br />
<br />
Look at this <a href="http://www.gateway.com/products/GConfig/prodDetails.asp?system_id=cx200x&seg=hm">Gateway CX200X Tablet PC</a>, Julie. Look at the 14" wide-screen. Isn't it... tempting? Look at that optional 4-year, on-site, parts and labor <i>and</i> accidental damage warranty look... comforting?<br />
<br />
--------------------------------------------------------<br />
<br />
<a href="http://www.whatisnew.com/blogs/dailynews/archive/2005/10/05/1876.aspx">Lora at What Is New</a> posts that the Windows Mobile PC Team (i.e., the Tablet team plus) now has <a href="http://blogs.msdn.com/mobilepc/">a group blog</a>.<br />
<br />
--------------------------------------------------------<br />
<br />
And speaking of the Windows Mobile PC Team... This is a little belated note (since I just learned of their blog from Lora): they write of <a href="http://blogs.msdn.com/mobilepc/archive/2005/09/13/465593.aspx">the work their people did in helping to support Hurricane Katrina relief</a>. I've already noted <a href="http://tabletumlnews.powerblogs.com/posts/1126375086.shtml">the contributions by Best Buy, WalMart, Home Depot, Edward Jones, McDonald's, and others</a>; so it's only fair that I point out that my favorite software company has pledged over $9 million in cash, materials, and support to the relief effort. Thank you, Microsoft.<br />
<br />
--------------------------------------------------------<br />
<br />
<a href="http://nanobot.blogspot.com/2005/08/standing-at-feet-of-giants.html">Howard Lovy has retired NanoBot.</a> That's too bad, but <a href="http://nanobot.blogspot.com/2005/08/nano-hauls-me-back-from-abyss.html">his new job</a> probably keeps him plenty busy.<br />
<br />
--------------------------------------------------------<br />
<br />
<a href="http://blogs.msdn.com/trobbins/archive/2005/10/10/479285.aspx">Thom Robbins</a> forwards an announcement of the general availability of the "Project Server Visual Studio Team System Connector" application. "The solution provides guidance for integrating Project Server and Visual Studio Team System. It demonstrates how Project Server and Visual Studio Team System can be integrated together to provide extended value for project and resource managers and guides developers through the process of building and customizing components that link the project management and software development tools. This is a foundation for partners to build applications that can integrate the two server products and provide specialized functionality."<br />
<br />
As someone who's more and more excited about process and practices, I'm pleased by this news.<br />
<br />
--------------------------------------------------------<br />
<br />
<a href="http://jkontherun.blogs.com/jkontherun/2005/10/mike_wendland_g.html">James Kendrick &mdash; a.k.a. jkOnTheRun &mdash; links</a> to <a href="http://www.freep.com/money/tech/wendland13e_20051013.htm">this Detroit Free Press story</a> about Bill Gates's visit to Ann Arbor. (Oh, sure, Bill... Come to town when I'm three or four states away! OK, I wouldn't have been invited anyway, since his presentation was for students. But still...) I think the story hints at one reason why I suspect for Microsoft's strong support for the Tablet PC: Bill loves his Tablet, and has wanted one for a long time. You don't believe me? He described his vision of the platform in drooling detail way back in <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0140260404/qid=1129369408/sr=8-1/ref=pd_bbs_1/002-5231508-2549661?v=glance&s=books&n=507846">The Road Ahead</a> (or maybe it was <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0446675962/ref=pd_sim_b_1/002-5231508-2549661?%5Fencoding=UTF8&v=glance">Business @ the Speed of Thought</a> &mdash; I'm on the road, remember, so I don't have my books with me). There are few people who are more fanatical about Tablet PCs than I am, but Bill's clearly one of them. And so I have a sneaking suspicion that, just as Microsoft will always sell a version of Basic so long as Bill's involved, so too will they make sure that somebody's making new Tablet PCs for Bill to play with.<br />
<br />
(NOTE: The above is tongue-in-cheek, and I know nothing about Microsoft's internal platform decisions nor the reasons for those decisions. But I do know that it's true that Bill loves his Tablet PCs.)<br />
<br />
--------------------------------------------------------<br />
<br />
And speaking of jkOnTheRun... He links to <a href="http://jkontherun.blogs.com/jkontherun/2005/10/bad_toshiba_cus.html">more proof that Toshibas are junk</a>. And he has a plea:<br />
<br />
<blockquote><br />
Let’s help Tracy get her Tablet back.  Anyone with a Toshiba horror story about repair or customer service difficulties please chime in here with a comment.  Let’s see if a string of unsatisfied customers can get Toshiba’s attention about Tracy’s plight.  It’s worth a shot as she has nothing to lose since she is already without her precious.<br />
</blockquote><br />
<br />
I'm about to throw some links your way, James, as you asked. But at this point, you may already know my conclusion: never buy Toshiba. Toshibas are junk.<br />
<br />
--------------------------------------------------------<br />
<br />
There! That worked out just about perfectly. I planned to start prepping and packing at 0600, and it's 0553. That gives me just enough time to do a cursory proofread, and then post.<br />
<br />
When next you hear from me, I hope to be <b>H*O*M*E!</b> Sandy, I'm on my way!]]></content:encoded>
</item>

</rdf:RDF>