<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="en-US"><title>Matt Hempey</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/default.aspx" /><tagline type="text/html">Senior Software Engineer</tagline><id>http://blogs.vertigosoftware.com/matth/default.aspx</id><author><url>http://blogs.vertigosoftware.com/matth/default.aspx</url></author><generator url="http://communityserver.org" version="1.1.0.50615">Community Server</generator><modified>2005-08-19T16:04:00Z</modified><entry><title>Workflows Don't Do Work</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/archive/2006/11/01/4044.aspx" /><id>fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4044</id><created>2006-11-01T21:32:18Z</created><content type="text/html" mode="escaped">&lt;p&gt;Workflow is one of those classic terms that has a thousand different meanings to a thousand different people.  Most people agree it's about modeling and automating business processes, but beyond are myriad interpretations. &lt;p&gt;&lt;img src="/photos/matth/images/4045/original.aspx"&gt; &lt;p&gt;Probably the most important single thing to understand about a workflow is that it's not an application. Workflows interact with applications, respond to, coordinate, and control applications, but &lt;strong&gt;workflows don't do work&lt;/strong&gt;. They coordinate it.  &lt;p&gt;&lt;a href="http://blogs.msdn.com/davegreen/"&gt;Dave Green&lt;/a&gt;, one of the Windows Workflow Foundation architects, has a great explanation of the three &lt;a href="http://blogs.msdn.com/davegreen/archive/2005/10/20/483309.aspx"&gt;workflows models&lt;/a&gt; for coordinating work: &lt;p&gt;· &lt;b&gt;Sequential (flowcharts):&lt;/b&gt; This is the way most people think about workflow: the workflow is in charge.  Work comes in at step A, it goes B or C, and finally D. Dave makes the point that this style is often too inflexible or quickly becomes too complicated to model business processes effectively. &lt;p&gt;· &lt;b&gt;State-driven (state machine):&lt;/b&gt; Unlike sequential workflows, the user chooses the action for work. The workflow .  This is more flexible than sequential, since it allows the user to make decisions about the best next decision.  For example, when Michael suggested a good analyst has a choice of what action to take based on a rate request, he was describing a state-based workflow. &lt;p&gt;· &lt;b&gt;Data-driven (rules engine): &lt;/b&gt;This is the most flexible. Rather than having explicit states, you simply define the rules (e.g. what can happen, who can do it, what’s affected by it, and how).  Rather than worrying about the state of the system, you simply worry that all rules are followed correctly.  Of course, the downside of this flexibility is that rules-driven systems can be much harder to test, since the states aren't explicitly identified. &lt;p&gt;How workflows implement these models is dependent on the individual system. &lt;/p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4044" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.vertigosoftware.com/matth/commentrss.aspx?PostID=4044</wfw:commentRss></entry><entry><title>CSS Layouts &amp;amp; ASP.NET Controls</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/archive/2006/10/23/3982.aspx" /><id>fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:3982</id><created>2006-10-23T20:52:22Z</created><content type="text/html" mode="escaped">&lt;p&gt;After desigining a fully CSS-layout-based site in the new Windows Marketplace, I'm finding it difficult to go back. Looking at complex tables and inline styles in other web applications is just giving me eye strain.&lt;/p&gt; &lt;img src="/photos/matth/images/3979/original.aspx"&gt; &lt;p&gt;The worst thing is that ASP.NET's controls come that way out of the box. This means that web developers who want to gain traction quickly by using ASP.NET's out of the box controls get bogged down in layout updates in the long run.&lt;/p&gt; &lt;p&gt;Problem solved. I just found the new &lt;a href="http://www.asp.net/CSSAdapters"&gt;control adapters section&lt;/a&gt; on the &lt;a href="http://www.asp.net/"&gt;ASP.NET&lt;/a&gt; site, which in addition to showing you how to override the rendering of the standard controls, gives you CSS-layout-based adapters for the common controls.  So you can grab these and go to town on your site's CSS.  Best of both worlds.&lt;/p&gt; &lt;p&gt;&lt;p&gt;&lt;em&gt;Example from Asp.Net: CSS-Styling the GridView Control&lt;/em&gt;&lt;/p&gt;&lt;img src="/photos/matth/images/3980/original.aspx"&gt; &lt;img src="/photos/matth/images/3981/original.aspx"&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=3982" width="1" height="1"&gt;</content><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.vertigosoftware.com/matth/commentrss.aspx?PostID=3982</wfw:commentRss></entry><entry><title>SharePoint Business Data Catalog (BDC)</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/archive/2006/10/23/3977.aspx" /><id>fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:3977</id><created>2006-10-23T20:21:16Z</created><content type="text/html" mode="escaped">&lt;p&gt;I sat down with the AdventureWorks2000 &lt;a href="http://msdn2.microsoft.com/en-us/library/ms519241.aspx"&gt;Business Data Catalog (BDC) sample&lt;/a&gt; for Microsoft Office SharePoint 2007 recently. Before I launched into it, my big question was, &lt;strong&gt;What is the BDC?&lt;/strong&gt;&lt;/p&gt; &lt;img src="/photos/matth/images/3976/original.aspx"&gt; &lt;p&gt;In SharePoint 2003, it was possible to display data from an external source, such as your company's database or web services, in SharePoint. Write a custom web part, have it query the data source, and display the data.  The big difference with the BDC in 2007 is that this data can now be fully integrated throughout SharePoint, just like Active Directory data. You can search on it using SharePoint's search engine, you can expose it via web parts shipped with SharePoint, or you can write your own to do entirely new things with it. &lt;em&gt;No longer is the data stranded on a web part island.&lt;/em&gt;&lt;/p&gt; &lt;img src="/photos/matth/images/3975/original.aspx"&gt; &lt;p&gt;By the way, setting up a BDC connection is no trivial endeavor. You must write a complex XML document which maps the data in your data source, as well as the method you use to connect, so SharePoint knows what to do with it. Once it's done, though, the BDC gives your portal a pretty powerful way to show people what's going on, right now, inside your company's systems.&lt;/p&gt;
&lt;p&gt;To get started with the BDC, I worked through the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms519241.aspx"&gt;AdventureWorks2000 Sample&lt;/a&gt; on MSDN. Todd Baginski has a nice SharePoint blog and has created a &lt;a href="http://www.sharepointblogs.com/tbaginski/archive/2006/07/16/9259.aspx"&gt;tool for generating BDC metadata automatically&lt;/a&gt;. I haven't used it but it might save you some time.&lt;/p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=3977" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.vertigosoftware.com/matth/commentrss.aspx?PostID=3977</wfw:commentRss></entry><entry><title>SharePoint UI Customization</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/archive/2006/10/23/SharePoint_UI_Customization.aspx" /><id>fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:3970</id><created>2006-10-23T18:52:38Z</created><content type="text/html" mode="escaped">&lt;p&gt;Microsoft Office SharePoint Server 2007 gives developers a great degree of control over the look and feel of their site.  I set out recently to figure out just exactly how much customization was possible, and what was practical.  While the technical details are &lt;a href="http://heathersolomon.com/blog/articles/IntroCustomization.aspx"&gt;explained well elsewhere&lt;/a&gt;, high level, here's what I found:&lt;/p&gt; &lt;p&gt;Because SharePoint pages are just ASP.NET, you can customize them just as you would a standard ASP.NET 2.0 web page.  Just to see how much I could do, I took my personal site and went crazy with layout and style changes. In this example, I modified only the master page for the site, adding new style declarations at the top and changing the HTML throughout.&lt;/p&gt; &lt;p&gt;Before:&lt;/p&gt; &lt;img src="/photos/matth/images/3971/original.aspx"&gt; &lt;p&gt;...and after:&lt;/p&gt; &lt;img src="/photos/matth/images/3972/original.aspx"&gt; &lt;p&gt;Unfortunately, this wasn't as easy as it could have been. Since working on the &lt;a href="http://www.windowsmarketplace.com/"&gt;new Windows Marketplace&lt;/a&gt;, which we built using an &lt;a href="http://blogs.vertigosoftware.com/swarren/archive/2006/10/19/3954.aspx"&gt;entirely CSS-based layout&lt;/a&gt;, I'm used to having a &lt;em&gt;lot &lt;/em&gt;more control over the UI by only modifying the styles. SharePoint's out-of-the-box pages use a traditional table-based layout, which increases the amount of time and hassle it takes to create a site as dramatically different as this one.&lt;/p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=3970" width="1" height="1"&gt;</content><slash:comments>60</slash:comments><wfw:commentRss>http://blogs.vertigosoftware.com/matth/commentrss.aspx?PostID=3970</wfw:commentRss></entry><entry><title>Amazon S3 for You and Me</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/archive/2006/08/08/Amazon_S3_for_You_and_Me.aspx" /><id>fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:3277</id><created>2006-08-08T23:35:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;We have no childhood pictures of my Mom—her father (accidentally?) threw them out with the trash when she was at college.  That was a real tragedy.&lt;/p&gt;

&lt;img src="http://blogs.vertigosoftware.com/photos/matth/images/3275/original.aspx"&gt;

&lt;p&gt;With that in mind, I’ve been looking for an easy, permanent backup strategy for all my photos.  A slough of solutions are available, but each had a fatal flaw (or two) I couldn’t live with:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Extra hard drives are expensive and don’t help if your house burns down.&lt;/li&gt;
&lt;li&gt;Backup DVDs can be stored offsite, but you need a "management strategy" to make sure you update them every couple of months.&lt;/li&gt;
&lt;li&gt;Online storage services (e.g. XDrive, iDisk) are often too expensive.*&lt;/li&gt;&lt;/ul&gt;

&lt;img src="http://blogs.vertigosoftware.com/photos/matth/images/3276/original.aspx"&gt;

&lt;p&gt;Of all of these, online storage is clearly the future—how can your homemade backup strategy compare to a massive server farm?  A few months ago Amazon.com released &lt;a href="http://www.amazon.com/gp/browse.html/002-3634409-7491243?redirect=true&amp;node=16427261"&gt;Amazon S3&lt;/a&gt;: S3 stands for “simple storage service.” The service provides a programmatic interface to store objects on Amazon’s servers for insanely cheap prices. It’ll even encrypt your data on disk with a private key assigned to you.&lt;/p&gt;

&lt;p&gt;Of course, it’s just a web service—you have to write the client. But, as Jeff Atwood says, if you need to build any piece of software, wait a month and someone will do it for you.  And they have: &lt;a href="http://www.jungledisk.com/"&gt;JungleDisk&lt;/a&gt;.  Jungle disk creates a virtual folder on your disk that acts as a portal to your S3 account.  Backing up files is simply a matter of copying them into the folder (uploads are handled asynchronously in the background).&lt;/p&gt;  

&lt;p&gt;This is still a beta product, and it shows. But it’s a backup strategy that’s simple, cheap, and incredibly robust. That’s for me.&lt;/p&gt;

&lt;p&gt;&lt;font size="-1"&gt;* There are some bargains. &lt;a href="http://www.streamload.com"&gt;Streamload&lt;/a&gt; is a pretty good value and has a free account that beats Amazon below 25GB.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=3277" width="1" height="1"&gt;</content><slash:comments>134</slash:comments><wfw:commentRss>http://blogs.vertigosoftware.com/matth/commentrss.aspx?PostID=3277</wfw:commentRss></entry><entry><title>The Most Important Seven Words In Client Communication</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/archive/2006/08/08/The_easiest_way_to_make_clients_happy.aspx" /><id>fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:3269</id><created>2006-08-08T22:58:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;
Not long after we established Vertigo blogs, Susan posted a &lt;a HREF="http://blogs.vertigosoftware.com/swarren/archive/2004/08/20/527.aspx"&gt;great series on soft skills&lt;/a&gt; that should complement your technical skills.  I thought I’d add one specific to client communication.&lt;p /&gt;

&lt;p&gt;&lt;b&gt;The Most Important Seven Words In Client Communication: “Let Me Make Sure I Understand You”&lt;/b&gt;&lt;/p&gt;

&lt;img src="http://blogs.vertigosoftware.com/photos/matth/images/3271/original.aspx"&gt;

&lt;p&gt;We all know that listening is important.  But that’s not what I’m talking about—I’m talking about &lt;i&gt;showing that you’re listening.&lt;/i&gt;  When you’re talking with a client, it’s the single most effective way to make the meeting productive, move past issues, and get to a resolution everyone’s happy about:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Client: “[supporting info] we want a reporting system for our existing database [supporting info]"&lt;/li&gt;
&lt;li&gt;You: “So, let me make sure I understand you.  You’d like a reporting system for your existing database?”&lt;/li&gt;
&lt;li&gt;Client: “Exactly.”&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Does this sound redundant? Perhaps, but if you don’t do it:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;The client doesn’t know you understood what they said,&lt;/li&gt;
&lt;li&gt;You don’t know you understood what they said,&lt;/li&gt;
&lt;li&gt;And maybe, just maybe, the client didn’t mean what they said.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Confirming what you heard is the first step toward the solution. Too often people fail to acknowledge this in their race to start actually fixing a problem. In doing so you risk building the wrong solution.  Or, even worse, you build the right solution to the wrong problem.&lt;/p&gt;

&lt;p&gt;I’ve been in hundreds of meetings and probably thousands of phone calls with clients at Vertigo, and this comes in handy almost all the time.  Now, I don’t reiterate back verbatim exactly what they said, I often paraphrase and try to state it more simply. And you've got to follow it up with a value-add response. But if it’s an important point, I try to make sure I do it. &lt;/p&gt;

&lt;p&gt;The most handy use is when you find yourself talking across your client--you're both trying to make your point at the same time. Stop, listen, and repeat.  You’ll find it makes a world of difference.
&lt;/p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=3269" width="1" height="1"&gt;</content><slash:comments>186</slash:comments><wfw:commentRss>http://blogs.vertigosoftware.com/matth/commentrss.aspx?PostID=3269</wfw:commentRss></entry><entry><title>A Newbie's Guide to PDC: Top Ten Tips</title><link rel="alternate" type="text/html" href="http://blogs.vertigosoftware.com/matth/archive/2005/08/19/1420.aspx" /><id>fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:1420</id><created>2005-08-19T23:04:00Z</created><content type="text/html" mode="escaped">&lt;P&gt;As PDC is fast approaching, Jeff Atwood asked me to summarize my tips and recommendations on attending this conference.&amp;nbsp;PDC 2003 was my first Microsoft conference, so if you're a verteran conference goer this stuff may be old hat.&amp;nbsp;Here are my top ten tips:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;10. Pack light on day 1.&amp;nbsp; &lt;/STRONG&gt;In fact, don't pack at all--when you get there, they're going to load you down with a brand new bag, which will be sufficiently bulky and heavy so as to make you really regret the bag you brought along with you on the shuttle.&amp;nbsp; It's generally a long way back home from the conference center, and you'll be walking &lt;EM&gt;&lt;U&gt;a lot&lt;/U&gt;&lt;/EM&gt;, so come as you are, and let them load you down.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;9. Laptops are for people with ethernet cables. &lt;/STRONG&gt;I did not see, nor have I heard of, anyone successfully achieving a reliable wireless connection at one of these conferences. If you plan to lug a laptop, give yourself the gift of wired connectivity and bring a handy dandy cable along.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;8. This is just like college--pick your sessions (and keynotes) by speaker, not subject. &lt;/STRONG&gt;At PDC 2003, Indigo was the least interesting track to me.&amp;nbsp; But after sitting through several mind-numbing seminars on the WinFS object model, I found myself overjoyed to see Don Box playing his guitar and singing about SOAP.&amp;nbsp; Unfortunately, the wallet-sized schedule they give you doesn't list speakers, so do some research ahead of time. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;7. If you didn't follow tip #8, sit on the aisle.&amp;nbsp;&lt;/STRONG&gt;Your ticket is too expensive to sit through a boring session playing solitaire. Get the heck out! and go find a hands-on-lab or other session to keep you busy.&amp;nbsp;But beware, laptops are the extra-large popcorns of PDC auditoriums, so if you're in the middle of a row, you're going to have a hard time leaving.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;6. Speak, don't just be spoken to. &lt;/STRONG&gt;This is your best chance to meet and talk to the people who shape your technical world.&amp;nbsp; Give them feedback--that's really why they're there.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;5. Arrive early.&amp;nbsp;&lt;/STRONG&gt;Popular speakers generate loads of crowds, so arrive at these sessions plenty early.&amp;nbsp;Also, per #7, aisle seats are the first to go.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4. Skip...and don't feel guilty.&amp;nbsp;&lt;/STRONG&gt;Session burnout is a serious concern.&amp;nbsp; If you don't see any compelling sessions (or even if you do), don't feel bad just heading to a couch and chilling out.&amp;nbsp; Save your energy, concentration, and enthusiasm for the sessions you came to see.&amp;nbsp; It's quality, not quantity, that counts.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3. Remember, they're on DVD. &lt;/STRONG&gt;Many of the sessions are published on a DVD included in the price of your ticket, so let this be one more reason to follow tips #4 and #8.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. Don't miss the (first) bus to Universal Studios. &lt;/STRONG&gt;You'll find yourself waiting three hours in line for the 214th bus. I hitched a ride with a tablet-PC designer when I couldn't take it anymore.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1. Make friends. &lt;/STRONG&gt;Like any technical convention, introverts abound. Say hi to the guy (most of the time it's a guy) next to you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=1420" width="1" height="1"&gt;</content><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.vertigosoftware.com/matth/commentrss.aspx?PostID=1420</wfw:commentRss></entry></feed>