<?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>WePay &#187; Uncategorized</title>
	<atom:link href="http://blog.wepay.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.wepay.com</link>
	<description></description>
	<lastBuildDate>Wed, 16 May 2012 17:35:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Six Tips for Getting Your Donations Campaign Noticed</title>
		<link>http://blog.wepay.com/2012/03/28/six-tips-for-getting-your-donations-campaign-noticed/</link>
		<comments>http://blog.wepay.com/2012/03/28/six-tips-for-getting-your-donations-campaign-noticed/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 15:00:50 +0000</pubDate>
		<dc:creator>Matt Oberman</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.wepay.com/?p=5084</guid>
		<description><![CDATA[<p>According to the <a href="http://www.philanthropy.iupui.edu/news/2011/06/pr-GUSA.aspx">Giving USA Foundation and the Center on Philanthropy at Indiana University</a>, there were $290.89 billion worth of contributions made by American individuals, corporations, and foundations in 2010. It’s clear that there is no lack of giving&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>According to the <a href="http://www.philanthropy.iupui.edu/news/2011/06/pr-GUSA.aspx">Giving USA Foundation and the Center on Philanthropy at Indiana University</a>, there were $290.89 billion worth of contributions made by American individuals, corporations, and foundations in 2010. It’s clear that there is no lack of giving to others in need, but with so many causes out there vying for people’s hearts (and pocketbooks) online, how does your webpage cut through the clutter and get noticed?</p>
<p>As the easiest way to collect payments online, <a href="https://wepay.com/donations">WePay</a> collects millions of dollars worth of donations each week, raising money for everything from tornado relief, to honeymoons, beauty pageants, and college funds. From this diverse and thriving customer base, we’ve compiled a list of the best tips for getting your cause the notoriety it deserves.</p>
<p><span style="text-decoration: underline">Tip #1: Include a photo</span><br />
Campaigns that included a photo were nearly 30 percent more likely to receive donations over those that didn&#8217;t.</p>
<p><span style="text-decoration: underline">Tip #2: Create a deadline</span><br />
Campaigns that included a definitive end date were 10 percent more likely to receive donations compared to those that didn&#8217;t.</p>
<p><span style="text-decoration: underline">Tip #3: Don’t be self-absorbed</span><br />
Campaigns that mentioned &#8220;we&#8221; or “us” in the description compared to those that used &#8220;I&#8221; were more likely to receive donations by 10 and 12 percent, respectively.</p>
<p><img src="http://blog.wepay.com/wp-content/uploads/2012/03/be-selfless.jpg" alt="" border="0" /></p>
<p>*Graphs show donation campaigns that received money, plotted against the average 25 percent of donation campaigns that receive money.</p>
<p><span style="text-decoration: underline">Tip #4: Choose your words wisely</span><br />
Campaigns that talked about &#8220;Christ&#8221; beat out &#8220;God&#8221;, &#8220;Bless&#8221; and &#8220;Jesus”. Also, using term &#8220;team&#8221; gets more traction than “group”.</p>
<p><img src="http://blog.wepay.com/wp-content/uploads/2012/03/christ-v-god.jpg" alt="" border="0" /></p>
<p><span style="text-decoration: underline">Tip #5: Get excited!!</span><br />
Campaigns that include an exclamation point in the description increase the chances of getting donations, and two explication points makes it even more likely. Watch out for exclamation overkill – four is too many, although three do not seem to make a difference.</p>
<p><img src="http://blog.wepay.com/wp-content/uploads/2012/03/punctuation-makes-a-difference.jpg" alt="" border="0" /></p>
<p><span style="text-decoration: underline">Tip #6: <strong>Be bold</strong></span><br />
If you include bold text or a link to something you&#8217;ll likely fare 42 percent better than average for donations.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2012/03/28/six-tips-for-getting-your-donations-campaign-noticed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Picking a fight with an 800 pound gorilla</title>
		<link>http://blog.wepay.com/2011/02/28/picking-a-fight-with-an-800-pound-gorilla/</link>
		<comments>http://blog.wepay.com/2011/02/28/picking-a-fight-with-an-800-pound-gorilla/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 00:13:58 +0000</pubDate>
		<dc:creator>Rich Aberman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.wepay.com/blog/?p=1763</guid>
		<description><![CDATA[<p><a href="http://blog.wepay.com/wp-content/uploads/2011/02/david-goliath.jpeg"><img class="size-full wp-image-1801   alignleft" src="http://blog.wepay.com/wp-content/uploads/2011/02/david-goliath.jpeg" alt="David vs. Goliath" width="205" height="310" /></a></p>
<p>When I learned that my good friends over at <a rel="nofollow" href="http://mixpanel.com/" target="_blank">Mixpanel</a>, a real-time analytics service, decided to take out a <a href="http://thenextweb.com/industry/2011/02/03/mixpanel-page-views-are-dead-measure-engagement/" target="_blank">billboard on highway 101</a> to declare war on Google analytics, I began thinking about whether&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.wepay.com/wp-content/uploads/2011/02/david-goliath.jpeg"><img class="size-full wp-image-1801   alignleft" src="http://blog.wepay.com/wp-content/uploads/2011/02/david-goliath.jpeg" alt="David vs. Goliath" width="205" height="310" /></a></p>
<p>When I learned that my good friends over at <a rel="nofollow" href="http://mixpanel.com/" target="_blank">Mixpanel</a>, a real-time analytics service, decided to take out a <a href="http://thenextweb.com/industry/2011/02/03/mixpanel-page-views-are-dead-measure-engagement/" target="_blank">billboard on highway 101</a> to declare war on Google analytics, I began thinking about whether picking a fight with an 800 pound gorilla is a prudent strategy for startups. It&#8217;s certainly not a novel one; It&#8217;s not even the first time a startup has picked a fight with an incumbent using signage on Highway 101 (check out <a rel="nofollow" href="http://blog.box.net/2009/06/29/calling-all-frustrated-sharepoint-users-this-ones-for-you/" target="_blank">Box.net&#8217;s billboard</a>, which pokes fun at Microsoft SharePoint for being so complicated).</p>
<p>Startups, by definition, are disruptive, so it&#8217;s no surprise that they&#8217;re usually trying to dislodge leaders in their respective industries. But I&#8217;m not (just) talking about building a better product and stealing customers; I&#8217;m talking about openly and publicly picking a fight with an 800 pound gorilla as part of a company&#8217;s overarching marketing strategy.</p>
<p>Virgin Chairman Sir Richard Branson is probably the best known example of one who explicitly designs marketing strategies around attacking incumbents. &#8220;At Virgin&#8221;, he says, &#8220;we challenge the dominant players in a range of industries where we believe the consumer is not getting value for money.&#8221; This strategy has worked particularly well for Virgin, which specializes in entering markets where the big players have gotten fat and lazy and the consumers are tired of being neglected and mistreated. Virgin America is a shining example, since <a href="http://blog.wepay.com/2010/12/01/7-startup-lessons-courtesy-of-united-airlines-crappy-customer-service/" target="_blank">most of the big guys really suck</a>.</p>
<p>My favorite Virgin story is the time Branson drove a British tank into Times Square and crushed a bunch of Coke and Pepsi cans to promote the launch of his new soda brand, Virgin Cola.   I guess it&#8217;s easy to pick a fight with an 800 pound gorilla when you&#8217;re the one driving the tank.</p>
<p>Given my role at <a href="https://www.wepay.com/?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=gorilla_post" target="_blank">WePay.com</a>, I&#8217;m particularly piqued by Branson&#8217;s summary of the financial services space: &#8220;The consumer has been taken for a ride for too long by an industry which  has been able to hide its charges.&#8221; I agree, but I think the problem goes even deeper than just hidden fees &#8211; especially when it comes to online payments.</p>
<p>Most notably, consumers regularly express visceral frustration with PayPal, the de facto king of online payments. PayPal is well-known for it&#8217;s unclear pricing, opaque policies and procedures, and <a rel="nofollow" href="http://PayPalsucks.com" target="_blank">mistreatment of customers</a>.</p>
<p>It hasn&#8217;t always been this way, though. PayPal was once an irreverent startup like us, playing David in his epic battle with Goliath. In 2001, PayPal picked a very public fight with eBay by going into the belly of the beast (quite literally), and embarrassing eBay on it&#8217;s own turf. During the first eBay Live! Conference, PayPal employees set up shop at a hotel next to the Anaheim convention center and handed out free PayPal T-shirts the night before the conference began. The next morning, during Meg Whitman&#8217;s keynote address, about 25% of all attendees were wearing PayPal shirts. This was pretty awkward for eBay, which had acquired Billpoint (eBay&#8217;s current in-house payment solution) two years earlier. In 2002, eBay acquired PayPal for $1.5 billion and merged it with Billpoint.</p>
<p>Now almost a decade later, PayPal has become the 800 pound gorilla. And a fat, happy gorilla it is.</p>
<p><strong>Picking a fight with PayPal</strong></p>
<p>I founded <a href="https://www.wepay.com/?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=gorilla_post" target="_blank">WePay.com</a> in 2008 with a former college roommate – a year after graduating from college. I was actually in law school at the time, but that was definitely not my bag.</p>
<p>The original idea was to build a website that made it really easy for “normal people” to collect money from friends, fans, members, supporters, attendees, etc. The idea hasn’t really changed much since then. We added additional tools like the ability to <a href="https://www.wepay.com/howto/sell_tickets/?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=gorilla_post" target="_blank">sell tickets</a> and <a href="https://www.wepay.com/howto/accept_donations/?utm_source=blog&amp;utm_medium=blog&amp;utm_campaign=gorilla_post" target="_blank">accept donations</a>, but the basic value proposition has stayed the same: giving people an easy way to collect money online.</p>
<p>It’s worth noting that when we first founded WePay, we didn’t think too much about PayPal, and we certainly did not welcome the comparison. PayPal had never been a good solution for us personally (hence our desire to build something new), and unlike WePay, PayPal is built for merchants, not consumers. Our original plan was certainly not to “take down PayPal.”</p>
<p>That being said, it didn&#8217;t stop people from <a rel="nofollow" href="http://www.collegemogul.com/12/1/08/WePay-The-PayPal-for-Groups" target="_blank">comparing us to PayPal</a> before we even built our product or launched the service.  I&#8217;m sure the fact that <a rel="nofollow" href="http://www.businessinsider.com/max-levchin-is-pretty-excited-about-a-new-payments-startup-called-wepay-2010-4" target="_blank">we raised money from Max Levchin</a>, the founder of PayPal, had at least something to do with it.</p>
<p>At the time, I remember thinking how much I hated being called the &#8220;PayPal for groups&#8221;. But when <a rel="nofollow" href="http://mashable.com/2010/08/12/wepay-series-b/" target="_blank">Mashable used the same tagline</a> to describe WePay two years later, I was all for it.</p>
<p>So what changed?  Why do I now welcome (even promote) the comparison, and what value does it bring to WePay.com?</p>
<p>The first time we actively embraced the PayPal comparison was when PayPal froze the account of the Flux foundation – a non-profit arts organization – just a few days before the Flux Crew headed to the desert to build their famous Temple at Burning Man.</p>
<p>The Flux Foundation and a bunch of other people and organizations collecting donations <a rel="nofollow" href="http://www.sfbg.com/politics/2010/08/13/paypal-freezes-out-other-groups-who-turn-wepay-updated" target="_blank">ended up turning to WePay</a> in protest (and in desperation). Our pitch was easy:  yes, you can use WePay instead of PayPal. WePay.com is better than PayPal for collecting donations, and we won&#8217;t freeze your accounts.</p>
<p>After that, people started referring to us as the consumer-friendly or “community-oriented” version of PayPal. CNN actually referred to us as the <a rel="nofollow" href="http://money.cnn.com/2010/10/12/technology/wepay/index.htm">anti-PayPal</a>. The comparison isn’t completely accurate because — as I said above — WePay is focused on helping everyday consumers collect money from people in their social circles, whereas PayPal is focused on helping merchants sell goods or services online. But it was great for us in terms of press and branding, so we embraced it: “Yeah, we are kinda like PayPal, but we love our customers, have <a rel="nofollow" href="http://www.xconomy.com/san-francisco/2011/02/08/sophies-voice-scaling-the-personal-touch-in-customer-service/" target="_blank">great customer service</a>, and try really hard not to freeze your accounts.</p>
<p>We took the fight to the extreme when we decided to <a rel="nofollow" href="http://techcrunch.com/2010/10/26/wepay-ice-paypal/" target="_blank">drop 600 pounds of ice in front of the Moscone Center at PayPal’s annual developer conference</a>. In the block of ice was $500 and the words: “PayPal freezes your accounts.”  The stunt was covered by TechCrunch and it rode the front page of Reddit for an entire day.  It was our highest traffic day ever, and we received about 10 resumes from PayPal employees looking for jobs.</p>
<p>(It&#8217;s worth noting that WePay was not the first underdog to punk an incombent in front of the Moscone Center in San Francisco.  On Feb. 22, 2000, Salesforce.com CEO Marc Benioff hired &#8221;protesters&#8221; to show up at a Siebel conference. They were declaring the &#8220;end of software.&#8221; When twenty Siebel executives came out of Moscone to see what was going on, local television crews were there waiting.)</p>
<p><strong>The Effect</strong></p>
<p>People always ask me: &#8220;are you worried about PayPal?&#8221; It&#8217;s kind of a silly question.</p>
<p>I&#8217;m not really worried about <em>losing</em> to PayPal.  If I looked at it that way, then we&#8217;ve already lost. We&#8217;re definitely in a race, but PayPal crossed <em>their</em> finish line long before we even started.</p>
<p>I&#8217;m also not worried about PayPal &#8220;squashing&#8221; us. If they&#8217;re looking at WePay as competition, as something to be squashed or imitated, then <em>they&#8217;ve</em> already lost. Recent history is riddled with big followers who have failed. Amazon tried hard to get into the shoe and diaper game, after watching Zappos and diapers.com pave the way. They failed to catch up, and it cost them $1.5 billion in acquisitions. eBay bought Billpoint and invested a ton of money to compete with PayPal. We all know how that story ends. More recently, Intuit invested heavily in Quicken Online in order to compete with Mint, only to buy Mint a few years later for $170 million.</p>
<p>It&#8217;s also not easy for big companies to change course, add features, iterate, or experiment. PayPal can&#8217;t simply <em>decide</em> to shift it&#8217;s focus toward consumers, nor would they want to.  When a commentator on TechCrunch said, &#8220;I love the idea, but see a great risk that PayPal will crush them. This is a feature, not a business. PayPal could employ such a feature within weeks,&#8221; Dave McClure, a prolific angel investor, early PayPal employee, and WePay investor had a pretty telling response: &#8220;<em>Nothing</em> launches in a few weeks from a large service like PayPal, and certainly not a major restructuring of account entity data / group payments. Yes, they might decide to do it at some point, but development and deployment alone would take 6-12 months. More important, the decision framework takes a year or more to launch a major new service.&#8221;</p>
<p>Lastly, the giants don&#8217;t really <em>care </em>when they get called out by startups. In fact, the worst thing they could do is legitimize or popularize the comparison by taking it seriously.   Besides, it&#8217;s not really that hard for big companies to ignore attacks by smaller startups: the people on top are far removed from the fighting in the trenches, and the people in the trenches don&#8217;t really care because they don&#8217;t have meaningful ownership of the company; they&#8217;re not nearly as (irrationally) impassioned or loyal as startup employees or founders.</p>
<p>In other words, if you&#8217;re a fledgeling startup that&#8217;s picking a fight with a big company, you don&#8217;t really have to worry about &#8220;waking up a sleeping giant.&#8221; Fortunately, it&#8217;s just not going to happen.</p>
<p>So what does it do?</p>
<ol>
<li>It frames the debate.  First, it puts the two companies on the same level: There&#8217;s PayPal and then there&#8217;s WePay, the anti-PayPal. It also limits the debate to two players: the incumbent and the alternative.</li>
<li>It puts your product in context. If consumers compare WePay to PayPal, it means they at least get the basics: WePay is an online payments company. If they add a qualifier: WePay is a consumer-friendly PayPal, then we win.</li>
<li>It helps you develop your own ethos and culture. I&#8217;m definitely not saying that a startup should copy (or even do the opposite) of the 800 pound gorilla, just that the 800 pound gorilla can anchor the culture context. Startups have the advantage of witnessing and learning from the incumbent&#8217;s mistakes.  By calling ourselves the anti-PayPal, for example, WePay is making a hefty promise &#8211; namely, that we&#8217;ll put our customers first.  We try extra hard to <a rel="nofollow" href="http://www.xconomy.com/san-francisco/2011/02/08/sophies-voice-scaling-the-personal-touch-in-customer-service/" target="_self">treat our customers well</a> and promote projects that keep us focused on the <a href="http://wepay.com/landing/help">right things</a>.</li>
<li>It makes you the good guy. Since the incumbent is ill-perceived by consumers, it&#8217;s easy to put on some shining armor and ride in on your white horse. If the incumbent is not ill-perceived, picking a fight is not the right strategy.</li>
</ol>
<p>In the end, picking a fight with the 800 pound gorilla forces people to take sides. If you&#8217;re confident in your product, and the value that it provides, then declaring war might not be such a bad idea.</p>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Generic.jpg?utm_source=wepayblog&amp;utm_medium=blog&amp;utm_medium=banner&amp;utm_ref=blog_banner&amp;utm_campaign=generic" alt="" width="728" height="90" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2011/02/28/picking-a-fight-with-an-800-pound-gorilla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Holiday Misgivings: The Real Dynamics Behind Holiday Gifting</title>
		<link>http://blog.wepay.com/2010/12/21/holiday-misgivings-the-real-dynamics-behind-holiday-gifting/</link>
		<comments>http://blog.wepay.com/2010/12/21/holiday-misgivings-the-real-dynamics-behind-holiday-gifting/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 17:02:55 +0000</pubDate>
		<dc:creator>Rich Aberman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.wepay.com/blog/?p=1265</guid>
		<description><![CDATA[<p>Do you have a few presents under the tree already? They all look so appealing and good-intentioned, don’t they? Beneath the wrapping paper and bow, however, each gift has a different story to tell &#8212; about behavioral economics, gender dynamics,&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Do you have a few presents under the tree already? They all look so appealing and good-intentioned, don’t they? Beneath the wrapping paper and bow, however, each gift has a different story to tell &#8212; about behavioral economics, gender dynamics, time management, and power dynamics. They also say a lot about you, the lucky recipient.</p>
<p>WePay makes it easy to <a href="https://www.wepay.com/" target="_blank">collect money online</a>, which means that we’ve seen a bunch of people collecting money for group gifts this holiday season. That got us thinking about the deeper truths behind all this holiday hoopla.  The folks here at WePay sifted through a big pile of gift-giving research to find some surprising insights:  What value do you think a recipient will place on the item you just bought and wrapped?  What’s the value (and the fate) of the gift cards you’re sending to your siblings? Which do you value more: a gift from your parents or a gift from your significant other?</p>
<p>We dug through research from a variety of highly reputable sources – from chin-scratching academic papers out of Northwestern’s Kellogg School of Management to the latest surveys from Consumer Reports, retail trade groups, and even <a href="http://www.nationalregiftingday.com/Survey-Results-2007.aspx">the good people behind National Regifting Day</a>. The data is pretty compelling – and if you’re like me and haven’t even started your shopping – you may want to take a look at the graphic below before you head to the mall.</p>
<p>Let’s start with just basic gift valuation:  That $50 sweater you got your house bro, or even your real bro? According to <a href="http://bpp.wharton.upenn.edu/waldfogj/">Wharton prof Joel Waldfogel</a>, he’ll <a href="http://knowledge.wharton.upenn.edu/papers/1286.pdf">lowball its actual value as much as 18%.</a> Because he doesn’t know the sweater market? Doesn’t like you? No – he’ll mentally mark it down simply because it’s a gift. If he were buying it himself, it’d be worth its price, or perhaps even more.</p>
<p>Then there’s the truly depressing economic circle of gift cards.  Every year, <em>millions</em> of cards go unredeemed – <a href="http://www.towergroup.com/research/news/news.htm?newsId=8005500">this holiday season alone, gift givers will throw an estimated $2.5 billion down the toilet on gift-card recipients</a>, who will either forget to use or simply never open them.  So think about that the next time you’re in line at Safeway, staring at the gift card rack – with plastic offerings from Target and Apple to Gap and Nordstrom &#8212; believing how smart and efficient it would be to cross off five people on your list with the help of a single end-cap.  Unused cards with billions of dollars of real economic value have become so rampant that companies like <a href="http://www.cardpool.com" target="_blank">Cardpool</a> are doing well helping people re-sell their unused cards at a discount.</p>
<p>This doesn’t mean you should follow in the footsteps of Ebenezer Scrooge, or rethink the holiday spirit in general. But at a time when many are still burdened by both the macro and micro effects of the economic downturn, it may be time to rethink what it really means to give a gift.</p>
<p><a href="http://blog.wepay.com/wp-content/uploads/2010/12/giftonomics_large.jpg"><img class="size-full wp-image-1299 alignleft" title="giftonomics_10" src="http://blog.wepay.com/wp-content/uploads/2010/12/giftonomics_small.jpg" alt="Collect Money Online" width="600" height="1538" /></a></p>
<p>Embed the infographic above:</p>
<p><textarea style="width: 100%; height: 6em;">&lt;a href=&#8221;http://blog.wepay.com/2010/12/21/holiday-misgivings-the-real-dynamics-behind-holiday-gifting/&#8221; mce_href=&#8221;http://blog.wepay.com/2010/12/21/holiday-misgivings-the-real-dynamics-behind-holiday-gifting/&#8221;&gt;&lt;img src=&#8221;http://blog.wepay.com/wp-content/uploads/2010/12/giftonomics_small.jpg&#8221; mce_src=&#8221;http://blog.wepay.com/wp-content/uploads/2010/12/giftonomics_small.jpg&#8221; alt=&#8221;Collect money online, girl scouts, boy scouts, fraternity dues&#8221; width=&#8221;600&#8243; height=&#8221;1538&#8243; /&gt;&lt;/a&gt;</textarea></p>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Generic.jpg?utm_source=wepayblog&#038;utm_medium=blog&#038;utm_medium=banner&#038;utm_ref=blog_banner&#038;utm_campaign=generic" alt="" width="728" height="90" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/12/21/holiday-misgivings-the-real-dynamics-behind-holiday-gifting/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>WePay Just Made it Even Easier to Collect Donations Online</title>
		<link>http://blog.wepay.com/2010/12/20/wepay-just-made-it-even-easier-to-collect-donations-online/</link>
		<comments>http://blog.wepay.com/2010/12/20/wepay-just-made-it-even-easier-to-collect-donations-online/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 23:16:04 +0000</pubDate>
		<dc:creator>Rich Aberman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.wepay.com/blog/?p=1288</guid>
		<description><![CDATA[<p>Last week, we pushed out some major improvements to our online donations tool.  You can still <a href="https://www.wepay.com/collect/create_donation/">start collecting donations in just a few clicks</a>, but now you can also set up separate campaigns, suggest different donation amounts, and easily&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Last week, we pushed out some major improvements to our online donations tool.  You can still <a href="https://www.wepay.com/collect/create_donation/">start collecting donations in just a few clicks</a>, but now you can also set up separate campaigns, suggest different donation amounts, and easily track your progress toward a specific fundraising goal.</p>
<p>So whether you are collecting donations for a non-profit, or you just want to raise a little money for a group gift or a holiday tailgate, <a href="https://www.wepay.com/collect/create_donation/">try out WePay&#8217;s new-and-improved donation tools</a>, and tell us what you think.</p>
<p><a href="http://blog.wepay.com/wp-content/uploads/2010/12/Screen-shot-2010-12-20-at-3.13.40-PM.png"><img class="alignright size-full wp-image-1290" title="Donation Page" src="http://blog.wepay.com/wp-content/uploads/2010/12/Screen-shot-2010-12-20-at-3.13.40-PM.png" alt="" width="639" height="350" /></a></p>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Donations.jpg?utm_source=wepayblog&#038;utm_medium=blog&#038;utm_medium=banner&#038;utm_ref=blog_banner&#038;utm_campaign=donations" alt="" width="728" height="90" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/12/20/wepay-just-made-it-even-easier-to-collect-donations-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to (In)validate Your Startup Idea</title>
		<link>http://blog.wepay.com/2010/12/17/how-to-invalidate-your-startup-idea/</link>
		<comments>http://blog.wepay.com/2010/12/17/how-to-invalidate-your-startup-idea/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 20:10:04 +0000</pubDate>
		<dc:creator>Rich Aberman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.wepay.com/?p=1252</guid>
		<description><![CDATA[<p>I just finished talking with a friend about a new idea he&#8217;s currently vetting. The idea is definitely interesting, but it got me thinking: how do you know if an idea is actually worth pursuing?  I didn&#8217;t think about it&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>I just finished talking with a friend about a new idea he&#8217;s currently vetting. The idea is definitely interesting, but it got me thinking: how do you know if an idea is actually worth pursuing?  I didn&#8217;t think about it long because the answer is obvious: an idea is worth pursing when it promises to provide a solution to a &#8220;hair-on-fire&#8221; problem.  When we started  <a href="https://www.wepay.com/">WePay</a>, we set out to solve a very real pain point. That continues to be our goal today.</p>
<p>&#8220;Hair-on-fire&#8221; problems create victims who know they have a problem without you having to tell them, want and actively look for a solution, and are willing to overlook switching costs and to pay you to use it.</p>
<p>So how can you find out if you&#8217;re idea has the potential to solve a &#8220;hair on fire&#8221; problem without building it first? The following are three experiments you can try before you build your product.</p>
<p>1. Identify your target customer. Moms between the ages of 30 and 45, you say? Great. Organize a &#8220;focus group&#8221; of twenty random moms between the ages of 30 and 45. Ask them: &#8220;Do you currently have problem X&#8221;. They will all answer: &#8220;Yes, definitely. I have problem X, and I hate it.&#8221; Next ask them: &#8220;How would you like a solution to problem X.&#8221; They will answer: &#8220;Well, we would obviously LOVE a solution for problem X.&#8221; And then ask them: &#8220;How much would you be willing to pay for solution to problem X,&#8221; and they will all say (this time in unison): &#8220;A lot!&#8221;.</p>
<p>And then you&#8217;re done, right? Well, not exactly. Most founders will stop there thinking that their idea has been validated.  <strong>You can&#8217;t just listen to what people say; you have to watch what they do</strong>. Right before you end the session announce that &#8220;the solution to problem X will actually be available TONIGHT at www.[startupname]ly.com.&#8221;  This is obviously not true (since you haven&#8217;t built it yet), but at www.[startupname]ly.com, you will have a beautiful landing page that says: &#8220;enter your email address here, and we will give you the solution to problem X&#8221;.</p>
<p>At this point, they (your target customers) have heard you, the founder, define the problem you are trying to solve and extol the virtues of the solution you want to build… and they said that loved it! It&#8217;s the best pitch they (or anybody) will ever hear about your product.  If they don&#8217;t remember to come to your website (and willingly enter their email addresses) within the next few days (on their own, and without any push from you), you are probably not solving a &#8220;hair on fire&#8221; problem.</p>
<p>2. Identify your target customer. COLD email 20 of them and offer to pay THEM to use your product if they are willing to offer some feedback. See how many respond.  If anybody responds, tell them that the offer is oversubscribed and that it is no longer available. See how many of those people still ask about the product.</p>
<p>Sometimes you can&#8217;t PAY somebody to use your product, let alone get them to pay you for it. It&#8217;s probably good to know that before you decide to quit your day job.</p>
<p>3. Identify your target customer and ask a group of them to define their problem and what they are looking for in a solution. Take those responses, chop them up into &#8220;key word lists&#8221;, and plug them into Google &#8220;search traffic estimator.&#8221; If there&#8217;s a ton of search traffic, then you&#8217;re scratching a pretty big itch, right? Probably.</p>
<p>But you should take it a step further: put up a beautiful landing page, a giant call to action, and a 10-step registration process. Then buy a bunch of ads on Google targeting the keyword lists you just tested. Drive as much traffic as possible to your landing page, and see how many steps people are willing to go through before they quit. The more steps they are willing to suffer through, the more they will be willing to pay you.</p>
<p>If these recommendations are too extreme, treat them as a thought experiment. Just don&#8217;t lie to yourself.</p>
<p>A quick (but BIG) caveat: there are VERY notable counter-examples. I think they generally fall into three categories:</p>
<p>Products that solve a problem that people don&#8217;t know they have (or one that they can&#8217;t articulate), but offer a solution that is so compelling and elegant that it can overcome this obstacle: Dropbox.</p>
<p>A product that predicts and/or capitalizes on a dramatic shift in how we communicate and interact: Facebook, Twitter.</p>
<p>A product that can catch your attention without you looking and hold it without you necessarily wanting it to. These products tend to be viral and engaging: Zynga.</p>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Generic.jpg?utm_source=wepayblog&#038;utm_medium=blog&#038;utm_medium=banner&#038;utm_ref=blog_banner&#038;utm_campaign=generic" alt="" width="728" height="90" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/12/17/how-to-invalidate-your-startup-idea/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Collect Money and Information with Formstack and WePay</title>
		<link>http://blog.wepay.com/2010/12/15/collect-money-and-information-with-formstack-and-wepay/</link>
		<comments>http://blog.wepay.com/2010/12/15/collect-money-and-information-with-formstack-and-wepay/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 19:08:01 +0000</pubDate>
		<dc:creator>Rich Aberman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.wepay.com/?p=1192</guid>
		<description><![CDATA[<p><a href="http://blog.wepay.com/wp-content/uploads/2010/12/Screen-shot-2010-12-15-at-11.02.21-AM3.png"><img class="alignleft size-full wp-image-1234" title="Screen shot 2010-12-15 at 11.02.21 AM" src="http://blog.wepay.com/wp-content/uploads/2010/12/Screen-shot-2010-12-15-at-11.02.21-AM3.png" alt="" width="220" height="87" /></a>WePay users have been asking for an easy way to collect information along with their payments since we launched. There are a ton of sports team, youth organizations, event organizers, and associations currently using WePay to collect money online. Until&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.wepay.com/wp-content/uploads/2010/12/Screen-shot-2010-12-15-at-11.02.21-AM3.png"><img class="alignleft size-full wp-image-1234" title="Screen shot 2010-12-15 at 11.02.21 AM" src="http://blog.wepay.com/wp-content/uploads/2010/12/Screen-shot-2010-12-15-at-11.02.21-AM3.png" alt="" width="220" height="87" /></a>WePay users have been asking for an easy way to collect information along with their payments since we launched. There are a ton of sports team, youth organizations, event organizers, and associations currently using WePay to collect money online. Until now, these groups have not had an easy way to collect specific information along with their payments.</p>
<p>Now, with <a href="http://formstack.com" target="_blank">Formstack</a>&#8216;s recent integration with WePay, you can easily build a form that not only collects the required data you need, but can also collect money.  Formstack&#8217;s WePay integration is the easiest way to start taking online payments; whether you need a simple order form to a complicated event registration form, Formstack and WePay make it easy.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="312" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/62wcquiKgRI&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="512" height="312" src="http://www.youtube.com/v/62wcquiKgRI&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Generic.jpg?utm_source=wepayblog&#038;utm_medium=blog&#038;utm_medium=banner&#038;utm_ref=blog_banner&#038;utm_campaign=generic" alt="" width="728" height="90" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/12/15/collect-money-and-information-with-formstack-and-wepay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 Ways to Get Your Fraternity Brothers to Pay Dues</title>
		<link>http://blog.wepay.com/2010/12/14/three-ways-to-get-your-fraternity-brothers-to-pay-dues/</link>
		<comments>http://blog.wepay.com/2010/12/14/three-ways-to-get-your-fraternity-brothers-to-pay-dues/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 00:04:00 +0000</pubDate>
		<dc:creator>Rich Aberman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.wepay.com/?p=1171</guid>
		<description><![CDATA[<div><em>This is a guest post by Pat Daley, a two year chapter president and an IFC president. He also was recognized as his university, chapter and national fraternity&#8217;s man of the year.  He is the author of <a href="thefraternityadvisor.com">thefraternityadvisor.com</a>, a website</em></div><p>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<div><em>This is a guest post by Pat Daley, a two year chapter president and an IFC president. He also was recognized as his university, chapter and national fraternity&#8217;s man of the year.  He is the author of <a href="thefraternityadvisor.com">thefraternityadvisor.com</a>, a website dedicated to <a href="thefraternityadvisor.com" target="_blank">fraternity leadership</a>.</em></div>
<div><em><br />
</em></div>
<div>Here&#8217;s the problem: fraternities are expensive and college guys don’t have a lot of money.  As a result, collecting dues is sometimes a difficult task. Fortunately, it doesn’t have to be this way.  There are three things you can do to increase dues collection.</div>
<div>
<ol>
<li>The most important thing you can do is be sure the brothers are getting great value for their dues.  This is your #1 job as a leader in the fraternity.  If the brothers can see where their money is going, and they think that they are getting a good return on their investment, then you will find collections to be much easier.</li>
<li>Of course, if you can provide the same benefit for lower dues, then the brothers will be getting an even greater value and will be more eager to pay on time.  In order to do this, your chapter needs to have a couple profitable fundraisers.  Luckily, there are hundreds of great fundraising ideas for fraternities.  And if you can show your brotherhood the benefit of doing a few, you can dramatically improve the finances of your chapter</li>
<li>Finally, make it easier for your brothers to pay.  <a href="https://www.wepay.com">WePay</a> is a fantastic service which makes your <a href="https://www.wepay.com">dues collection</a> professional.  We endorse it at <a href="http://thefraternityadvisor.com/" target="_blank">theFraternityAdvisor</a> because we think it provides tremendous value to fraternity chapters.  WePay enables you to collect dues by credit card and bank account payments, and it takes about 2 minutes to set up. WePay also allows you to collect donations and sell tickets to formals and other events.</li>
</ol>
</div>
<div>These three simple tips will have a profound impact on your fraternity’s finances and dues collection. Don’t ever forget that dues collection is a direct reflection on the health of your chapter.  If the brothers are willing to pay their dues, and pay them on time, it means they believe that they are getting good value from the fraternity.  And that means that you are doing your job as a leader.</div>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Payments.jpg?utm_source=wepayblog&#038;utm_medium=blog&#038;utm_medium=banner&#038;utm_ref=blog_banner&#038;utm_campaign=payments" alt="" width="728" height="90" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/12/14/three-ways-to-get-your-fraternity-brothers-to-pay-dues/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Buy A Gift for Your Teacher</title>
		<link>http://blog.wepay.com/2010/12/08/how-to-buy-a-gift-for-your-teacher/</link>
		<comments>http://blog.wepay.com/2010/12/08/how-to-buy-a-gift-for-your-teacher/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 17:54:33 +0000</pubDate>
		<dc:creator>Matt Carroll</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.wepay.com/?p=1095</guid>
		<description><![CDATA[<p>Educators will tell you that teaching is the profession that keeps on giving: headaches, parent-teacher conferences, lesson planning, late-night grading, and a salary commensurate with industries that require paper hats and knowledge of a combo menu. Whether lecturing to a&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Educators will tell you that teaching is the profession that keeps on giving: headaches, parent-teacher conferences, lesson planning, late-night grading, and a salary commensurate with industries that require paper hats and knowledge of a combo menu. Whether lecturing to a college classroom or wiping boogers from a dirty face at recess, a good teacher is worth his or her weight in gold for the impact he or she can have on thousands of lives. In this season of giving, here’s your playbook for finding the perfect gift for the teacher in your life.</p>
<p><strong>Rally the Troops: </strong>You need to organize your classmates to collect the funds. You don’t want to be spotted passing notes in class, much less an envelope full of money. Get caught with a fist full of cash and you’re looking at interrogation from the vice principle or dean who missed his calling as a Homeland Security Agent. Not only will you spend the rest of your year trying to convince your family and teachers that you are not in fact the head of jayvee drug cartel – you’ll also have ruined the surprise. <a href="https://www.wepay.com/">Try collecting payments online</a> and that way you can make sure everyone pitches in without having to stuff somebody in a locker.</p>
<p><strong>Be Thoughtful: </strong>It might be a no brainer to most, but remember to make your gift <em>thoughtful</em>. If nothing else, teachers help us learn to develop and apply critical thinking skills to real world settings. Buying something that requires some observation and discernment will impress and show that you’ve matured in the classroom. . For that young teacher who blends in with students because he’s still sporting an L.L.Bean backpack, return the favor and help him mature into something more stylish, like a <a href="http://www.briefcase.com/">briefcase or leather shoulder bag.</a> Not only will it make him feel and look more professional, it should also help keep the seniors who had been taking his lunch money at bay.</p>
<p>As any educator will tell you, sometimes it feels like they’re talking to the wall and not reaching a single student. I suspect that each one of us is guilty of contributing to this feeling at some point. Teachers have one of the highest burnout rates of any profession, so help keep the fire burning with comical and inspirational reads just for teachers. <a href="http://www.amazon.com/gp/product/1576601307?ie=UTF8&amp;tag=cgft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1576601307"><em>The New Yorker Book of Teacher Cartoons</em> </a><em>, </em>and<em> </em><a href="http://www.amazon.com/gp/product/0740722034?ie=UTF8&amp;tag=cgft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0740722034"><em>I Remember My Teacher</em></a><em>, </em>which contains 365 short stories offering daily tribute to teachers, are just a few titles that might give the educator in your life the motivation or laugh they need to make it through the day. (Credit is due to <a href="http://christmasgiftsforteachers.com">Christmasgiftsforteachers.com</a>, a great resource for ideas, for highlighting these titles.) It can also be a little payback for all the homework you’ve been assigned if you give them a quiz at the end of the semester.</p>
<p><strong>Personalize Your Gift: </strong>One’s office or desk can say a lot about a person. If your class or team has had some memorable moments captured on film, frame a nice picture and have your classmates sign it for your teacher or coach. Paraphernalia related to your instructors’ lessons and interest can not only spice up the décor of their classroom but can also serve as props for their lectures. Let your history teacher live out his dream of dressing up like George Patton by getting him authentic or replica WWII items from army surplus stores, or help your English teacher convey Edgar Allen Poe’s descent into madness with a <a href="http://ny-image0.etsy.com/il_fullxfull.96361704.jpg">creepy raven puppet</a>. And there’s always the classic name placard. Nothing says “appreciation” like a nameplate that shows their true character. “(No more) Mr. Nice Guy” and “Ms. Independent” knows they’ve got their students respect (though you’ll want to make sure that “Ms. Independent” didn’t just change her name from “Mrs. Happily Married”).</p>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Generic.jpg?utm_source=wepayblog&#038;utm_medium=blog&#038;utm_medium=banner&#038;utm_ref=blog_banner&#038;utm_campaign=generic" alt="" width="728" height="90" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/12/08/how-to-buy-a-gift-for-your-teacher/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WePloy – WePay’s Deployment Tool</title>
		<link>http://blog.wepay.com/2010/11/30/weploy-wepays-deployment-tool/</link>
		<comments>http://blog.wepay.com/2010/11/30/weploy-wepays-deployment-tool/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 20:12:45 +0000</pubDate>
		<dc:creator>andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.wepay.com/?p=4060</guid>
		<description><![CDATA[<p>Welcome to WePay&#8217;s engineering blog.  Over on the main <a href="http://blog.wepay.com/">WePay Blog</a> there are a lot of fun posts about organizing ski trips, deadbeat roommates and other such gems.  Here we are not going to talk about any of that.&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Welcome to WePay&#8217;s engineering blog.  Over on the main <a href="http://blog.wepay.com/">WePay Blog</a> there are a lot of fun posts about organizing ski trips, deadbeat roommates and other such gems.  Here we are not going to talk about any of that.  This will be dedicated to (hopefully) interesting solutions to technical problems.  The first thing we are going to attack is deploying code, and specifically PHP code, although the tool we wrote could be used to deploy any type of code.</p>
<p>Deploying web apps doesn&#8217;t tend to be very difficult, at least not on the surface.  You copy your new files to your document root and off you go.  However, there are actually a lot of things potentially wrong with that approach.</p>
<ol>
<li>Many ways of copying files are not atomic.  That means that you risk a user seeing a partially copied file, or even worse, the partial file may be cached in one of the many caches between your code and the user.</li>
<li>File dependencies.  Even if you solve #1 and use something like rsync, which creates files atomically, you will typically have interdependencies between files that will break your Web application if the new version of a file ends up including an older version.</li>
<li>Opcode caches, in-memory user caches and disk caches may need to be cleared or you end up with weird artifacts from the previous release.</li>
<li>If you swap out the underlying files in the middle of a user request weird things can happen.</li>
<li>Restarting the web server is disruptive.  In order to be able to deploy frequently, there is a need to be able to safely deploy new code without any downtime.</li>
<li>If something goes wrong, you don&#8217;t want to leave your system in a broken state, so some sort of rollback/cleanup is necessary.</li>
<li>And finally, if you have a team of developers and multiple servers, having a log and notfication of deploys tends to be a good idea.</li>
</ol>
<p>A common solution, employed by tools such as <a href="http://capify.org">Capistrano</a> is to copy the new files to a directory and then have the document root be a symbolic link that is simply moved from the old release to the new release when the copy has completed.  This nicely solves issues #1 and #2.</p>
<p>In order to solve issues #3 and #4 you have to go a bit beyond a simple symlink swap.  You have to understand what sort of caching is going on.  For a typical PHP application you are going to have 2 main caches you need to worry about and they sort of work together.  There is the opcode cache and the realpath+stat cache.  The opcode cache is a shared memory cache and there is just one of these for all your PHP processes.  The realpath+stat cache is per-process.  When using an opcode cache like APC the realpath is used to determine the filesytem device+inode for a file and this is used as the cache index.</p>
<p>If you ponder the previous paragraph a bit, you should be able to see a potential problem.  If we cache realpath lookups and we then change the docroot symlink, our system is not going to see that symlink change.  Even if we have apc.stat enabled, which checks to see if a file has changed, this check is going to continue to go to the previous version which hasn&#8217;t changed, so we will continue to serve up the old version.  While this may seem like a problem, consider issue #4 above.  By continuing to serve up the old version, we have not messed up any outstanding requests and we are in control over when requests will see the new release.</p>
<p>What we need is a deploy mechanism that is smart enough to do the right thing.  This could be Capistrano with some scripts.  This is what we used at WePay for quite a while and it works ok, but most of our code is in PHP and it made sense to have our deploy system better integrated so I stole the parts of Capistrano I liked, dumped the rest and wrote a PHP-based deploy tool that we now use.  I called it Ploy and the Web interface came to be known as WePloy.  Dumb name, I know, but as they say, naming things, cache invalidation and off-by-one errors are the two hardest things in computer science.</p>
<p>An actual deploy looks like this.  I blurred out (badly) the verbose output of the deploy, it gives the general idea of what people see when they do a deploy at WePay:</p>
<p><iframe  src="http://player.vimeo.com/video/17339542?byline=0&amp;portrait=0" width="536" height="609" frameborder="0" >Seu browser não suporta iframes.</iframe></p>
<p>The code is composed of 3 main parts.  A configuration file in .ini format.  A main PHP script that is directly callable from the command line primarily for scheduled cron deploys and a Web interface.</p>
<p>The configuration file should be mostly self-explanatory and looks like this:</p>
<p><code><br />
; Ploy Configuration File</p>
<p>; Global configuration section that can be overridden inside each<br />
; target section if necessary with #{var} replacement.</p>
<p>deploy_user = deploy<br />
public_key_file = "~/.ssh/deploy_id_rsa.pub"<br />
private_key_file = "~/.ssh/deploy_id_rsa"<br />
scm = svn<br />
scm.user = deploy<br />
scm.passwd = SuperSecretPassword<br />
repository = https://svn.example.com/wepay#{revision}<br />
deploy_to = /var/www/#{application}</p>
<p>[target stage]<br />
application = stage.wepay.com<br />
revision = /branches/release/2010_12_1<br />
hosts[] = 10.2.1.20<br />
hosts[] = 10.2.1.21</p>
<p>[target dev]<br />
application = dev.wepay.com<br />
revision = /trunk<br />
hosts[] = 10.2.1.22</p>
<p>[target rel]<br />
application = wepay.com<br />
revision = /branches/release/2010_12_1<br />
hosts[] = 11.22.33.44<br />
hosts[] = 11.22.33.45<br />
hosts[] = 11.22.33.46<br />
hosts[] = 11.22.33.47<br />
</code></p>
<p>Note the use of public key pairs here.  We set up a deploy user and put the public key on each deploy target machine.  The command-line version of the tool supports password-protected keys, but for unattended cron job deploys and web deploys you are better off without a password on your deploy key.  Individual users can deploy from the command-line from their own accounts if they have the deploy private key as well.</p>
<p>The main script uses <a href="http://pecl.php.net/package/ssh2">pecl/ssh2</a> to scp/sftp files to the remote hosts and to execute remote commands.  The deploy() method in the Ploy class does most of the work.  You can <a href="https://github.com/rlerdorf/WePloy/blob/master/ploy.php#L262">read the code</a> for the details, but in broad strokes it checks out the given branch from source control, cleans it up, creates a tarball and sends that to each host and verifies a checksum to make sure it was not corrupted somehow.  It then creates the new release directory and untars the files into it.</p>
<p>At this point, in order to address issues #3, #4 and #5 we have to do some gymnastics.  Remember the quip about cache invalidation being hard?  Well, it is.  Caches are great for speeding things up and we should all cache heavily.  But it does make things like code deploys a bit trickier.  Here is what we have:</p>
<p><img src="http://blog.wepay.com/wp-content/uploads/2011/11/arch2-300x218.png" alt="Architecture Diagram" /><br />
This shows the serving stack on each web server behind the load balancer.  nginx dispatches FastCGI requests to our PHP-FPM (FastCGI Process Manager) processes.  Each of these processes have a local cache where realpaths and stats are cached.  Then there is the shared APC cache which caches opcode arrays (the compiled PHP scripts) and user cache entries which is application-level data.  When we put our new revision of the code in place, say revision 28 replacing revision 27 in this case, and move the docroot symlink to point to revision 28 we still have the caches pointing to revision 27.  So we need to clear the shared cache, which isn&#8217;t very hard, and we also need to clear the per-process caches which is a little bit harder.</p>
<p>The way I chose to do this is to store the current revision both the deployed script files and in shared memory.  There is a little deploy script that is run on the server at deploy time that substitutes the current revision into a common file included on all requests.  I also run curl to hit a script that sets the revision in shared memory.  Then at the start of the next request in each php-fpm process it will see that the hardcoded revision (remember we are still serving up version 27 files so we have the version 27 hardcoded) is different from the one in shared memory and it will flush its realpath+stat cache and start serving revision 28 files on this request instead.</p>
<p>The code to do this is simple enough.  At the top of your front-controller, if you have one, put something like this:</p>
<p><code>
<pre>
// Set on deploy by deploy script
define('DEPLOY_VERSION','nOtSeT'); 

if(isset($_SERVER['SERVER_NAME'])) {
    $key = $_SERVER['SERVER_NAME'] . '_deploy_version';
    if (($rev=apc_fetch($key)) != DEPLOY_VERSION) {
        apc_clear_cache();
        apc_clear_cache('user');
        if($rev &lt; DEPLOY_VERSION)
            apc_store($key, DEPLOY_VERSION);
    }
}

$key = &#039;php.pid_&#039;.getmypid();
if (($rev=apc_fetch($key)) != DEPLOY_VERSION) {
    if($rev &lt; DEPLOY_VERSION)
        apc_store($key, DEPLOY_VERSION);
    clearstatcache(true);
}
</pre>
<p></code></p>
<p>And I have a <a href="https://github.com/rlerdorf/WePloy/blob/master/setrev.php#L1">setrev.php</a> script in the docroot that sets the revision in shared memory which is hit during the deploy after moving the symlink to the new release.  Read through the <a href="https://github.com/rlerdorf/WePloy/blob/master/ploy.php#L262">deploy method in ploy.php</a> to see the exact sequence of steps.</p>
<p>I have put all the <a href="https://github.com/rlerdorf/WePloy">code on Github</a>.  Feel free to grab it and use it for your own deploys.  Note that you can&#8217;t just drop it in.  You are going to need to go through the deploy method in the Ploy class to make sure it performs all the steps you need.  Also note that on major deploys where everything changes, including the DB schemas, you are likely going to need to take the site offline to do the deploy since you aren&#8217;t going to be able to run the old revision next to the new revision during the upgrade the way this approach does.</p>
<p>In general, having a solid one-button deploy mechanism is essential for any fast-moving development team.  If every production push is an adventure the extra friction will affect the product.  You want production pushes to be something anyone in the company can do safely at any time so it is worth spending a bit of time thinking about how to do it well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/11/30/weploy-wepays-deployment-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plan a ski trip. It&#8217;s easier than you think.</title>
		<link>http://blog.wepay.com/2010/11/30/plan-a-ski-trip-its-easier-than-you-think/</link>
		<comments>http://blog.wepay.com/2010/11/30/plan-a-ski-trip-its-easier-than-you-think/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 16:26:52 +0000</pubDate>
		<dc:creator>Matt Carroll</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.wepay.com/?p=1015</guid>
		<description><![CDATA[<p>Winter is upon us, and the ski season cometh. With Thanksgiving in the rearview mirror and more stomach-stuffing holidays ahead, hitting the slopes can be a great way to get some exercise, stay in shape, and connect with friends. It&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Winter is upon us, and the ski season cometh. With Thanksgiving in the rearview mirror and more stomach-stuffing holidays ahead, hitting the slopes can be a great way to get some exercise, stay in shape, and connect with friends. It also gives those of us in non-wintering places like San Francisco a reason to own all of our fashionable beanies and knit caps.</p>
<p>So, with the slopes glistening in fresh powder it’s time to gear up for that annual snowboarding or ski trip you take with your friends every year, right? One problem: your buddy’s grandparents sold the condo in Aspen and moved to Tampa. That means that this year it’s your job to plan it, start to finish. Never fear; I’m here to make sure you and your mates maximize Snow Season. We’ll make sure you <a href="http://www.abc-of-snowboarding.com/snowboarddictionary.asp">avoid the lawn chair and have you hucking over trannies</a> in no time.</p>
<p><strong>Step 1: Be Prepared</strong></p>
<p>Like any good boy scout will tell you, preparation makes all the difference. Getting your hands on a good snowboarding jacket and pants combo will make your day on the mountain warm and enjoyable. Look for outer gear made with Gore-tex and be sure to layer-up underneath. A good pair of synthetic gloves will insulate even when wet. Goggles will help with dry-eye and windburn, and many are tinted with UV-protecting lenses. And don’t forget sunscreen and SPF-infused chapstick; even though you’re on a frigid mountain, Al Gore and his global warming machine has managed to follow you there too. Experienced riders and my transition lenses will tell you that the sun reflecting off the snow makes for some intense rays. Always go for performance over appearance, but try to avoid looking like our friend to the right.</p>
<p><img class="alignright size-medium wp-image-1018" title="Simon" src="http://blog.wepay.com/wp-content/uploads/2010/11/Simon-246x300.jpg" alt="dress for a ski trip" width="246" height="300" /></p>
<p>Though snowmaking has come a long way since the early days when Yetis would simply groom one another atop mountains, Mother Nature insists on having a say on weather conditions. Check the forecast and be prepared with chains for your tires if your vehicle needs them. Make sure there are enough trails open, otherwise you’ll be waiting in line for the lift longer than it takes to access a WikiLeaks page. Lastly, don’t forget to train. Though recreational, skiing and snowboarding are demanding sports that require coordination, endurance, cardiovascular health, and a great deal of lower-body and core strength. Make sure you’re in fighting shape.</p>
<p><strong>Step 2: Getting Bang for Your Buck</strong></p>
<p>As you might have gathered above, snowboarders and skiers have a lot of unique vocabulary, but they don’t really have a word for ‘cheap.’ (Like the French, they know English but may get offended when you expect them to speak it to you. Do yourself a favor and brush up on some more terms to endear yourself to the host culture). Board and ski rentals, boots and bindings, hotel rooms, transportation, food and drinks and lift tickets can all add up. If you’re renting a board or skis, compare resort prices with those at your local REI, Eastern Mountain Sports, or other outdoor sports store. If your ride has roof racks, you may be able to save 50% on the cost by renting before you get to the mountain.</p>
<p>Resorts can get pricey on the weekend, so consider going midweek and staying for a few days – you can often get discounts on multiple-night stays. The same goes for your lift-tickets. Most places offer discounts on multi-day, family, and student passes, and almost every mountain offers a season pass that can pay for itself after just three or four days on the slopes. Booking in advance is also a cost-saver and can help avoid headaches, but collecting from far-away friends can be a nuisance. Consider setting up a <a href="https://www.wepay.com/Fundraise-for-my-ski-trip">group bank account</a> (it takes less time than you think) to gather funds. Bonus points for using a prepaid Visa card linked to the account to book rooms and passes.</p>
<p><strong>Step 3: Own the Mountain</strong></p>
<p><strong> </strong></p>
<p>Once you’ve got your gear and have booked your trip, there’s nothing left to do but enjoy the fruits of your labor. Now that you’re ready for the slopes it’s time to show what you’ve got. If you’re like me, that’s not much. Go down a black diamond you’re not ready for, and you’ll learn why those guys in the orange suits make so much money, so stick to the trails you can handle. Sliding a nice 50-50 grind on a rail or having a tight run down a tough trail will impress your pals and you’ll have onlookers calling you “dirty pool” in admiration (according to my thesaurus, it means “nice trick or run” and has nothing to do with the quality of the hot tub).</p>
<p>After you’ve wowed your fans, pat yourself on the back and end your day in style with a little après-ski, the fine art of relaxing over classy drinks and delicious food with friends after a long day on the slopes. Or, if the traditional Alps nightcap isn’t your thing, the tried and true <a href="http://images.travelpod.com/users/mikeandtrace/1.1250982237.giant-beer-and-hotdog-take-mike-for-a-walk.jpg">American version</a> can always do the trick.</p>
<p>Catch you on the bunny slopes.</p>
<p><a href="http://www.wepay.com"><img class="aligncenter size-full wp-image-1442" src="http://blog.wepay.com/wp-content/uploads/2011/04/Generic.jpg?utm_source=wepayblog&#038;utm_medium=blog&#038;utm_medium=banner&#038;utm_ref=blog_banner&#038;utm_campaign=generic" alt="" width="728" height="90" /></a></p>
<p><script type="text/javascript">// <![CDATA[
adroll_adv_id = "BWKRPZJT65HEVJWICTE7MI";
adroll_pix_id = "PQ5FOB22GJD3VPTSDM7ES5";
(function () {
var oldonload = window.onload;
window.onload = function(){
   __adroll_loaded=true;
   var scr = document.createElement("script");
   var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com");
   scr.setAttribute('async', 'true');
   scr.type = "text/javascript";
   scr.src = host + "/j/roundtrip.js";
   document.documentElement.firstChild.appendChild(scr);
   if(oldonload){oldonload()}};
}());
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wepay.com/2010/11/30/plan-a-ski-trip-its-easier-than-you-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

