<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dougv.com « Doug Vanderweide &#187; crowdsourcing</title>
	<atom:link href="http://www.dougv.com/tag/crowdsourcing/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dougv.com</link>
	<description>ASP.NET, PHP, XML, JavaScript, Web geekery, Entrepreneurship</description>
	<lastBuildDate>Thu, 17 May 2012 22:33:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>TEA Time: New England GiveCamp 2012 Recap</title>
		<link>https://www.dougv.com/2012/05/07/tea-time-new-england-givecamp-2012-recap/</link>
		<comments>https://www.dougv.com/2012/05/07/tea-time-new-england-givecamp-2012-recap/#comments</comments>
		<pubDate>Tue, 08 May 2012 02:38:47 +0000</pubDate>
		<dc:creator>Doug Vanderweide</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[coding standards]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[GiveCamp]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[Jim O'Neil]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">https://www.dougv.com/?p=4756</guid>
		<description><![CDATA[Last weekend I was in Cambridge, Mass. for New England GiveCamp 2012, the third of annual meet-ups that match technical and design people with nonprofit organizations that need their help. My cause was The Esplanade Association, an organization that cares for the Charles River Esplanade Park. The Charles River Esplanade Park is the Boston-side green [...]<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/05/13/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010/" rel="bookmark">Designers And Developers: Donate Your Time, Talent At New England GiveCamp, June 11-13, 2010</a> (30.2)</li>
				<li><a href="https://www.dougv.com/2011/05/03/new-england-givecamp-2011-what-a-weekend/" rel="bookmark">New England GiveCamp 2011: What A Weekend!</a> (24.2)</li>
				<li><a href="https://www.dougv.com/2010/06/10/at-new-england-givecamp-this-weekend/" rel="bookmark">At New England GiveCamp This Weekend</a> (23.4)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.
	</div>
]]></description>
			<content:encoded><![CDATA[<p>Last weekend I was in Cambridge, Mass. for <a href="http://www.newenglandgivecamp.org" target="_blank">New England GiveCamp</a> 2012, the third of annual meet-ups that match technical and design people with nonprofit organizations that need their help.</p>
<div id="attachment_4757" class="wp-caption alignleft" style="width: 360px"><a href="https://www.dougv.com/wp-content/uploads/2012/05/Vanderwarker_IMG_1542_big.jpg"><img class="size-medium wp-image-4757 " title="Charles River Esplanade" src="https://www.dougv.com/wp-content/uploads/2012/05/Vanderwarker_IMG_1542_big-350x233.jpg" alt="Charles River Esplanade" width="350" height="233" /></a><p class="wp-caption-text">The Charles River Esplanade is on the left. Hatch Memorial Shell and Teddy Ebersol&#39;s Red Sox Fields are in the foreground.</p></div>
<p>My cause was <a href="http://www.esplanadeassociation.org/">The Esplanade Association</a>, an organization that cares for the Charles River Esplanade Park.</p>
<p>The <a href="http://g.co/maps/cxt83" target="_blank">Charles River Esplanade Park</a> is the Boston-side green space along the river, from the <a href="http://www.mos.org/" target="_blank">Museum of Science</a> to the Boston University Bridge. While it&#8217;s owned and managed by the state of Massachusetts, TEA (which has to be the coolest acronym possible for a Boston-based group) exists to organize people to help protect and care for the park.</p>
<p>Much of their work involves organizing volunteers to clean up the park several times each year. TEA also holds a number of programs in the park &#8212; yoga, Zumba, dances and the like &#8212; and runs several fund raising projects.</p>
<p>They came to GiveCamp, initially, looking for a way to better coordinate singing up groups and individuals for cleanup days.<br />
<span id="more-4756"></span></p>
<h3>Ticketing Turns To Overhaul</h3>
<p>Currently, the way <strong>Jessica B. Pederson</strong>, TEA&#8217;s project manager, handles such reservations is by posting a schedule of cleanup days on her Web site, and asking people to email her if they are interested in participating. Then, via email exchanges back and forth, the details get worked out.</p>
<p>Even though the majority of these events are done through groups &#8212; so Jessica is in contact with a few group representatives, rather than scores of individuals &#8212; this proves an understandably arduous process that consumes a great deal of Jessica&#8217;s time, and it was something that she knew just screamed out to be automated.</p>
<p>You can&#8217;t swing a cat without hitting sample booking / ticketing system code on the Web, and there&#8217;s little practical difference between booking, say, a hotel room or buying a ticket to a play, and reserving a volunteer opportunity slot. Just provide the date, the number and types of tickets available, and a way for people to provide their contact information, and you&#8217;re done.</p>
<p>So I started by looking for ASP.NET-based ticketing solutions on the Web, since most of the Web developers who participate in GiveCamp are .NET folks. (Actually, I was side-hoping I could request <a href="https://twitter.com/#!/saush11" target="_blank">Saurabh Moondhra</a> and <a href="http://dirigosoftwaresolutions.com/Dirigo-Software-Solutions.aspx" target="_blank">William Wade</a>, the two ASP.NET developers I worked with during GiveCamp 2011, whom I knew would shine on such a project.)</p>
<p>And I was also thinking, in the back of my mind, it would be nice to address TEA&#8217;s Web site.</p>
<p>Don&#8217;t get me wrong; the site they had worked fine and contains a lot of good information presented in a sensible way. But it&#8217;s also stuck in 2005, and could use a cosmetic and functional overhaul.</p>
<p>And coincidentally, I am working on a WordPress site for a client right now that included the need for a basic calendaring and ticketing system. I had identified a plugin, <a href="http://wp-events-plugin.com/" target="_blank">Events Manager</a>, for them that wasn&#8217;t quite right for that project; but it almost perfectly fit Jessica&#8217;s needs, especially if she was willing to upgrade to the &#8220;pro&#8221; version.</p>
<p>And then, by coincidence again, <a href="https://twitter.com/#!/manage_kelley" target="_blank">Kelley Muir</a> &#8212; who coordinates the projects at GiveCamp &#8212; emailed me to say that she had asked this year&#8217;s nonprofits to identify possible second projects, and TEA said they&#8217;d like to have a content management system and general site redesign, too.</p>
<p>Jackpot! No need to reinvent the wheel; no need to even resize the wheel. We&#8217;re gonna put them in the Honda of the Web &#8212; good ol&#8217; WordPress &#8212; and slap some 20-inch rims (Events Manager) on it.</p>
<h3>Meet TEA</h3>
<p><img src="https://www.dougv.com/wp-content/uploads/2012/05/logo.jpg" alt="TEA logo" title="TEA logo" width="200" height="69" class="alignleft noborder size-full wp-image-4786" />I talked with Jessica and <strong>Christopher Timmel</strong>, TEA&#8217;s communications director, on the phone on Wednesday, to go over their needs and expectations, and knew instantly that I had lucked out a second time.</p>
<p>I&#8217;m a big fan of green space. You can&#8217;t live in Augusta, Maine and not like trees and rivers, after all.</p>
<p>But as a simple matter of public policy, I don&#8217;t think parks and open spaces get enough credit or resources, in spite of being a huge factor in quality of life. Understandably, because trees and grass pretty much grow on their own, it&#8217;s easy to put government dollars and effort elsewhere.</p>
<p>So when I see a group like TEA, I&#8217;m already a huge fan of their work.</p>
<p>Even better was that Jessica and Chris had a very clear picture of what they actually wanted. Even more rarely, what they wanted was actually what they needed. (It&#8217;s strange, but often, clients pitch requirements that don&#8217;t resolve their problems, or do so in ways that only make the problems worse or create new problems. Not so with Chris and Jessica.)</p>
<p>Plus, they&#8217;re personable, sincere and nice people. No coddling, wrangling or placating was in my weekend forecast. Not that it&#8217;s been a problem for me in past GiveCamps; just that any time you can get a client that&#8217;s positive about its problems, you need to celebrate.</p>
<h3>Meet The Team</h3>
<p>So I asked Kelley to assign a designer and a couple PHP people (since WordPress skinning requires a little knowledge of PHP, and I figured we might need to adjust some of the Events Manager code via overrides) to the project.</p>
<p>That&#8217;s how <a href="http://cmyung.com/" target="_blank">Christina Yung</a> and <strong>Jason Dufour</strong> were assigned to the project, and they were my third stroke of luck.</p>
<p><div id="attachment_4795" class="wp-caption alignright" style="width: 360px"><a href="https://www.dougv.com/wp-content/uploads/2012/05/IMG_0047.jpg"><img src="https://www.dougv.com/wp-content/uploads/2012/05/IMG_0047-350x235.jpg" alt="Jessica Pederson and Christina Yung" title="Jessica Pederson and Christina Yung" width="350" height="235" class="size-medium wp-image-4795" /></a><p class="wp-caption-text">Jessica Pederson, program director for The Esplanade Association, and Christina Yung, graphic designer, running through the old esplanadeassociation.org Web site on Friday night of GiveCamp 2012.</p></div>Christina primarily works in print, signage and branding, but has recently expanded into Web design. Jason is primarily an ASP.NET developer, but has PHP experience, and very strong jQuery and CSS skills. As anyone who&#8217;s ever skinned a WordPress site knows, the hard part is getting the CSS right, and the things you can&#8217;t quite get right in CSS, you can usually fix in jQuery.</p>
<p>An even better perk is that Jason and Christina work together at their day jobs, which means there would be no need to worry about chemistry or communication. And the weekend bore out that both were take-initiative-and-ownership types, which fits my management style perfectly: I like to provide an area of responsibility and a goal, then let people figure out, and do, what needs to get done to achieve it.</p>
<p>So two times I was a GiveCamp project lead, and two times Kelley assigned my team members who were skilled, friendly people who knew what to do and got done what needed to get done.</p>
<h3>The Project</h3>
<p>Even when you have a superior platform (WordPress); the right tools inside that platform (Events Manager); a client with full buy-in, all collateral organized and ready, and authority to make decisions on the fly (Chris and Jessica); and a team that&#8217;s got the skills and drive to get the job done (Jason and Christina), putting a Web site together over a weekend is a frenzy.</p>
<p>There were a few points where I thought we wouldn&#8217;t make it.</p>
<p>In addition to the usual bumps in any project road &#8212; misunderstandings, mistakes, unforeseen complications and unintended consequences are the hallmarks of every Web project &#8212; there were many, many steps in getting the content right.</p>
<p>Because of the kinds of information TEA needs to communicate, this WordPress site wasn&#8217;t header-footer-sidebar-index-css-and-we&#8217;re-done.</p>
<p>They needed fairly complicated page flow, and the calendar itself mutated a couple times as it became clearer what events would need a registration component, and which events they simply wanted to let people know about. And their information required a few different page templates and a couple extra sidebars, to ensure it showed up properly.</p>
<p>Additionally, I had the objective to use as few plugins (aside from Events Manager) and as little code as possible (especially in the templates themselves), because I wanted to ensure whomever helps them with technical needs going forward can make heads and tails out of what we did. So that meant every error we made in terms of approach, taxonomy and content was magnified, since we couldn&#8217;t simply find a plugin or write some code to fix the issue.</p>
<p>In the end, we would up with only eight plugins, three of which are standard in all my WordPress installs:</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/bluetrait-event-viewer/" target="_blank">Bluetrait Event Viewer (BTEV)</a>, which logs system events and is very useful for debugging, intrusion detection and the like;</li>
<li><a href="http://wordpress.org/extend/plugins/category-posts/" target="_blank">Category Posts Widget</a>, which &#8212; as its name suggests &#8212; allows you to show posts in a specific category as a sidebar widget;</li>
<li>Events Manager, a calendar and booking system I simply cannot flog hard enough;</li>
<li><a href="http://wordpress.org/extend/plugins/google-sitemap-generator/" target="_blank">Google XML Sitemaps</a>, to help with site indexing;</li>
<li><a href="http://wordpress.org/extend/plugins/html-sitemap/" target="_blank">HTML Page Sitemap</a>, which automatically generates a sitemap based on wp_list_pages();</li>
<li><a href="http://wordpress.org/extend/plugins/simple-lightbox/" target="_blank">Simple Lightbox</a>, for slideshow functionality (TEA has lots and lots of pictures);</li>
<li><a href="http://wordpress.org/extend/plugins/single-post-widget/" target="_blank">Single Post Widget</a>, which &#8212; as its name suggests &#8212; allows you to show a single post in a sidebar; and</li>
<li><a href="http://wordpress.org/extend/plugins/wp-super-cache/" target="_blank">WP Super Cache</a>, to reduce server load and improve site responsiveness.</li>
</ul>
<h3>The Results</h3>
<p>Jessica and Chris are happy with their new site. They&#8217;re going to take a week to finish migrating content, come up with a list of questions and tweaks, then present it to their board of directors for feedback.</p>
<p>But you don&#8217;t have to wait. Check out the before and after shots:</p>
<p><div id="attachment_4765" class="wp-caption alignleft" style="width: 204px"><a href="https://www.dougv.com/wp-content/uploads/2012/05/esplanade_before.png"><img class="size-medium wp-image-4765" title="esplanadeassociation.org, before the redesign" src="https://www.dougv.com/wp-content/uploads/2012/05/esplanade_before-194x350.png" alt="esplanadeassociation.org, before the redesign" width="194" height="350" /></a><p class="wp-caption-text">esplanadeassociation.org, before the redesign</p></div>&nbsp;<div id="attachment_4764" class="wp-caption alignleft" style="width: 326px"><a href="https://www.dougv.com/wp-content/uploads/2012/05/esplanade_after.png"><img class="size-medium wp-image-4764" title="esplanadeassociation.org, after the redesign" src="https://www.dougv.com/wp-content/uploads/2012/05/esplanade_after-316x350.png" alt="esplanadeassociation.org, after the redesign" width="316" height="350" /></a><p class="wp-caption-text">esplanadeassociation.org, after the redesign</p></div>
<div style="display: block; clear: both;"></div>
<p>As I quipped at the GiveCamp closing presentations, it looks good because Christina made it that way; it works because Jason made it that way; and it&#8217;s not done because I made it that way.</p>
<p>The site needs to go live still; a fair amount of content remains to be migrated in, there are a few cosmetic tweaks needed, and we didn&#8217;t run a complete walkthrough / debugging of the site because all the elements are not in place.</p>
<p>But that is not to detract at all from what was accomplished. While I intend to help TEA go live with this site, really it can be finished by anyone with basic HTML / CSS knowledge. Anything short of complete disapproval of the skin won&#8217;t be difficult to accommodate, and that skin is not going to be rejected. Not by sane people, anyway. </p>
<p>So I hit for the cycle: Great project; great client; great team; great results. GiveCamp 2012 was a complete success.</p>
<h3>A Round Of Applause</h3>
<p>I&#8217;d be remiss if I didn&#8217;t note, once again, what a great experience GiveCamp is on the whole.</p>
<p>There&#8217;s just something reaffirming and enjoyable in being around capable, motivated, positive people who are in it for the love. Sincerely, you meet the nicest and best people at GiveCamp.</p>
<p>You get fed well. (Thank you <a href="http://gmcr.com/" target="_blank">Green Mountain Coffee Roasters</a>, <a href="http://www.nakedpizza.biz/" target="_blank">Naked Pizza</a>, <a href="http://bgood.com/" target="_blank">b.good catering</a>, <a href="http://wholefoodsmarket.com/" target="_blank">Whole Foods</a>, <a href="http://capecodchips.com/" target="_blank">Cape Cod Chips</a>, <a href="http://ripvanwafels.com/wafel/" target="_blank">Rip van Wafels</a> and Cakes By Kelli.) You get all kinds of great swag (that&#8217;s generally true of any event hosted by <a href="http://blogs.msdn.com/b/jimoneil/" target="_blank">Jim O&#8217;Neil</a>, New England GiveCamp&#8217;s host and driving force, but is certainly true of GiveCamp). And you get to be in Cambridge, which is an amazing place.</p>
<p>I should also mention, after the disappointment of the Royal Sonesta hotel last year, that the best deal in town for a stay near MIT has to be the <a href="http://hamptoninn.hilton.com/en/hp/hotels/index.jhtml?ctyhocn=BOSCBHX" target="_blank">Hampton Inn</a> on Monsignor O&#8217;Brien Highway. Even though I figure I paid about $30 per hour to sleep there (11 hours of sleep @ $340 for two nights), it&#8217;s very clean, the bed is awesome, the staff is friendly and efficient, it&#8217;s 100 percent geared toward serving business travelers (free WiFi, lightning-fast checkin and automatic checkout), the hot breakfast is actually quite palatable and it&#8217;s only a one-mile walk up Third Street from <a href="http://microsoftcambridge.com/Default.aspx" target="_blank">NERD</a>, where GiveCamp is hosted.</p>
<p>So, everybody who&#8217;s taken part or helped make it happen, thanks. You done good. <em>Real</em> good. And if you couldn&#8217;t make it this year, GiveCamp 2013 is April 26-28; mark your calendars now!</p>
<p>All links in this post on delicious: <a href="http://delicious.com/dougvdotcom/tea-time-new-england-givecamp-2012-recap" target="_blank">http://delicious.com/dougvdotcom/tea-time-new-england-givecamp-2012-recap</a></p>
<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/05/13/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010/" rel="bookmark">Designers And Developers: Donate Your Time, Talent At New England GiveCamp, June 11-13, 2010</a> (30.2)</li>
				<li><a href="https://www.dougv.com/2011/05/03/new-england-givecamp-2011-what-a-weekend/" rel="bookmark">New England GiveCamp 2011: What A Weekend!</a> (24.2)</li>
				<li><a href="https://www.dougv.com/2010/06/10/at-new-england-givecamp-this-weekend/" rel="bookmark">At New England GiveCamp This Weekend</a> (23.4)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.</p>
	</div>

	Tags: <a href="https://www.dougv.com/tag/coding-standards/" title="coding standards" rel="tag">coding standards</a>, <a href="https://www.dougv.com/tag/crowdsourcing/" title="crowdsourcing" rel="tag">crowdsourcing</a>, <a href="https://www.dougv.com/tag/ethics/" title="ethics" rel="tag">ethics</a>, <a href="https://www.dougv.com/tag/givecamp/" title="GiveCamp" rel="tag">GiveCamp</a>, <a href="https://www.dougv.com/tag/graphic-design/" title="graphic design" rel="tag">graphic design</a>, <a href="https://www.dougv.com/tag/jim-oneil/" title="Jim O&#039;Neil" rel="tag">Jim O&#039;Neil</a>, <a href="https://www.dougv.com/tag/marketing/" title="marketing" rel="tag">marketing</a>, <a href="https://www.dougv.com/tag/microsoft/" title="Microsoft" rel="tag">Microsoft</a><br />
]]></content:encoded>
			<wfw:commentRss>https://www.dougv.com/2012/05/07/tea-time-new-england-givecamp-2012-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review: Free: The Future of a Radical Price</title>
		<link>https://www.dougv.com/2011/08/05/review-free-the-future-of-a-radical-price/</link>
		<comments>https://www.dougv.com/2011/08/05/review-free-the-future-of-a-radical-price/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 16:12:09 +0000</pubDate>
		<dc:creator>Doug Vanderweide</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Self Employment]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[book reviews]]></category>
		<category><![CDATA[brands / identity]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[pricing]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[reputation]]></category>

		<guid isPermaLink="false">http://www.dougv.com/?p=3921</guid>
		<description><![CDATA[Chris Anderson provides a good introductory course on the economics of the Information Age, but doesn't tell us what we don't already know.<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/04/26/on-facebooks-new-features-privacy-and-the-near-future-of-the-web/" rel="bookmark">On Facebook&#8217;s New Features, Privacy And The Near Future Of The Web</a> (16.9)</li>
				<li><a href="https://www.dougv.com/2010/02/22/the-future-of-web-programming-from-artisan-to-assembly-line/" rel="bookmark">The Future Of Web Programming: From Artisan To Assembly Line</a> (15.3)</li>
				<li><a href="https://www.dougv.com/2010/03/22/a-beginning-entrepreneurs-guide-to-pricing-part-2-how-price-conveys-value/" rel="bookmark">A Beginning Entrepreneur&#039;s Guide To Pricing, Part 2: How Price Conveys Value</a> (14.8)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.
	</div>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.goodreads.com/book/show/7005066"><img class="alignleft" style="border: 0pt none;" src="http://photo.goodreads.com/books/1275841908m/7005066.jpg" alt="Free: The Future of a Radical Price" width="98" border="0" />Free: The Future of a Radical Price</a> by <a href="http://www.goodreads.com/author/show/1756">Chris Anderson</a></p>
<p>My rating: <a href="http://www.goodreads.com/review/show/102646918">3 of 5 stars</a></p>
<p>Reading Free: The Future of a Radical Price reminded me, in many ways, of  <a href="http://www.dougv.org/2011/07/review-grand-design.html">The Grand Design</a>.</p>
<p>To understand the universe on the quantum level, you have to embrace understandings and facts that seem ludicrous at human scales. That is, that we have free will; that things cannot be in the same place at the same time; that time progresses at one speed and forward only, are all convenient and explicit truths for our day-to-day existence. But at the subatomic level, that&#8217;s not how things work; not at all.</p>
<p>Anderson&#8217;s arguments about Free &#8212; that is, <em>gratis</em> and <em>libre</em> &#8212; are presented in the same sense, if not quite as well or explicitly.</p>
<p>Free does a fine job of explaining the mechanics of how things can be free on the Web: namely, per-unit / per-user costs are so low, they might as well be considered nothing.</p>
<p>He also does a good job of explaining the obvious money-making models applied successfully so far: advertising, freemium (basic service is free; premium service costs money) and non-monetary / indirect recompense, such as an increase in reputation / marketing of ancillary products, such as concerts and merchandise for musicians or speaking engagements and consultations for professionals.</p>
<p><span id="more-3921"></span>Probably the most valuable lesson Anderson&#8217;s book provides is that in the information economy, copies cost nothing.</p>
<p>Certainly, the physical cost of the copy is so close to nothing, it might as well be nothing; but Anderson also suggests that the lost &#8220;opportunity cost&#8221; of not selling that record or book or software is significantly overstated, since there&#8217;s a good chance they wouldn&#8217;t have been purchased in the first place, and that the auxiliary benefits of spreading a product far and wide outweigh the loss from sales.</p>
<p>Speaking as someone who has pirated content he probably would have purchased if he couldn&#8217;t get it for free, I&#8217;d call that argument, on its face, pretty spurious.</p>
<p>But it makes perfect sense in view of the base assertion that digital content is going to be stolen, because it&#8217;s so easy and the costs / consequences are virtually zero. So don&#8217;t put all your effort into preventing theft (but don&#8217;t make it completely easy, either); put most of your effort into monetizing your soon-to-be-widespread content.</p>
<p>The reason I can&#8217;t give Anderson full credit here is because for someone who so consistently and readily acknowledges that there&#8217;s two groups of understanding when it comes to Free &#8212; the over-30 crowd, which can&#8217;t break free of the &#8220;there&#8217;s no such thing as a free lunch&#8221; model; and the under-30 crowd, which can&#8217;t understand copyright or intellectual property to save its life &#8212; he sure does a poor job of satiating each others&#8217; curiosity.</p>
<p>It&#8217;s one thing to relate the obvious, which is about half of Anderson&#8217;s book. It&#8217;s another to provide real-life examples of how Free is being monetized, which Anderson does via several sidebars.</p>
<p>What this book lacks is what it needed most: its own version of M-theory, to explain how and why Free is the only model that makes sense here. That is, he went about presenting the information all wrong.</p>
<p>It should have been less anecdotal and more theoretical proof. Had Free set out with a statement of the &#8220;rules of the digital economy,&#8221; then proceeded to address those rules in order with interlocking and supporting truths, a much more useful book would have been produced.</p>
<p>As it is, Free tells us what we already know, and does little to predict what comes next. It suffices as an introduction to the idea of the economics of the 21st century, but it&#8217;s no road map.</p>
<p><a href="http://www.goodreads.com/review/show/102646918">View all my reviews</a></p>
<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/04/26/on-facebooks-new-features-privacy-and-the-near-future-of-the-web/" rel="bookmark">On Facebook&#8217;s New Features, Privacy And The Near Future Of The Web</a> (16.9)</li>
				<li><a href="https://www.dougv.com/2010/02/22/the-future-of-web-programming-from-artisan-to-assembly-line/" rel="bookmark">The Future Of Web Programming: From Artisan To Assembly Line</a> (15.3)</li>
				<li><a href="https://www.dougv.com/2010/03/22/a-beginning-entrepreneurs-guide-to-pricing-part-2-how-price-conveys-value/" rel="bookmark">A Beginning Entrepreneur&#039;s Guide To Pricing, Part 2: How Price Conveys Value</a> (14.8)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.</p>
	</div>

	Tags: <a href="https://www.dougv.com/tag/book-reviews/" title="book reviews" rel="tag">book reviews</a>, <a href="https://www.dougv.com/tag/brand-identity/" title="brands / identity" rel="tag">brands / identity</a>, <a href="https://www.dougv.com/tag/copyright/" title="copyright" rel="tag">copyright</a>, <a href="https://www.dougv.com/tag/crowdsourcing/" title="crowdsourcing" rel="tag">crowdsourcing</a>, <a href="https://www.dougv.com/tag/ecommerce/" title="ecommerce" rel="tag">ecommerce</a>, <a href="https://www.dougv.com/tag/ethics/" title="ethics" rel="tag">ethics</a>, <a href="https://www.dougv.com/tag/marketing/" title="marketing" rel="tag">marketing</a>, <a href="https://www.dougv.com/tag/pricing/" title="pricing" rel="tag">pricing</a>, <a href="https://www.dougv.com/tag/privacy/" title="privacy" rel="tag">privacy</a>, <a href="https://www.dougv.com/tag/reputation/" title="reputation" rel="tag">reputation</a><br />
]]></content:encoded>
			<wfw:commentRss>https://www.dougv.com/2011/08/05/review-free-the-future-of-a-radical-price/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New England GiveCamp 2011: What A Weekend!</title>
		<link>https://www.dougv.com/2011/05/03/new-england-givecamp-2011-what-a-weekend/</link>
		<comments>https://www.dougv.com/2011/05/03/new-england-givecamp-2011-what-a-weekend/#comments</comments>
		<pubDate>Tue, 03 May 2011 22:40:04 +0000</pubDate>
		<dc:creator>Doug Vanderweide</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Transact-SQL]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[GiveCamp]]></category>
		<category><![CDATA[GoDaddy]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[Jim O'Neil]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.dougv.com/?p=3849</guid>
		<description><![CDATA[New England GiveCamp 2011 was a great experience! Here's how the weekend went for my team.<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/06/10/at-new-england-givecamp-this-weekend/" rel="bookmark">At New England GiveCamp This Weekend</a> (30.9)</li>
				<li><a href="https://www.dougv.com/2010/06/16/new-england-givecamp-2010-what-a-great-experience/" rel="bookmark">New England GiveCamp 2010: What A Great Experience</a> (21.7)</li>
				<li><a href="https://www.dougv.com/2010/05/13/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010/" rel="bookmark">Designers And Developers: Donate Your Time, Talent At New England GiveCamp, June 11-13, 2010</a> (21.1)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.
	</div>
]]></description>
			<content:encoded><![CDATA[<p>Last weekend was <a href="http://newenglandgivecamp.org/" target="_blank">New England GiveCamp</a> <a href="http://newenglandgivecamp.org/category/give-camp-2011/" target="_blank">2011</a>, in which 100+ developers, designers and other volunteers gathered to donate time and skills to some 30 charities who needed IT help.</p>
<p>This year, I was project lead for <a href="http://www.alexsteamfoundation.com/" target="_blank"><strong>Alex&#8217;s Team Foundation</strong></a>, based in Andover, Mass. Our team was <a href="https://twitter.com/#!/saush11" target="_blank"><strong>Saurabh Moondhra</strong></a> and <a href="http://dirigosoftwaresolutions.com" target="_blank"><strong>William Wade</strong></a>, both experienced ASP.NET developers.</p>
<p>Alex&#8217;s Team Foundation, named after 16-year-old Alex Miliotis, who passed away from leukemia in 2002, raises money to support nurses and other oncology professionals, and supports youth sports. The foundation is largely the labors of <strong>Patti Rae Miliotis</strong>, Alex&#8217;s mother, and a handful of reliable volunteers. Like every small nonprofit, Alex&#8217;s Team doesn&#8217;t have a lot of money.</p>
<div id="attachment_3853" class="wp-caption alignnone" style="width: 710px"><img class="size-full wp-image-3853" title="Alex's Team Foundation at New England GiveCamp 2011" src="http://www.dougv.com/wp-content/uploads/2011/05/negc2011_08.png" alt="Alex's Team Foundation at New England GiveCamp 2011" width="700" height="245" /><p class="wp-caption-text">From the right to left: William Wade, Doug Vanderweide, Saurabh Moondhra and Patti Rae Miliotis of Alex&#39;s Team Foundation. The lady with her feet up is Deanna Lohnes, who worked on another project; the woman in green, whose name I do not know, was her charity&#39;s contact person.</p></div>
<p>Like every other leader of a small nonprofit, Patti is pulled in a lot of different directions and has all she can do to keep track of the people with whom she comes in contact, nonetheless all the donations she gets. Patti also hosts a few events every year. She basically needs a way to keep track of who attends those events or otherwise supports her organization, and to mail merge thank-you notes.</p>
<p>So that was the project I led this weekend: Converting a bunch of data stored in (of course!) Excel spreadsheets into a more relational database, with the ability to export that data in order to mail merge thank-you and fundraising letters.</p>
<p><span id="more-3849"></span></p>
<h3>CiviCRM: Too Much, Too Late</h3>
<p>At first, I thought we could use <a href="http://civicrm.org/" target="_blank">CiviCRM</a>, which is a Joomla / Drupal extension to manage membership, events, capital campaigns, email lists and the like.</p>
<p>The primary benefit in it, to my thinking, was that it does most of what Patti needed done; so, if she could use it, most of the work would already be done. That would allow us not only to import her spreadsheets, but also pay some attention to re-skinning the foundation&#8217;s current Web site (which is sorely needed).</p>
<p>CiviCRM&#8217;s biggest drawback is a huge learning curve. It is not easy to understand out of the box, especially if someone doesn&#8217;t have prior experience with customer relation management software. That was Patti&#8217;s problem: It was too daunting, much like the system she had tried previously.</p>
<p>So our task played directly to our strengths: Make an easy-to-use contact database on the Web, which could also track donations and event registrations.</p>
<h3>Friday: Three Ways To Skin A Cat</h3>
<p>Patti asked that we use Access to make her database, since she has some experience with it. Unfortunately, nobody on our team knew much about Access, and at least two of us have had negative experiences with it.</p>
<p>At last year&#8217;s GiveCamp, William wound up having to become an on-the-spot Access developer, and it left something of a sour taste. I&#8217;ve never had much success building standalone Access databases, largely because I find its visual query and form designers extremely limiting. Saurabh said he had little to no experience with Access.</p>
<p>The one thing we all knew was <a href="http://www.asp.net/web-forms" target="_blank">ASP.NET Web Forms</a>. Well, to be specific, we knew three different versions of ASP.NET Web Forms. Saurabh programs in C#. William and I prefer VB.NET. William likes using <a href="http://msdn.microsoft.com/en-us/netframework/aa904594" target="_blank">Linq</a>; I prefer old-school stored procedures; Saurabh likes inline SQL statements.</p>
<p>The good thing in that is, an ASP.NET Web application doesn&#8217;t need to run under just one language, and so long as the connections and queries are good, you can mix and match database layers to your hearts&#8217; content.</p>
<p>So we settled in to design a database schema that could record contacts, donations and events. That consumed most of Friday night&#8217;s efforts. Here&#8217;s how it looked on the whiteboard. <em>(Saurabh took this with his cell phone camera. Click it for full-size, which is easier to read.)</em></p>
<p><a href="http://www.dougv.com/wp-content/uploads/2011/05/Photo_CB6DA206-0E0E-C34E-DADC-2CD1B7D8C086.jpg"><img class="alignnone size-large wp-image-3858" title="Our database schema" src="http://www.dougv.com/wp-content/uploads/2011/05/Photo_CB6DA206-0E0E-C34E-DADC-2CD1B7D8C086-728x545.jpg" alt="Our database schema" width="728" height="545" /></a></p>
<h3>Saturday: Tackling The Obstacles</h3>
<p>Saturday started with a lot of little hiccups.</p>
<p><a href="http://discountasp.net/" target="_blank">DiscountASP.NET</a> very kindly donated the Web hosting for our application. However, they require a domain name in order to host a site, and wouldn&#8217;t donate that. Because we weren&#8217;t redesigning the Alex&#8217;s Team site, which needed to remain on its current server, we couldn&#8217;t use the one domain name Patti had. So I popped on over to GoDaddy and bought a special domain for the occasion.</p>
<p>With a domain in hand, we could go ahead and create our application. Except that DiscountASP.NET, which would also donate a SQL Server database, has a separate ordering process for add-on services, which meant we would be delayed for several hours while we waited for the database to be set up.</p>
<p>Since our entire application was basically just a GUI to a relational database, we really couldn&#8217;t get much done without a database. So I tried to use one of my free GoDaddy Web hosting credits to set up service sufficient to get us started.</p>
<p>Unfortunately, I couldn&#8217;t use the newly registered domain to access any free service, because I guess the registration was too new; also, all the other domains I have registered through GoDaddy point to something, so I couldn&#8217;t use one of those.</p>
<p>Thankfully, GoDaddy will sell Web hosting for $8 for one month without need for a contract, so I just went ahead with that; and within 30 minutes, we were able to build our database and start making forms.</p>
<div class="aside">For the record, DiscountASP.NET came through for us completely by early Saturday afternoon. It was only my panic, lack of timely preparation / organization and impatience that made me use GoDaddy. This application will soon be moved to DiscountASP.NET, where it will permanently reside. I&#8217;ve used DiscountASP.NET for Web hosting in the past and in terms of features and reliability, they simply cannot be outdone.</div>
<ul>
<li>I didn&#8217;t pre-install Visual Studio on my crappy laptop; that took two hours out of Saturday morning. A new laptop will definitely be in the offing for next year.</li>
<li>While waiting for that install to finish, I went on a wild goose chase for a convenience store in Cambridge. Suffice it to say, the one nearest to NERD is a 7-Eleven about a half-mile away; but I wound up hanging around for about 45 minutes outside <a href="http://store.thecoop.com/" target="_blank">the Coop</a>, waiting for it to open, because I was mistakenly led to believe it sold tobacco. (I fell off the no-smoking wagon for the weekend; I knew there would be some stress, and nicotine definitely keeps me calm.) So what should have been a 20-minute break turned in to an hour and a half.</li>
</ul>
<div id="attachment_3862" class="wp-caption alignnone" style="width: 717px"><img class="size-full wp-image-3862" title="Saurabh accuses me of being high. It's not an unreasonable assumption." src="http://www.dougv.com/wp-content/uploads/2011/05/tweet01.jpg" alt="Saurabh accuses me of being high. It's not an unreasonable assumption." width="707" height="378" /><p class="wp-caption-text">I was gone so long in search of smokes, Saurabh accused me of going to get stoned. It was a reasonably accurate portrayal.</p></div>
<ul>
<li>Somewhere around 1 pm, I mistakenly thought we would have to work in ASP.NET 2.0 in order to resolve some namespace and other issues, and I communicated as much to my team. This led them to delete what they had made to that point. Within 5 minutes, William had corrected my error. Saurabh was nonplussed.</li>
<li>After dinner, we were ready to start integrating our files. Non unexpectedly, we ran into a number of small issues. It took a little while to get William&#8217;s files working on my laptop, but try as we might, we just couldn&#8217;t get Saurabh&#8217;s C#-based solution to work. So he wound up converting them to VB.NET. I went back to the hotel to finish my part of the solution.</li>
</ul>
<p>On Saturday night, I gave a quick overview on WordPress for the non-profits that I fear was a real snoozer. (Memo to self: Never host a seminar after dinner.) During that, I won my choice of a number of software prizes; but what was left available in the first-come, first-served prize pool didn&#8217;t really thrill me.</p>
<p>William had his eye on a copy of <a href="http://www.devexpress.com/Subscriptions/DXperience/editionEnt.xml" target="_blank">DevExpress DXPerience Enterprise</a>, a bunch of .NET controls, worth about $1,300 on the retail market. I seldom program in Windows and he does all the time, so I transferred my winnings to him.</p>
<h3>A Word About The Royal Sonesta</h3>
<p>While many GiveCampers &#8212; William and Saurabh among them &#8212; spent the night at NERD, I stayed at a hotel, because I&#8217;m too old and fussy to be sleeping on hard floors. Also, I&#8217;m in Cambridge, which is quite a treat for me, and I wanted a chance to spend at least a little time in the city each night, even if it was just walking a half-mile to the hotel and having a drink or two in the lounge. So I opted to stay at the <a href="http://www.sonesta.com/boston/" target="_blank">Royal Sonesta</a>, which had the best rates.</p>
<p><iframe src="http://maps.google.com/maps/ms?hl=&amp;ie=UTF8&amp;msa=0&amp;msid=208401827101352337890.0004a2659aa672a475969&amp;ll=42.364727,-71.085362&amp;spn=0.011098,0.031242&amp;z=15&amp;output=embed" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="728" height="350"></iframe><br />
<small>View <a style="color: #0000ff; text-align: left;" href="http://maps.google.com/maps/ms?hl=&amp;ie=UTF8&amp;msa=0&amp;msid=208401827101352337890.0004a2659aa672a475969&amp;ll=42.364727,-71.085362&amp;spn=0.011098,0.031242&amp;z=15&amp;source=embed">New England GiveCamp 2011</a> in a larger map</small></p>
<p>This simple plot was foiled, however, by the Royal Sonesta&#8217;s unfathomable renting out of the first-floor lounge on both Friday and Saturday night. On Friday, I was able to get a single beer, but it felt very strange crashing a private event and I wound up calling it a night early. On Saturday, they just turned me away, period, because a wedding reception was being held there.</p>
<p>Also, while the Sonesta loudly advertised its local shuttle service, they require you to register for it; and nobody saw fit to remind me of it at the concierge desk, when I asked for a shuttle schedule. As a result, I stood outside for a half-hour on Friday night, waiting for a shuttle that never showed up.</p>
<p>Overall, the Sonesta&#8217;s staff was courteous and friendly; especially the front desk, porters and valets. But the concierges were inexplicably surly, brusque, unapologetic and unhelpful.</p>
<p>So while the price was great ($144 per night, amazingly good for Cambridge), the hotel was clean and the room / amenities nice, I cannot recommend the place. I mean, what kind of hotel closes its lounge to guests? And has concierge service that basically looks to do as little as possible, and that with a frown on its face?</p>
<h3>Sunday: It All Comes Together, Like Magic</h3>
<p>The great benefit of having competent, skilled and motivated team members is that their sense of urgency and their ability to adapt and overcome adversity are both fine-tuned. That was certainly the case with William and Saurabh; they were pretty much done by Sunday morning, and all we had to do was take one more crack at getting all three parts to play nicely with one another.</p>
<p>I let that task fall to William, and he did an extraordinary job getting everything to work; certainly, a much better job than I would have done. Meanwhile, Saurabh settled in to help Patti make some upgrades to her Web site, notably in getting her Paypal donation button working again, adding in some alternative donation options and adding Google Analytics to her site.</p>
<p>Saurabh also won an instant drawing on Sunday and scored a copy of Age of Empires III for PC. I had my heart set on winning a WiFi-enabled Kindle, which was being given away at the end of GiveCamp; but that didn&#8217;t happen.</p>
<p>Not to say we didn&#8217;t get some great swag:</p>
<ul>
<li>A full-boat copy of Microsoft Office 2010 Professional. Awesome!</li>
<li>A thumb drive. You can never have too many of those.</li>
<li>A set of jewelers&#8217; screwdrivers. Again, you can never have too many of them.</li>
<li>A screw-top sippy cup with durable straw. Which is exactly what my spill-prone self needs to have on his work desk.</li>
<li>A miniature Nerf football. Awesome stress reliever.</li>
<li>A pen and pad of paper. Again, never can have enough of either.</li>
<li>A puzzle book. Not that I had time during the weekend to mess with puzzles.</li>
<li>A GiveCamp T-shirt. I like T-shirts as mementos.</li>
</ul>
<p>During the weekend, Jim O&#8217;Neil dropped scores of additional treats on a giveaway table, many of which were O&#8217;Reilly books. I managed to get a spare puzzle book, several notepads, a <a href="http://www.amazon.com/Oracle-Language-Pocket-Reference-OReilly/dp/0596514042/" target="_blank">PL/SQL quick pocket reference</a>, <a href="http://www.amazon.com/Access-2010-Missing-Matthew-MacDonald/dp/1449382371/" target="_blank">Access 2010: the missing manual</a> and <a href="http://www.amazon.com/Microsoft®-Visual-Basic®-2010-Microsoft/dp/0735626693/" target="_blank">Visual Basic 2010 Step By Step</a>. There were a number of other books available but I was too slow to score them. However, I understand I am allowed a free ebook from O&#8217;Reilly, as well.</p>
<p>The bottom line is that we got our project done, it works, Patti seems fairly pleased with it and we had a great time this weekend. It&#8217;s definitely renewed my commitment; I&#8217;ll be a GiveCamper until I can&#8217;t do it any more.</p>
<p>All links in this post on delicious: <a href="http://www.delicious.com/dougvdotcom/new-england-givecamp-2011-what-a-weekend" target="_blank">http://www.delicious.com/dougvdotcom/new-england-givecamp-2011-what-a-weekend</a></p>
<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/06/10/at-new-england-givecamp-this-weekend/" rel="bookmark">At New England GiveCamp This Weekend</a> (30.9)</li>
				<li><a href="https://www.dougv.com/2010/06/16/new-england-givecamp-2010-what-a-great-experience/" rel="bookmark">New England GiveCamp 2010: What A Great Experience</a> (21.7)</li>
				<li><a href="https://www.dougv.com/2010/05/13/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010/" rel="bookmark">Designers And Developers: Donate Your Time, Talent At New England GiveCamp, June 11-13, 2010</a> (21.1)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.</p>
	</div>

	Tags: <a href="https://www.dougv.com/tag/crowdsourcing/" title="crowdsourcing" rel="tag">crowdsourcing</a>, <a href="https://www.dougv.com/tag/ethics/" title="ethics" rel="tag">ethics</a>, <a href="https://www.dougv.com/tag/givecamp/" title="GiveCamp" rel="tag">GiveCamp</a>, <a href="https://www.dougv.com/tag/godaddy/" title="GoDaddy" rel="tag">GoDaddy</a>, <a href="https://www.dougv.com/tag/google/" title="Google" rel="tag">Google</a>, <a href="https://www.dougv.com/tag/graphic-design/" title="graphic design" rel="tag">graphic design</a>, <a href="https://www.dougv.com/tag/jim-oneil/" title="Jim O&#039;Neil" rel="tag">Jim O&#039;Neil</a>, <a href="https://www.dougv.com/tag/marketing/" title="marketing" rel="tag">marketing</a>, <a href="https://www.dougv.com/tag/msdn/" title="MSDN" rel="tag">MSDN</a>, <a href="https://www.dougv.com/tag/visual-studio/" title="Visual Studio" rel="tag">Visual Studio</a><br />
]]></content:encoded>
			<wfw:commentRss>https://www.dougv.com/2011/05/03/new-england-givecamp-2011-what-a-weekend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designers And Developers: Donate Your Time, Talent At New England GiveCamp, June 11-13, 2010</title>
		<link>https://www.dougv.com/2010/05/13/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010/</link>
		<comments>https://www.dougv.com/2010/05/13/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010/#comments</comments>
		<pubDate>Fri, 14 May 2010 00:49:33 +0000</pubDate>
		<dc:creator>Doug Vanderweide</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Microsoft Office]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Transact-SQL]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.dougv.com/blog/?p=3150</guid>
		<description><![CDATA[One of the things I found out about at Tuesday&#8217;s MSDN Northeast Roadshow stop in Augusta is the first New England GiveCamp, June 11-13 at Microsoft&#8217;s Northeast Research and Development center in Cambridge, MA. I&#8217;m attending, and I&#8217;d urge you to do so. A GiveCamp is basically a gathering of developers, DBAs, project managers, designers [...]<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/04/14/visual-studio-2010-net-4-events-for-maine-based-developers/" rel="bookmark">Visual Studio 2010 / .NET 4 Events For Maine-Based Developers</a> (33.8)</li>
				<li><a href="https://www.dougv.com/2010/05/12/msdn-northeast-roadshow-augusta-me-may-11-2010-recap/" rel="bookmark">MSDN Northeast Roadshow, Augusta, ME, May 11, 2010 Recap</a> (17.1)</li>
				<li><a href="https://www.dougv.com/2010/04/29/live-from-the-microsoft-launch-2010-event-in-boston/" rel="bookmark">Live From The Microsoft Launch 2010 Event In Boston</a> (16.1)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.
	</div>
]]></description>
			<content:encoded><![CDATA[<p>One of the things I found out about at <a href="http://www.dougv.com/2010/05/12/msdn-northeast-roadshow-augusta-me-may-11-2010-recap/">Tuesday&#8217;s MSDN Northeast Roadshow stop in Augusta</a> is the <a href="http://newenglandgivecamp.org/about/" target="_blank">first New England GiveCamp, June 11-13</a> at <a href="http://microsoftcambridge.com/Default.aspx" target="_blank">Microsoft&#8217;s Northeast Research and Development center</a> in Cambridge, MA.</p>
<p><a href="http://newenglandgivecamp.org/" target="_blank"><img class="alignleft" title="New England GiveCamp" src="http://eventbrite-s3.s3.amazonaws.com/eventlogos/3133703/658584845.png" alt="New England GiveCamp" width="305" height="200" /></a>I&#8217;m attending, and I&#8217;d urge you to do so.</p>
<p>A <a href="http://givecamp.org/" target="_blank">GiveCamp</a> is basically a gathering of developers, DBAs, project managers, designers and other IT folks in a given place, to donate their time and skills to charitable projects.</p>
<p>In the case of the New England GiveCamp, <a href="http://newenglandgivecamp.org/the-people-youd-be-helping/" target="_blank">typical projects</a> include upgrading Access databases, or converting Excel spreadsheets to Access; integrating open-source tools, such as Joomla, Drupal and Django, into existing Web sites; adding various gizmos to and tuning up existing Web sites; and several requests to spruce up the look of various types of collateral.</p>
<p>I believe the biggest mistake you could make in deciding whether to participate is thinking that you don&#8217;t have the kind of skills needed. From what&#8217;s been said at the GiveCamp&#8217;s Web site, there&#8217;s going to be plenty to do, whether you&#8217;re <a href="http://torvalds-family.blogspot.com/" target="_blank">Linus Torvalds</a> or <a href="http://comics.com/reality_check/2000-06-05/" target="_blank">Linus Van Pelt</a>.</p>
<p>I think this goes doubly for graphic designers. Trust me, if you are an artistic person, no matter how little you think of your work, your worst effort is 10 times better than the best design ever produced by a programmer. I am speaking from extensive personal experience here. We&#8217;re the people who gave the Internet <a href="http://bancomicsans.com/main/" target="_blank">Comic Sans</a>, animated GIFs and the &lt;marquee&gt; tag, remember. Please, save us from ourselves.</p>
<p>As the Northeast GiveCamp put it, &#8220;<strong></strong>If you  have the passion, we’ll find a place for you.&#8221;</p>
<blockquote><p>In addition to the technical work on site, there are a myriad other  volunteer opportunities both before and during the event, including  registration, sponsor solicitation, organizing the development teams and  matching them to non-profit organizations, handling logistics for food  and snacks, and others we’ll discover along this journey!</p></blockquote>
<p><span id="more-3150"></span>And, of course, <a href="http://newenglandgivecamp.org/sponsors/" target="_blank">businesses can help, too</a>. The GiveCamp says they&#8217;re not so much interested in money as they are services: Donation of meals and promotional items (mugs / T-shirts) are specifically mentioned.</p>
<p>Microsoft will make sure you get fed during the event. They will also provide crash space in NERD, provided you bring your own sleeping bag / air mattress; and they have showers on site (BYO toiletries). If you don&#8217;t like that idea, NERD is very near the Kendall / MIT MBTA station.</p>
<p>The only specific demands the GiveCamp has are, if you&#8217;re providing technical help to a project, commit to doing the entire weekend; and bring your own laptop (read: any needed software, such as Visual Studio / Dreamweaver, too; how you&#8217;ll tackle the project to which you have been assigned will be determined by a conference call before the event).</p>
<p>If you can&#8217;t commit to the whole weekend, the GiveCamp could still use your help, and will work within your schedule.</p>
<p>I really do hope you consider participating. <a href="http://newenglandgivecamp.eventbrite.com/" target="_blank">Register at the GiveCamp&#8217;s EventBrite page</a>.</p>
<p>Look at it as giving back, or paying forward; either way, you&#8217;ll help people who need the help, and meet people who can help you, in turn.</p>
<p>All links in this post on delicious: <a href="http://delicious.com/dougvdotcom/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010" target="_blank">http://delicious.com/dougvdotcom/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010</a></p>
<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2010/04/14/visual-studio-2010-net-4-events-for-maine-based-developers/" rel="bookmark">Visual Studio 2010 / .NET 4 Events For Maine-Based Developers</a> (33.8)</li>
				<li><a href="https://www.dougv.com/2010/05/12/msdn-northeast-roadshow-augusta-me-may-11-2010-recap/" rel="bookmark">MSDN Northeast Roadshow, Augusta, ME, May 11, 2010 Recap</a> (17.1)</li>
				<li><a href="https://www.dougv.com/2010/04/29/live-from-the-microsoft-launch-2010-event-in-boston/" rel="bookmark">Live From The Microsoft Launch 2010 Event In Boston</a> (16.1)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.</p>
	</div>

	Tags: <a href="https://www.dougv.com/tag/crowdsourcing/" title="crowdsourcing" rel="tag">crowdsourcing</a>, <a href="https://www.dougv.com/tag/msdn/" title="MSDN" rel="tag">MSDN</a>, <a href="https://www.dougv.com/tag/visual-studio/" title="Visual Studio" rel="tag">Visual Studio</a><br />
]]></content:encoded>
			<wfw:commentRss>https://www.dougv.com/2010/05/13/designers-and-developers-donate-your-time-talent-at-new-england-give-camp-june-11-13-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An ASP.NET System To Allow Site Members To Contribute Content, Part 1: Overview</title>
		<link>https://www.dougv.com/2010/04/12/an-asp-net-system-to-allow-site-members-to-contribute-content-part-1-overview/</link>
		<comments>https://www.dougv.com/2010/04/12/an-asp-net-system-to-allow-site-members-to-contribute-content-part-1-overview/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 18:15:20 +0000</pubDate>
		<dc:creator>Doug Vanderweide</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Transact-SQL]]></category>
		<category><![CDATA[Web Forms]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[login / membership]]></category>

		<guid isPermaLink="false">http://www.dougv.com/blog/?p=2945</guid>
		<description><![CDATA[Crowdsourcing is all the rage these days, and even if you&#8217;re not managing a social media Web site, sometimes it&#8217;s helpful to accept content from end users. For example, one of my clients has a community calendar on its Web site. Since the inception of the calendar, staff time had been devoted to retyping e-mailed [...]<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2009/07/06/working-with-the-authorize-net-customer-information-manager-cim-part-1-overview/" rel="bookmark">Working With The Authorize.net Customer Information Manager (CIM), Part 1: Overview</a> (28)</li>
				<li><a href="https://www.dougv.com/2008/09/09/new-site-for-aspnet-demos-dhvrmcom/" rel="bookmark">New Site For ASP.NET Demos: dhvrm.com</a> (22.5)</li>
				<li><a href="https://www.dougv.com/2009/04/25/ludicrous-but-intriguing-a-javascript-login-system-that-hides-content-and-prevents-login-flooding/" rel="bookmark">Ludicrous But Intriguing: A JavaScript Login System That Hides Content And Prevents Login Flooding</a> (22.3)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.
	</div>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Crowdsourcing" target="_blank">Crowdsourcing</a> is all the rage these days, and even if you&#8217;re not managing a social media Web site, sometimes it&#8217;s helpful to accept content from end users.</p>
<p>For example, one of my clients has a community calendar on its Web site. Since the inception of the calendar, staff time had been devoted to retyping e-mailed and snail-mailed items into that calendar&#8217;s back end.</p>
<p>That was almost entirely wasted time, which my client rightfully wanted applied to something more profitable. My client wanted to allow staff to approve, edit or delete calendar submissions before they appeared on the site, but asked me to shift the burden of actually adding items directly onto the shoulders of site visitors.</p>
<p>Thanks to <a href="http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx" target="_blank">ASP.NET&#8217;s built-in membership system</a>, we can easily provide a simple system for allowing end users to provide content. Not only that, but thanks to <a href="http://msdn.microsoft.com/en-us/library/ms998314.aspx" target="_blank">the role-based permissions incorporated into membership</a>, we can even presort content to specific sections of the site, based on who is submitting it; grant specific users or user groups the ability to bypass an approval process; throttle contribution allowances; basically, any permission or restriction you might want to use.</p>
<div class="aside">We can similarly implement a model like this in PHP, but it does not have a built-in membership provider. I may, at some later date, describe building a PHP membership provider that is similar to the ASP.NET model, at least in terms of practical use, if not mechanically similar.</div>
<p>I am going to make a simple cancellations notification system as my demo.</p>
<p>After all, everyone wants to know if school is closed, or whether the play is still on in spite of the weather. Because canceling school, play, etc. generally comes down to a single person&#8217;s decision &#8212; or, at most, a few people &#8212; we can easily provide a system to log in, select a few options or enter a bit of text, and save everyone the time and grief such notifications otherwise take.</p>
<p>The specific features I will demo, in this and upcoming blog entries, will be:</p>
<ul>
<li>an administrative interface to add, edit and delete memberships;</li>
<li>another administrative interface to add, edit or delete membership roles (i.e., membership groups), and to assign members to those groups, as well as to assign users to specific schools, organizations, etc.;</li>
<li>an administrative interface to approve, edit or delete cancellation notices;</li>
<li>a private form to allow membership to post cancellations for the schools, organizations, etc. with which they have been associated;</li>
<li>a public view of cancellations that have been approved for viewing.</li>
</ul>
<p><span id="more-2945"></span>For the purpose of this demo, we&#8217;ll need to make some basic assumptions:</p>
<ul>
<li>I will be using <a href="http://www.microsoft.com/express/database/" target="_blank">SQL Server</a>, the <a href="http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx" target="_blank">SqlMembershipProvider</a> and <a href="http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx" target="_blank">SqlRoleProvider</a>. You could use <a href="http://www.4guysfromrolla.com/articles/010307-1.aspx" target="_blank">Access</a>, <a href="http://msdn.microsoft.com/en-us/library/system.web.security.activedirectorymembershipprovider.aspx" target="_blank">Active Directory</a> or pretty much any other <a href="http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider%28v=VS.90%29.aspx" target="_blank">MembershipProvider</a>. In terms of managing membership, whichever provider you use should be transparent; that is, you should be able to use the code I provide with any of the membership providers. In terms of storing and retrieving the cancellation data itself, there will be differences between SQL Server and Access queries; there will be significant differences if you use XML or some other data store.</li>
<li>Expanding upon the point above, I will be using <a href="http://msdn.microsoft.com/en-us/library/ms190782%28v=SQL.100%29.aspx" target="_blank">stored procedures</a>. You can used text-based commands if you prefer. It shouldn&#8217;t be all that hard to convert my stored procedures into text commands. I could have written this in LINQ but I&#8217;m not all that sure about its future, and again I want to remove complexity from this tutorial.</li>
<li>This will be written in VB.NET. It shouldn&#8217;t be that difficult to convert it to C# if you prefer that language, and for what it&#8217;s worth, there&#8217;s nothing preventing you from using C# and Visual Basic.NET in the same ASP.NET application.</li>
<li>I&#8217;m doing this in <a href="http://www.asp.net/web-forms/" target="_blank">Web forms</a>. I could have gone <a href="http://www.asp.net/mVC/" target="_blank">the MVC route</a>, but I fear that may add a layer of complexity that wouldn&#8217;t help new programmers, who are my primary audience. (<a href="http://www.asp.net/learn/videos/video-9639.aspx" target="_blank">Microsoft provides an excellent compare-and-contrast video of Web forms vs. MVC on the ASP.NET Web site</a>. While the video doesn&#8217;t favor one over the other, I would urge Web programmers who want to go big time to learn the MVC model, as it tends to be the favored Web development methodology at most big design houses / Web sites.)</li>
</ul>
<h4>The Basics Of ASP.NET Membership: Users and Roles</h4>
<p>First, let&#8217;s take a quick look at the parts of ASP.NET&#8217;s membership model that matter to us most. For a complete overview, <a href="http://www.4guysfromrolla.com/articles/120705-1.aspx" target="_blank">check out the multipart series on ASP.NET membership at 4guysfromrolla.com</a>.</p>
<p>ASP.NET&#8217;s membership model basically works on two tiers: users and roles (which I will also call <em>groups</em>), where users can belong to multiple roles.</p>
<div class="aside"><a href="http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx" target="_blank">ASP.NET also has support for user profiles</a>, which can store user-specific information, such as names, addresses, phone numbers, etc., as well as site customization settings. This application doesn&#8217;t need that information, so I won&#8217;t get into it here.</div>
<p>In other words, a user login is the basic unit of membership in the ASP.NET membership model. It represents a single entity (e.g., a person). Each user login can belong to zero, one or several roles; and we can grant permission to do something on the site via either to a specific login (user), or the roles to which that login (user) belongs.</p>
<p>In the case of this application, we&#8217;re going to manage permissions both ways.</p>
<p>We are going to have four roles:</p>
<ul>
<li>Public, who can only view approved reports;</li>
<li>Reporter, who have access to the form that allows reporting cancellations, but whose reports must be approved;</li>
<li>SuperReporter, who have the same access as members of the Reporter role, but don&#8217;t need approval (that is, their reports go &#8220;live&#8221; once published); and</li>
<li>Admin, who have the ability to add, edit or delete any cancellation report, as well as manage the membership of the Reporter and SuperReporter roles.</li>
</ul>
<p>Each member of the Reporter and SuperReporter roles (groups) will be assigned at least one organization or school for which they can report a cancellation. Some will be assigned to multiple organizations / schools.</p>
<p>There aren&#8217;t many built-in tools for membership management, at least in terms of assigning people to roles, activating / deactivating end users, etc. We&#8217;ll have to build these tools ourselves, which is a significant part of the reason I&#8217;m breaking this project out over several blog posts.</p>
<p>The first code entry will, therefore, be that part of the project: A back end that allows you to create users, assign them to groups, clear lockouts when users exceed the maximum number of login tries, etc.</p>
<p>We also need to have a master list of organizations for which we will accept cancellations, and a way to assign users to those organizations. The next post will cover that, too.</p>
<p>All links in this post on delicious.com: <a href="http://delicious.com/dougvdotcom/an-asp-net-system-to-allow-site-members-to-contribute-content-part-1-overview" target="_blank">http://delicious.com/dougvdotcom/an-asp-net-system-to-allow-site-members-to-contribute-content-part-1-overview</a></p>
<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2009/07/06/working-with-the-authorize-net-customer-information-manager-cim-part-1-overview/" rel="bookmark">Working With The Authorize.net Customer Information Manager (CIM), Part 1: Overview</a> (28)</li>
				<li><a href="https://www.dougv.com/2008/09/09/new-site-for-aspnet-demos-dhvrmcom/" rel="bookmark">New Site For ASP.NET Demos: dhvrm.com</a> (22.5)</li>
				<li><a href="https://www.dougv.com/2009/04/25/ludicrous-but-intriguing-a-javascript-login-system-that-hides-content-and-prevents-login-flooding/" rel="bookmark">Ludicrous But Intriguing: A JavaScript Login System That Hides Content And Prevents Login Flooding</a> (22.3)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.</p>
	</div>

	Tags: <a href="https://www.dougv.com/tag/crowdsourcing/" title="crowdsourcing" rel="tag">crowdsourcing</a>, <a href="https://www.dougv.com/tag/login/" title="login / membership" rel="tag">login / membership</a><br />
]]></content:encoded>
			<wfw:commentRss>https://www.dougv.com/2010/04/12/an-asp-net-system-to-allow-site-members-to-contribute-content-part-1-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Time For Facebook &#8211; Or, At Least, Someone &#8211; To Vet Third-Party Applications</title>
		<link>https://www.dougv.com/2010/03/15/its-time-for-facebook-or-at-least-someone-to-vet-third-party-applications/</link>
		<comments>https://www.dougv.com/2010/03/15/its-time-for-facebook-or-at-least-someone-to-vet-third-party-applications/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 00:33:50 +0000</pubDate>
		<dc:creator>Doug Vanderweide</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Customer Relations]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Facebook API]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[crowdsourcing]]></category>
		<category><![CDATA[elegance]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MySpace]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[reputation]]></category>
		<category><![CDATA[social engineering]]></category>

		<guid isPermaLink="false">http://www.dougv.com/blog/?p=2883</guid>
		<description><![CDATA[It&#8217;s no mystery to anyone who&#8217;s been on Facebook for more than a week that one of its biggest boons &#8212; and, in the finest Zen tradition, one of its most nagging banes &#8212; is the plethora of third-party applications that leverage its data. Virtually all the value in Facebook is crowdsourced &#8212; that is, [...]<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2009/03/05/msdn-roadshow-in-augusta-march-19-well-worth-the-time/" rel="bookmark">MSDN Roadshow In Augusta, March 19: Well Worth The Time</a> (12)</li>
				<li><a href="https://www.dougv.com/2007/03/12/displaying-the-correct-time-for-world-cities-with-ajax-javascript-dom/" rel="bookmark">Displaying The Correct Time For World Cities  With AJAX / JavaScript / DOM</a> (11.8)</li>
				<li><a href="https://www.dougv.com/2007/01/27/displaying-an-image-on-a-web-page-based-upon-the-current-time-with-javascript-dom/" rel="bookmark">Displaying An Image On A Web Page Based Upon The Current Time With JavaScript / DOM</a> (11.6)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.
	</div>
]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s no mystery to anyone who&#8217;s been on <a href="http://www.facebook.com/pages/Doug-Vanderweide/291513379030" target="_blank">Facebook</a> for more than a week that one of its biggest boons &#8212; and, in the finest Zen tradition, one of its most nagging banes &#8212; is the plethora of third-party applications that leverage its data.</p>
<p>Virtually all the value in Facebook is <a href="http://en.wikipedia.org/wiki/Crowdsourcing" target="_blank">crowdsourced</a> &#8212; that is, users generate all the content, they create all the connections, they drive interest in whatever direction it may flow, they create scores of <a href="http://en.wikipedia.org/wiki/Internet_meme" target="_blank">memes</a> every hour.</p>
<p>Since <a href="http://dougv.blogspot.com/2010/02/facebook-will-never-charge-basic-user.html" target="_blank">Facebook&#8217;s primary business model</a> is driven by collecting data about usage, this means that opening its use to the creators of new social media tools makes tremendous success.</p>
<p>Why bother taking Microsoft&#8217;s old-school tack &#8212; create a standard, then ride it into the grave &#8212; when, instead, you can provide users, and let others give them reasons to stick with you? Why bother even taking Google&#8217;s approach &#8212; create lots and lots of things, in the hope one of them proves popular &#8212; when someone else can assume all the risk, presenting you with the opportunity to buy or duplicate his success with your framework?</p>
<p>How many people, do you suppose, would have stopped using Facebook after a few days, had it not been for <a href="http://www.zynga.com/games/index.php?game=mafiawars" target="_blank">Mafia Wars</a>, <a href="http://www.farmville.com/" target="_blank">Farmville</a> or Bejeweled? That&#8217;s my point.</p>
<p>But every day, there&#8217;s also a new crop of the outright obnoxious third-party applications that promise to do the exact opposite: Drive users out for fear of their privacy and security.</p>
<p>Take, for example, the recent spate of &#8220;see who&#8217;s stalking your profile&#8221; applications. <a href="http://www.theregister.co.uk/2010/03/15/facebook_profile_stalk_scam/" target="_blank">As The Register notes</a>, all of them are at best cash-for-clicks scams; at worse, open invitations to load malware onto the computers of tens of thousands of unsophisticated users.</p>
<p>I&#8217;d like to expand upon a central tenet of <a href="http://countermeasures.trendmicro.eu/whos-checking-your-facebook-profile-scammers/" target="_blank">a blog post offered by Rik Furguson of Trend Micro</a>, from which The Register drew its article: That it&#8217;s high time Facebook employed some sort of vetting process for third-party applications.<br />
<span id="more-2883"></span></p>
<h3>The Typical Facebook User</h3>
<p>I consider myself a typical Facebook user, at least in terms of demographic: At 42 years old, about a third of my 220 or so friends are former high school and college classmates; another quarter are clients, former co-workers and work-related acquaintances; current friends and family members, friends of friends, casual friends and people I don&#8217;t quite know how I know round out the rest.</p>
<p>I&#8217;m different in that I only use a few applications, mostly related to integrating my social media sources (<a href="http://twitter.com/dougvdotcom" target="_blank">Twitter</a>, <a href="http://www.myspace.com/dougvdotcom" target="_blank">MySpace</a>, <a href="http://www.linkedin.com/profile?viewProfile=&amp;key=14266607&amp;trk=tab_pro#" target="_blank">LinkedIn</a>, etc.) and the client for the <a href="http://www.motorola.com/Consumers/US-EN/Consumer-Product-and-Services/Mobile-Phones/Motorola-DROID-US-EN" target="_blank">Motorola Droid</a> (although, in all honesty, the <a href="http://www.facebook.com/apps/application.php?id=74769995908" target="_blank">Android client for Facebook</a> is nearly useless; I generally resort to the Droid&#8217;s Web browser, and <a href="http://touch.facebook.com" target="_blank">touch.facebook.com</a> [vs. <a href="http://m.facebook.com" target="_blank">m.facebook.com</a>]).</p>
<p>I once used more, but the difficulty of sorting wheat from chaff in the news feed, coupled with the fact that I don&#8217;t want my name and face plastered all over Facebook to promote people and things I probably don&#8217;t actually even know about, nonetheless care to promote, means it&#8217;s rare that I use anything other than the core functionality of Facebook.</p>
<p>The biggest difference between most of my friends and myself is that I understand how Web-based software, viruses and malware work. And I can read the <a href="http://wiki.developers.facebook.com/index.php/Main_Page" target="_blank">Facebook API documentation</a> and understand, from that, what is in the realm of possibilities for third-party applications.</p>
<p>(That my friends might not know much about these things is not a slight against them at all. I have but a passing understanding of how a car works. That does not, and should not, stop me from driving.)</p>
<p>Several of my Facebook friends are the type who retransmit fake <a href="http://www.missingkids.com/missingkids/servlet/AmberServlet" target="_blank">Amber Alerts</a> and <a href="http://www.snopes.com/computer/internet/hackermail.asp" target="_blank">warnings against adding friends who are hackers /viruses</a>.  (The act of adding a friend on Facebook cannot give you a virus or expose your Facebook account to a hacker; however, if you click links in a friend&#8217;s profile, that could compromise your PC or Facebook account).</p>
<p>Most of my Facebook friends are Web <a href="http://dictionary.reference.com/browse/dilettante" target="_blank">dilettantes</a> (which I truly do not mean to sound as pejorative as it does), susceptible to believing whatever they are told about the Internet. And almost all are, to large degree, very concerned about privacy &#8212; even though, as the book <a href="http://www.amazon.com/gp/product/0470743085?ie=UTF8&amp;tag=dhvrm-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470743085">&#8220;Trust Agents&#8221;</a> notes, there is no longer such a thing as &#8220;privacy&#8221; &#8212; at least, not in the sense of being able to maintain personal secrets.</p>
<p>It doesn&#8217;t take much to exploit these kinds of users. Basically, you employ the same tried-and-true techniques politicians have used for centuries to exploit people. As <a href="http://en.wikipedia.org/wiki/H._L._Mencken" target="_blank">H.L. Mencken</a> put it:</p>
<blockquote><p>&#8230; the whole aim &#8230; is to keep the  populace alarmed (and hence clamorous to be led to safety) by menacing  it with an endless series of hobgoblins, most of them imaginary.</p></blockquote>
<p>Given the concern people have, reasonable or not, about Internet privacy; given their limited knowledge about how computers and the Internet work; and given the natural tendency, when in doubt, to err toward safety and security, the way the average Facebook user acts on Facebook tends to be reasonable and appropriate.</p>
<p>A further complicating factor is the way trust works. If one of my friends, whom I respect and trust, does something dumb by installing a rogue app, in the absence of evidence proving what he did was dumb, I don&#8217;t tend to assume what he did was dumb. Most people tend to assume that their friends are not doing dangerous or stupid things. (Witness any case of murder, when inevitably, someone claims, &#8220;he wouldn&#8217;t hurt a fly.&#8221;)</p>
<p>This is especially true if many friends are doing the same thing. If 10 of my friends install an application, and it appears to do something I find neat or useful, my first inclination is not to vet the application; it&#8217;s to join the party.</p>
<p>In other words, <a href="http://www.dougv.com/2008/08/11/whats-wrong-with-yahoo-answers-part-1-boards-will-be-boards/">as I&#8217;ve said before, you don&#8217;t blame chickens for being eaten</a>. You also don&#8217;t blame foxes (i.e., Facebook malware developers) for eating chickens. Both are doing what they are supposed to do. Instead, you blame the watchdog (i.e., Facebook) that was supposed to be keeping them apart.</p>
<h3>A Henhouse With A Foxhole Built In</h3>
<p>Herein lies the problem with the <a href="http://developers.facebook.com/" target="_blank">Facebook Platform</a>, as Facebook calls its <a href="http://en.wikipedia.org/wiki/Application_programming_interface" target="_blank">API</a> and related tools, and the conundrum Facebook faces in what to do about rogue applications.</p>
<p>On the one hand, it affords Facebook to leave the API open to all potential application developers and to allow applications to publish without vetting.</p>
<p>Again, the object is to make their data as useful and valuable to as many people as possible. By allowing open development, Facebook increases its utility to users. That, in turn, keeps it to the fore of a communication channel and tool for researching human behavior. And that is worth a pile of money in and of itself.</p>
<p>That&#8217;s before considering the significant human resources costs involved in vetting software, even if it&#8217;s from the most basic of standpoints (say, verifying an application is not malware-based and does not misrepresent its purpose / what it can do).</p>
<p>On the other hand, Facebook&#8217;s current policies &#8212; a collection of half-measures and reliance on end users to exercise caution and discretion &#8212; clearly are not working.</p>
<p>As it stands now, anyone can obtain an API key and make anything he likes. An application won&#8217;t be listed in the public directory of Facebook apps until it has at least 20 users, but that&#8217;s no great feat to overcome, especially when there&#8217;s nothing stopping someone from erecting 20 <a href="http://en.wikipedia.org/wiki/Sockpuppet_%28Internet%29" target="_blank">sockpuppet</a> accounts (or just lining up 20 meatpuppets).</p>
<p>To Facebook&#8217;s credit, it tends to bring down the <a href="http://www.urbandictionary.com/define.php?term=banhammer" target="_blank">banhammer</a> hard and swiftly against crooked applications. Unfortunately, as Ferguson notes, that action requires some degree of victimization to take place first, and this is the Internet &#8212; where memes are born and die in the blink of an eye.</p>
<p>I also note that Facebook has a user rating system for applications that are publicly listed. Unfortunately, it&#8217;s not nearly loud enough, and most users simply ignore it in the process of installing an application.</p>
<p>The bigger problem, of course, is that Facebook can&#8217;t assume its user base can protect itself from malware. In fairness, Facebook has never declared that to be their actual opinion; it&#8217;s just what happens as a practical matter under current policies.</p>
<p>But also as a practical matter, most Facebook users lack the sophistication to spot a potentially harmful application. Of those who might be able spot garbage, a significant majority can be snookered, by programming sleight of hand, into allowing a rogue application to do damage. And then, of course, we all have absent-minded moments in which we don&#8217;t read the instructions, click &#8220;agree&#8221; without actually reading terms, etc.</p>
<p>In other words, Facebook can&#8217;t leave sorting good applications from bad up to us, because we&#8217;re not capable of doing it.We&#8217;re chickens, not watchdogs.</p>
<h3>A Peer-Review Posse</h3>
<p>Now, the last thing I am suggesting here is <a href="http://www.apple.com/iphone/apps-for-iphone/" target="_blank">Apple iTunes App Store</a>-style vetting.</p>
<p>I admit it; I find Apple&#8217;s policy of qualifying everything in the App Store quite Orwellian, and not just because of <a href="http://techcrunch.com/2009/07/27/apple-is-growing-rotten-to-the-core-and-its-likely-atts-fault/" target="_blank">what Apple did in response to Google Voice on the iPhone</a>. (Which, it is worth mentioning, is the primary reason for my defection from the iPhone to the Droid.)</p>
<p>But even if I didn&#8217;t mind that approach, I don&#8217;t think it serves either Facebook or its users to have a <a href="http://en.wikipedia.org/wiki/Whitelist" target="_blank">whitelist</a> approach to third-party applications. Again, Facebook is best served by being the channel through which people communicate; and allowing others to determine how to conduct such communication is of benefit to users and Facebook alike.</p>
<p>Nonetheless, the free-for-all has to stop, lest Facebook become nefarious for the garbage it allows and thus be overtaken by some alternative service.</p>
<p>The Register raises the notion that Facebook could allow continued open development, but offer a seal or other <a href="http://dictionary.reference.com/browse/imprimatur" target="_blank">imprimatur</a> for applications to assure end users that an application is what it claims to be and / or free from malware or deceptive practices.</p>
<p>That would be fine, save that <a href="http://www.facebook.com/press/info.php?statistics" target="_blank">there are hundreds of thousands of Facebook apps already deployed</a>, and (one would have to assume) hundreds more added every day. Facebook would have to hire a <a href="http://en.wikipedia.org/wiki/Quality_assurance" target="_blank">QA</a> team the size of <a href="http://www.seattlepi.com/business/367743_msftemploy20.html?source=mypi" target="_blank">Redmond</a> to go through all of them &#8212; and, if we know anything, it&#8217;s that even Redmond can&#8217;t assure what is examined by tens of thousands of eyeballs isn&#8217;t a bug-infested nightmare.</p>
<p>I think it makes the most sense for application vetting to be optional, but for Facebook to limit the access an unvetted application has to the API.</p>
<p>For example, an unvetted application wouldn&#8217;t have access to a user&#8217;s friend list. Or maybe it wouldn&#8217;t be able to publish to his news stream or photos. Or perhaps it would be limited to 100 or so users, or could only publish 300 items per day.</p>
<p>Or, Facebook could require a more intensive installation process, one that specifically notes the application has not been vetted and requires a multiple-step, affirmative response from the end user in order to install it (e.g., you have to click a couple check boxes, enter some text, etc. in order to install the application).</p>
<p>Facebook could even have a couple vetting options. One might be to certify a developer, and thus, all his applications would be approved. Another might be to run &#8220;code camps,&#8221; and certify anyone who attended as a Facebook approved application developer. Such camps could either be free, or require payment of a registration fee.</p>
<p>Another option would be to allow developers to bank on each other&#8217;s trust. In other words, Facebook could certify me as a developer of clean applications. I could, in turn, certify the applications of other developers.</p>
<p>Or perhaps, the developer community could police itself even more intensely.</p>
<p>Facebook might, for example, provide basic support for a coalition of application developers. Those developers, in turn, would create standards and practices by which applications are vetted. For a small developer fee, an application would be certified by the coalition; that fee would be used to pay the coalition members for their time.</p>
<p>Here&#8217;s an even more radical approach: Facebook could create its own advertising distribution network, along the lines of the <a href="http://www.openx.org/market" target="_blank">OpenX Market</a>; one that allows both system-wide advertisers and specific-to-application advertisers to target applications they&#8217;d like to sponsor.</p>
<p>Facebook, in turn, could require all ad-supported third-party applications to use that ad network only. If you develop malware or act deceptively, you don&#8217;t get paid. A small portion of all proceeds from ad-supported apps is retained by Facebook to handle distribution costs and to fund the vetting process. It wouldn&#8217;t be all that difficult for Facebook to build page scrapers that determine if some rogue application is trying to get around the ad network restrictions.</p>
<p>These are just some quick ideas off the top of my head.</p>
<p>I&#8217;m sure Facebook, and its developer community, are very concerned about rogue apps and their potential to erode confidence in the safety and security of Facebook. Certainly, there&#8217;s enough brain power there to find a way to vet applications without impairing either the willingness of third-party developers to participate, or take away either party&#8217;s ability to make third-party applications profitable.</p>
<p>All links in this post on delicious.com: <a href="http://delicious.com/dougvdotcom/its-time-for-facebook-or-at-least-someone-to-vet-third-party-applications" target="_blank">http://delicious.com/dougvdotcom/its-time-for-facebook-or-at-least-someone-to-vet-third-party-applications</a></p>
<div class="yarpp">
	<h5>Related Posts</h5>
		<ol>
				<li><a href="https://www.dougv.com/2009/03/05/msdn-roadshow-in-augusta-march-19-well-worth-the-time/" rel="bookmark">MSDN Roadshow In Augusta, March 19: Well Worth The Time</a> (12)</li>
				<li><a href="https://www.dougv.com/2007/03/12/displaying-the-correct-time-for-world-cities-with-ajax-javascript-dom/" rel="bookmark">Displaying The Correct Time For World Cities  With AJAX / JavaScript / DOM</a> (11.8)</li>
				<li><a href="https://www.dougv.com/2007/01/27/displaying-an-image-on-a-web-page-based-upon-the-current-time-with-javascript-dom/" rel="bookmark">Displaying An Image On A Web Page Based Upon The Current Time With JavaScript / DOM</a> (11.6)</li>
			</ol>
	<p class="note">The numbers inside parentheses are relevance scores. Scoring is based, in order of priority, on title, category, content and tags. The higher the score, the more likely that post relates to this post.</p>
	</div>

	Tags: <a href="https://www.dougv.com/tag/amazon/" title="Amazon" rel="tag">Amazon</a>, <a href="https://www.dougv.com/tag/apple/" title="Apple" rel="tag">Apple</a>, <a href="https://www.dougv.com/tag/crowdsourcing/" title="crowdsourcing" rel="tag">crowdsourcing</a>, <a href="https://www.dougv.com/tag/elegance/" title="elegance" rel="tag">elegance</a>, <a href="https://www.dougv.com/tag/ethics/" title="ethics" rel="tag">ethics</a>, <a href="https://www.dougv.com/tag/google/" title="Google" rel="tag">Google</a>, <a href="https://www.dougv.com/tag/microsoft/" title="Microsoft" rel="tag">Microsoft</a>, <a href="https://www.dougv.com/tag/myspace/" title="MySpace" rel="tag">MySpace</a>, <a href="https://www.dougv.com/tag/privacy/" title="privacy" rel="tag">privacy</a>, <a href="https://www.dougv.com/tag/reputation/" title="reputation" rel="tag">reputation</a>, <a href="https://www.dougv.com/tag/social-engineering/" title="social engineering" rel="tag">social engineering</a><br />
]]></content:encoded>
			<wfw:commentRss>https://www.dougv.com/2010/03/15/its-time-for-facebook-or-at-least-someone-to-vet-third-party-applications/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

