<?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>alex.moskalyuk</title>
	<atom:link href="http://www.moskalyuk.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.moskalyuk.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 30 Nov 2009 19:37:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Predictably&#160;Irrational</title>
		<link>http://www.moskalyuk.com/blog/predictably-irrational/1642</link>
		<comments>http://www.moskalyuk.com/blog/predictably-irrational/1642#comments</comments>
		<pubDate>Mon, 30 Nov 2009 06:48:28 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/predictably-irrational/1642</guid>
		<description><![CDATA[Predictably Irrational by Dan Ariely is an exploration of human behavior which diverts from the logic. Consistently. For example, imagine yourself shopping for a brand new suit and, for whatever reason, a new pen, maybe to accompany your suit. You see the $15 pen, but then remember that you saw the same pen in a [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 0px 5px 5px; display: inline" alt="006135323X" align="right" src="https://images-na.ssl-images-amazon.com/images/I/51a2taJvmXL._SL75_.jpg" /><a href="http://www.amazon.com/gp/product/0061854549?ie=UTF8&amp;tag=moskalyukcom-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0061854549">Predictably Irrational</a> by <strong>Dan Ariely </strong>is an exploration of human behavior which diverts from the logic. Consistently. For example, imagine yourself shopping for a brand new suit and, for whatever reason, a new pen, maybe to accompany your suit. You see the $15 pen, but then remember that you saw the same pen in a different store for $7. The store is not that far (15 minute drive) and you decide that it’s totally worth it to postpone the purchase of the pen and drive by another store to save $8. Then you take a look at the suit. It’s $1,000, but then somehow you recall that a similar one. Same story – the store is 15 minutes away, and it’s $992 there, $8 cheaper.</p>
<p>Most people when faced with these two options will definitely purchase the pen at another store, but will forego a 15-minute drive to purchase the $992 suit. Relatively the savings are different: it’s more than a 50% on the pen, and a tiny sub-percentage point discount on the suit. Nevertheless, in a nutshell in both cases you stand to save $8 by driving 15 minutes. As a rational human, once you decide that a 15-minute drive is worth $8 in savings, you should accept that as an absolute rule. Nevertheless humans behave consistently irrational when faced with such choice in psychological studies conducted by <a href="http://www.amazon.com/Dan-Ariely/e/B001J93B34/ref=ntt_dp_epwbk_0">Dan Arieli</a>.</p>
<p>So what are other examples of inconsistent behavior from Predictably Irrational?</p>
<ol>
<li>When faced with the following choices for magazine subscription: $59 for digital edition, $125 for print edition, and $125 for digital+print edition, 84% opted in for the third option. Well, why not, you get digital+print for the same price as print, practically a steal. However, when the middle option is removed, people overwhelmingly (68%) chose the digital subscription. Comparing a $59 digital subscription with $125 print+digital made people wonder whether they <strong>really</strong> need print subscription at all. Just having a middle option that will never be selected for obvious reasons boosted magazine’s top-of-the-line product. The magazine in question is Economist.
<ul>
<li>Relativity also leads to unexpected results. SEC told public companies that by 1993 they were obliged to disclose the top executives’ pay. Ideally, this would make companies more responsible to shareholders and even out the outrageous executive paychecks. In 1976 a CEO was paid 36 times the average worker pay. Net result? By 1993 the CEO pay was at 131 times average worker pay. Exposing the fat cats did not cause expected shareholder outrage, it encouraged other CEOs to demand higher pay, since now they had hard data telling them they were underpaid. </li>
</ul>
</li>
<li>Having two somewhat similar options together with dissimilar one will make people choose a better deal among similar options. Assuming that you’ve never been to Africa and have no emotional attachment to geographical locations there (choose something neutral to you if you do), what would you rather choose if I gave you a choice of (a) a free trip to Zanzibar that <strong>includes </strong>a free breakfast, (b) free trip to Zimbabwe <strong>without </strong>a free breakfast, (c) free trip to Zimbabwe <strong>with </strong>free breakfast. Most people in psychological studies consistently chose option C. Our brain is wired to compare equals, and comparing A and C without specific knowledge of locations seems like a lost cause. Comparing B and C, however, is a no-brainer – you get a free breakfast or you don’t. C is such an obvious choice, the brain shortcuts, and before long option A is out of the picture.
<ul>
<li>Marketing technique that utilizes this knowledge is called a decoy. Williams-Sonoma accidentally discovered it by adding another, more expensive, product to its breadmaker line. Prior to this breadmakers did not sell very well, being completely new product. When a more expensive machine was added, <a href="http://www.learndirect.co.uk/businessadvice/getnewcustomers/podcasts/one/">the original version seemed like a bargain</a>, and also customers felt that since this was a line, not a one-off product, it must be something worth researching. Sales of the original breadmaker nearly doubled. </li>
</ul>
</li>
<li>In one study participants were asked to write down the last 2 digits of their social security number, and then write an estimated price they would pay for a bunch of unrelated items. Box of Belgian chocolates, bottle of wine, a wireless keyboard – the items were intentionally random so that most people would have a vague idea of what they cost in real world. By asking participants to write down their social security digits, researchers were hoping to prime the mind. The technique worked – people whose social security #s ended with 00-20 overall bid significantly less for the items than those with 80-99 as the first number on the list. The point is not that people with high social security numbers pay more, but the fact that making a person think about the number impacts the decision-making process, if this process involves choosing random numbers. </li>
<li>Offering the item for free has a huge impact, even when the alternative is not that expensive. Arieli set up a stand offering two kinds of treats – Lindt truffles for 15c and Hershey kisses for 1c. The price difference was huge, but most people nevertheless seemed to appreciate Swiss chocolates over Pennsylvanian sugar-and-cocoa-butter concoction – 73% chose Lindt truffles. So another test the book author ran was selling Lindt truffles for 14c and giving Hershey’s kisses away at 0c. The relative difference was still 14c, but this time 69% of the customers chose the kiss. It’s not that 1c previously broke their budget, and all of a sudden a 0c kiss offered huge savings to hungry students. Faced with two paid choices, participants were forced to make a judgement, and in this case went for a more expensive, but higher-quality item. Faced with FREE, participants forgot all about the relative taste differences between Lindt and Hershey product, and overwhelmingly acted on instinct.
<ul>
<li>When Amazon was testing free shipping promotion in different countries, Amazon France did not expect any real change. After all, the French site has been charging customers 1 franc if their shopping cart when over a certain amount. It’s a modern-day equivalent of 20c, what difference could it make, if your shopping cart had to be over $25, where Amazon currently allows you to ship for free? However, going from 1 franc to 0 francs was dramatic. </li>
</ul>
</li>
<li>Setting deadlines works, and having external deadlines seems to work better. The author experimented with 3 of the classes he taught. Class A had specific deadlines on when the papers should be submitted – week 4, week 8 and week 12. Class B was free to choose its own deadlines, but it had to be done in writing – each student was asked to commit to submitting a paper by a certain week, even if the commitment involved writing “week 12” for each one of the three papers. The third class had no deadlines at all, except for the fact that by the end of the course the instructor wanted to have a set of all 12 papers. Which of the classes got better final grades? It was just in the order they were listed – A did best on the exam, followed by B, followed by C.</li>
<li>Accessories matter. The researcher has set up a coffee tasting station by giving away free coffee, which could be complemented with a variety of condiments – sugar, cream, nutmeg, cinnamon, etc. The additives were placed in Styrofoam cups with hand-written notes indicating what they were. The students were then asked the rate the quality of the coffee, supposedly for a new coffee shop that was planning to open its doors to MIT students. Second test involved brewing precisely the same coffee, except this time the condiments were placed in glass-and-steel containers on a nice looking tray with pre-printed labels. Students consistently gave the second coffee much better rating, even though the contents of the pot or the variety of condiments did not change.</li>
<li>People have different expectations for products with various prices. Researchers conducted the experiments where a group of participants was exposed to a new pharmaceutical in a very professional environment – lab coats, brochures, and all. The experimental drug, they were told, was a pain reliever, so to conduct practical tests, they would produce an electrical shock of increasing voltage until the participant pressed the button indicating they’ve reached their maximum pain tolerance level. Price for the new drug? $2.50 a pop. To test the efficiency, the researchers first asked the participants to experience pain with no drug intake, and then undergo the same test. 100% of respondents claimed the pain was relieved and hence medication worked. The same drug was then tested on a different group of people, who accidentally (via a brochure on the table) found out the drug was 10c a pop. In this test, only half of those people claimed the pain reliever worked. The drug? In both cases Vitamin C.</li>
<li>People order differently in public and in private. When groups of people were offered a list of beers to choose from, there was inevitably more variety in the orders than when everybody was handed a menu to write on. Hearing choices of others makes people want to express their individuality, and sometimes they tend to order their 2nd or 3rd choices after hearing what people before them have ordered. Whenever asked in private, the individuals were lacking the information on others’ choices and always went for their first choice.</li>
</ol>
<p>Believe it or not, <a href="http://www.amazon.com/gp/product/0061854549?ie=UTF8&amp;tag=moskalyukcom-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0061854549">Predictably Irrational is available at Amazon</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/predictably-irrational/1642/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Re-introducing VideoGames for Facebook &#8211;&#160;apps.facebook.com/videogames</title>
		<link>http://www.moskalyuk.com/blog/re-introducing-videogames-for-facebook-apps-facebook-comvideogames/1638</link>
		<comments>http://www.moskalyuk.com/blog/re-introducing-videogames-for-facebook-apps-facebook-comvideogames/1638#comments</comments>
		<pubDate>Wed, 17 Jun 2009 07:21:14 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/re-introducing-videogames-for-facebook-apps-facebook-comvideogames/1638</guid>
		<description><![CDATA[This past weekend I finally updated my VideoGames app to the latest Facebook API. VideoGames was written during the original platform hackathon a few days before Facebook platform launch two years ago. Thanks to everybody who stuck around while the app was inoperable, and to those who found deleting the app just too onerous of [...]]]></description>
			<content:encoded><![CDATA[<p>This past weekend I finally updated my <a href="http://apps.facebook.com/videogames/">VideoGames app</a> to the latest Facebook API. VideoGames was written during the original platform hackathon a few days before <a href="http://www.facebook.com/press/releases.php?p=1319">Facebook platform launch</a> two years ago. Thanks to everybody who stuck around while the app was inoperable, and to those who found deleting the app just too onerous of a process.</p>
<p>As before, the app allows you to list which games you own, which ones you want, and which ones you’re currently playing. Once your friends start using the app, you can see the same data for your friends on Facebook.</p>
<p>Other features:</p>
<ul>
<li>you can get to each game via a typeahead</li>
<li>you get short profile stories published each time you add or remove a game, your friends see respective News Feed stories</li>
<li>coming soon – alphabetical sort for games</li>
</ul>
<p><a href="http://apps.facebook.com/videogames"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.moskalyuk.com/blog/wp-content/uploads/image7.png" width="621" height="484" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/re-introducing-videogames-for-facebook-apps-facebook-comvideogames/1638/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If you haven&#8217;t booked your DefCon 2009&#160;trip</title>
		<link>http://www.moskalyuk.com/blog/if-you-havent-booked-your-defcon-2009-trip/1633</link>
		<comments>http://www.moskalyuk.com/blog/if-you-havent-booked-your-defcon-2009-trip/1633#comments</comments>
		<pubDate>Sat, 30 May 2009 21:49:02 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[DefCon]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/if-you-havent-booked-your-defcon-2009-trip/1633</guid>
		<description><![CDATA[Going to DefCon this year? If you are, Orbitz will give you $75 off 3+ night flight+hotel package with coupon 3odwr75, and it works on Las Vegas hotels. So SFO-LAS 3-night&#160; and round-trip airfare package is $229 if you decide to stay at Circus Circus (close to Riviera, but bad hotel experience, unless you end [...]]]></description>
			<content:encoded><![CDATA[<p>Going to <a href="http://defcon.org/">DefCon</a> this year? If you are, <strong>Orbitz</strong> will give you $75 off 3+ night flight+hotel package with coupon <strong>3odwr75</strong>, and it works on Las Vegas hotels. So SFO-LAS 3-night&nbsp; and round-trip airfare package is <strong>$229</strong> if you decide to stay at <a href="http://www.cheapovegas.com/vegas_casino_full.php?hotel_id=1023">Circus Circus</a> (close to Riviera, but bad hotel experience, unless you end up in the new tower), <strong>$263</strong> if you stay at <a href="http://www.cheapovegas.com/vegas_casino_full.php?hotel_id=1032">Las Vegas Hilton</a> (across from <a href="http://www.cheapovegas.com/vegas_casino_full.php?hotel_id=1042">Riviera</a> Convention Center) or <a href="http://www.cheapovegas.com/vegas_casino_full.php?hotel_id=1047">Stratosphere</a> (a little further from Riviera than Hilton). It&#8217;s <strong>$334</strong> with that coupon to stay at Riviera itself. Another 1% off your whole booking if you <a href="http://www.ebates.com/rf.do?referrerid=gN1ki4mf3Hgh%2BAnPGiBI1Q%3D%3D">start your trip from eBates</a>. I wrote <a href="http://www.moskalyuk.com/blog/category/defcon">a few entries</a> when I was at DefCon in 2006 and 2007, was too lazy to write stuff last year.</p>
<p><a href="http://www.moskalyuk.com/blog/wp-content/uploads/image6.png"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="Orbitz screenshot with Riviera, but other places are cheaper, including Circus, Stratosphere, Imperial Palace and Excalibur" src="http://www.moskalyuk.com/blog/wp-content/uploads/image-thumb6.png" width="565" height="484"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/if-you-havent-booked-your-defcon-2009-trip/1633/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How human brain judges&#160;popularity</title>
		<link>http://www.moskalyuk.com/blog/how-human-brain-judges-popularity/1630</link>
		<comments>http://www.moskalyuk.com/blog/how-human-brain-judges-popularity/1630#comments</comments>
		<pubDate>Wed, 20 May 2009 17:02:13 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/how-human-brain-judges-popularity/1630</guid>
		<description><![CDATA[Wall Street Journal today describes the work of Matthew Salganik and Duncan J. Watts (published in Social Psychology Quarterly in December 2008) on researching herd mentality with popularity rankings. 12,000 volunteers were given 48 random fairly obscure songs, and asked to rate them. To help things out, popularity rankings were provided. Except that a certain [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wall Street Journal</strong> today <a href="http://online.wsj.com/article/SB124277816017037275.html">describes the work</a> of Matthew Salganik and Duncan J. Watts (<a href="http://www.asanet.org/galleries/default-file/Dec08SPQFeature.pdf">published in Social Psychology Quarterly in December 2008</a>) on researching herd mentality with popularity rankings. 12,000 volunteers were given 48 random fairly obscure songs, and asked to rate them. To help things out, popularity rankings were provided. Except that a certain group saw the popularity ranking in exactly reverse order – least popular songs appearing on top. You’d think that good songs would still win based on their merit, right?</p>
<blockquote><p>The prior No. 1 began making a comeback on the new top dog, but the <strong>former No. 47 maintained its comfortable lead on the old No. 2</strong>, buoyed by its apparent popularity. Overall, the study showed that popularity is both unstable and malleable.</p>
</blockquote>
<p>Look for page 338 of that PDF document if you want to read the details of the experiment.</p>
<p>Another research Carl Bialik points to is <a href="http://www.econ.duke.edu/~hf14/publication/observationallearning/aerrev2.pdf">Observational Learning: Evidence from a Randomized Natural Field Experiment</a> by Hongbin Cai, Yuyu Chen, and Hanming Fang out of Duke that gave customers of Chinese restaurants a “most popular items” list when they were ordering off the menu:</p>
<blockquote><p>We find that, depending on the specifications, <strong>the demand for the top 5 dishes is increased by an average of about 13 to 20 percent</strong> when the top 5 popularity rankings are revealed to the customers; in contrast, being merely mentioned as some sample dishes does not significantly boost their demand. Moreover, we find some modest evidence that the observational learning effect is stronger among infrequent customers, and that customers’ subjective dining experiences are improved when presented with the information about the top choices by other consumers, but not when presented with the names of some sample dishes.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/how-human-brain-judges-popularity/1630/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yes! 50 Scientifically Proven Ways to Be&#160;Persuasive</title>
		<link>http://www.moskalyuk.com/blog/yes-50-scientifically-proven-ways-to-be-persuasive/1624</link>
		<comments>http://www.moskalyuk.com/blog/yes-50-scientifically-proven-ways-to-be-persuasive/1624#comments</comments>
		<pubDate>Sun, 17 May 2009 04:24:56 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/yes-50-scientifically-proven-ways-to-be-persuasive/1624</guid>
		<description><![CDATA[Noah Goldstein’s, Steve Martin’s (no, not that Steve Martin’s) and Robert Cialdini’s Yes! 50 Scientifically Proven Ways to Be Persuasive is a pop psych book, where a bunch of research in psychology is distilled into one readable volume.
50 scientifically proven ways constitute 50 chapters of the book, longest of which take 7 pages. The authors [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.amazon.com/dp/1416570969?tag=moskalyukcom-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=1416570969&amp;adid=0YXGNAEK9VNMS4XASG60&amp;"><img style="margin: 0px 5px 5px 0px; display: inline" src="https://images-na.ssl-images-amazon.com/images/I/510eRk2Fh3L._SL110_.jpg" border="0" alt="" align="left" /></a>Noah Goldstein’s, Steve Martin’s (no, not <a href="http://www.imdb.com/name/nm0000188/">that Steve Martin</a>’s) and Robert Cialdini’s <a href="https://www.amazon.com/dp/1416570969?tag=moskalyukcom-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=1416570969&amp;adid=0YXGNAEK9VNMS4XASG60&amp;">Yes! 50 Scientifically Proven Ways to Be Persuasive</a> is a pop psych book, where a bunch of research in psychology is distilled into one readable volume.</p>
<p>50 scientifically proven ways constitute 50 chapters of the book, longest of which take 7 pages. The authors take the position that persuasion is a science, not art, hence with the right approach anybody can become the master in the skill of persuasion. So, what are the 50 ways?</p>
<ol>
<li><strong>Inconvenience the audience by creating an impression of product scarcity</strong>. It’s the famous change from “Call now, the operators are standing by” to “If the line is busy, call again”, that greatly improved the call volume by creating the impression that everybody else is trying to buy the same product.</li>
<li><strong>Introduce herd effect in highly personalized form</strong>. The hotel sign in the bathroom informed the guests that many prior guests chose to be environmentally friendly by recycling their towels. However, when the message mentioned that majority of the guests who stayed in this specific room chose to be more environmentally conscious and reused their towels, towel recycling jumped 33%, even though the message was largely the same.</li>
<li><strong>Ads quoting negative behavior en masse reinforces negative behavior</strong>. Petrified Forest National Park A/B tested two versions of a sign imploring people not to steal pieces of petrified forest from the park. One mentioned large amounts of petrified forest taken away on an annual basis, the other one simply asked the visitors not to remove petrified wood. The first one actually tripled the theft ratio as it showed stealing petrified wood as something commonplace. Same effect was observed after airing an ad that implored women to vote, but mentioned that 22 million single women did not vote last year. That kind of information actually portrays not voting as more socially acceptable.</li>
<li><strong>Avoiding magnetic middle</strong>. A California survey measured energy usage of a neighborhood on a week-by-week basis. When the average electricity consumption for the neighborhood was calculated, researchers sent thank-you cards to those using the energy conservatively, and a nice reminder to perhaps conserve to those who used electricity liberally. Net effect? While the liberals tried to cut down on unnecessary energy usage, the conservatives, finding out they’re way below average, suddenly became way more liberal with their energy usage, which actually increased the amount of energy used by the neighborhood. Proposed solution that worked? Sending a smiley face card to conservatives with a request to keep doing what they were doing, instead of pointing out they were at the right end of the bell curve.</li>
<li><strong>Too many options necessitate selection, and hence frustration, when brain decides it’s unnecessary work</strong>. The example here is given by a company that manages retirement funds for other companies, and hence has access to retirement information of 800,000 employees. When employees were offered a choice of 2 funds, roughly 75% signed up for a retirement program. When the number of funds was increased to 59%, even though qualitatively this was a better deal for employees, only 60% decided to sign up. When <strong>Head &amp; Shoulders</strong> brand killed off 11 flavors of the shampoo, leaving only 15 on the market, the sales rose 10%.</li>
<li><strong>Giving away the product makes it less desirable</strong>. Researchers gave one group of people a picture of a pearl bracelet and asked to evaluate its desirability. Another group of people was given the same task, but prior to that was shown an ad, where the same bracelet was given away for free, if you bought a bottle of expensive liqueur. The second group considered the bracelet much less desirable, since mentally a lot of potential buyers (35% of them to be exact) shuffled the bracelet onto “trinkets they give away for free” shelf in their brain.</li>
<li><strong>A more expensive product makes the old version look like a value buy</strong>. An example here is a Williams-Sonoma bread maker. After an introduction of a newer, better, and pricier version, the sales of the old unit actually increased, as couples viewed the new item as “top of the line”, but old product was all of a sudden reasonably-priced, even though a bunch of features were missing.</li>
<li><strong>If a call to action is motivated by fear, people will block it, unless call to action has specific steps</strong>. A group of people received a pamphlet describing the dangers of tetanus infection. It didn’t describe much else. The second group of people got a description of tetanus infection, plus a set of instructions on how to get vaccinated. The second group exhibited much higher sign-up rate for tetanus vaccination than the first one, where many participants tried to block out the high-fear message urging that something as rare as tetanus would never happen to them.</li>
<li><strong>A small gift makes people want to reciprocate</strong>. People who received a small no-strings-attached gift from a stranger were twice as likely to buy raffle tickets from him than those who were just pitched on raffle tickets.</li>
<li><strong>Hand-written Post-It note improves response rate on inter-office letters</strong>. Researchers distributed three sets of questionnaires around the office. The first set included a hand-written Post-It note requesting completion of the survey. The second set got the same survey, with the request to return it hand-written on Page 1. Third group got the same survey with their name mentioned (in type) on page 1 of the survey. Response rates? 75%, 48%, 36%. People appreciated personalized approach, and somehow a Post-It note even highlighted the extra work that someone did before sending out the survey.</li>
<li><strong>How restaurant mints are a personalized affair</strong>. Let’s a say a restaurant provides mints for its customers on the way out. If the amount of tips per week is the baseline for that restaurant, let’s make the waiters include a mint as they give the check to the customer. The tips go up by 3.3%. However, when the waiters offer the mints themselves, prior to signing the check, the tipping amount went up by 14.1%. In yet another experiment, the waiter would present the patrons with 1 mint per guest, then give them the check, then turning around to leave, then, as if remembering something sudden, turning around and giving them yet another mint per guest. Result? 23% increase in tips, as this signaled high amount of personalization.</li>
<li><strong>Attaching no strings increases response to the message</strong>. Using the same hotel as the one mentioned in Chapter 2, researchers tried out two different versions of the sign. The first one: if you reuse the towels, a donation will be made to a nonprofit environmental organization.  The second version: the donation has already been made, since the hotel trusted you’d reuse the towels anyways. Recipients of the second message reused their towels 45% more than the recipients of the first one.</li>
<li><strong>As time goes by, the value of a favor increases in the eyes of the favor-giver, and decreases in the eyes of the favor-receiver</strong>. Researchers asked a group of people in the random office environment to exchange favors and then rate the value of the given/received favor in their eyes. A few weeks later the same employees were reminded of the favor, and asked to evaluate the favor again. Favor-givers consistently assigned higher value to a given favor, while as the time passed by, favor-receivers tended to assign lower value to the received favor.</li>
<li><strong>Asking for small favors changes self-perception, introducing ways for big favors</strong>. Researchers asked a group of homeowners to place a large “Drive Carefully” sign on their front lawn. Only 17% agreed. With the second group of homeowners, 76% of people were ok with road traffic people maintaining the sign on their beautiful lawns. What was the difference between two groups? A few weeks earlier group B was asked to display a small non-intrusive window sign asking drivers to slow down. This mental foot-in-the-door technique made homeowners from the group B view themselves as socially responsible and safety-aware, hence a request for a larger favor few weeks later didn’t startle them.</li>
<li><strong>Labeling people into a social group tends to increase their participation ratio</strong>. A group of people was interviewed regarding their voting patterns. Half of them were told that based on their response criteria, they were very likely to vote, since they were deemed to be more politically active. Later on the election day that specific half did indeed turn up a participation rate that was 15% higher than participation of the control group.</li>
<li><strong>Asking people to substantiate their decision will lead to higher commitment rate on that decision</strong>. Researchers called a group of people asking them how likely they were to vote in an upcoming election. Those who responded positively were either asked nothing, or asked why they felt they would vote. Any reason would suffice, but when the election day came, the turnout for the control group (who all responded “Yes” to the question of whether they were going to vote) was 61.5%. Turnout for the group that actually gave a reason (any reason)? 86.7%. A restaurant stopped telling customers “Please call to cancel your reservation” and started asking “Will you call and let us know if you need to cancel?” Net result? Number of reservation no-shows dropped from 30% to 10%.</li>
<li><strong>Writing things down improves commitment</strong>. Group A was asked to volunteer on AIDS awareness program at local schools, and was asked to commit verbally. Group B was asked for the same kind of volunteer project, but was given a simple form to fill in. 17% of volunteers from Group A actually showed up to their assigned local school. From Group B 49% of volunteers showed up.</li>
<li><strong>The fact that circumstances changed allows people to change their viewpoints without being viewed as inconsistent</strong>. People are generally not thrilled to change their viewpoints on something, as they fear they will display lack of consistency and be called a flip-flopper. Convincing people that their old decision (to stick with the old product) was completely 100% correct under old circumstances allows them to be more responsive to the messages that imply a new product/idea is better because the circumstances radically changed since then.</li>
<li><strong>Sometimes asking people for help makes them more open</strong>. Group A was given some bogus research that included a sum of prize money. After the experiment, the researcher approached them and asked whether it wouldn’t be inconvenient if they had to give the money back, since the researcher was using his own money. Group B was not approached with such request after their portion of bogus experiment was done, and was allowed to keep the money. After this both groups were asked to rate their impression of the researcher. Even though it was the first group who didn’t get to keep any money, all of them consistently rated the researcher higher on likability scale.</li>
<li><strong>Asking for little goes a long way</strong>. Researchers went door-to-door asking for American Cancer Society donations. Group A just asked for a donation, group B ended their spiel with “even a penny would help”. Results? 28.6% response rate for Group A vs. 50% response for Group B.</li>
<li><strong>Lower starting prices attract higher bids</strong>. This is a reference to a study of eBay items where people consistently bid items with a lower starting price higher. The explanation seems to focus on the fact that people invest more time into updating bids for a lower-priced item to let it go.</li>
<li><strong>How to impress a potential customer with credentials without being labeled as a show-off</strong>? Public speakers have someone else introduce them, a real estate company made a slight improvements to their phone service by directing people to “Jane, who has 10 years of experience with houses in upper price range”, and physicians display their diplomas on the walls.</li>
<li><strong>The danger of being the smartest person in the room</strong>. The expert card frequently trumps any other card in the room. The example here is that the scientists who discovered the double-helix of the DNA were never prime DNA experts, which made them “hungrier” for new discoveries, and made them question established rules.</li>
<li><strong>Devil’s advocate example works with large organizations</strong>. Leaders who consistently seek out dissenting opinions earn more respect, and generally have better agreement with people in the room than those who rule by laying down the law and persecuting dissenters.</li>
<li><strong>Negative examples are memorized better than positive examples</strong>. When one group of firefighters went through the list of real-life mistakes other firefighters have made, and another group just went through the list of positive things to do, the first group demonstrated better judgment when faced with real-life tests. Our brain seems to discount the best practices, but single out bad examples of someone else making a mistake.</li>
<li><strong>Admitting negatives up-front might lead to better communication</strong>. When Progressive says that they will compare your rate against their competitors’, and when original VW Bug was introduced in the US, both companies pursued a strategy of highlighting the negative stuff only to open conversation about the true values their product has to offer.</li>
<li><strong>Spinning negative facts as positive allows customers to make a mental link towards the positive</strong>. Among the viewers who viewed an ad advertising restaurant’s cozy atmosphere, an ad advertising the restaurant and lack of parking spaces, and an ad mentioning both, the third group made a connection between cozy atmosphere and bad parking situation. The restaurant was so cozy, the customers reasoned, that they didn’t even have enough parking spots, which made them even cozier in the eyes of a customer.</li>
<li><strong>Admitting you’re wrong makes people trust you more</strong>. Company A published an investors relations report, contributing slump in sales to overall economic climate. Company B said slump of sales was relevant to a few bad decisions by top management. Net result? Investors viewed company B more positively. You’d think that they’d be viewed as a bunch of screw-ups, but admission of a mistake made investors more confident the situation was under control, while company A investors got the uneasy feeling of the ship floating in the waters with captain losing control.</li>
<li><strong>Similarities raise the response rate</strong>. A person named Cindy Johnson received a survey request by mail from someone named Cynthia Johannson. Someone named John Smith received a survey from Gregory Jordan. The name similarity in the first case (note that it’s just phonetic similarity, none of the names are the same) brought up the response rate to 56% vs. regular 30%.</li>
<li><strong>People like the sound of their name, and that defines their vocation</strong>. There are three times as many dentists named Dennis as any other names. Number of Florences living in Florida is disproportionately high, same goes for Louises living in Louisiana.</li>
<li><strong>Verbalization helps interaction</strong>. Waiters who repeat customers’ order to them make 70% more in tips than waiters who just say “Okay”. Our mind subconsciously appreciates the effort taken to ensure the things are perfectly right.</li>
<li><strong>Just smiling makes for a poorer customer service</strong>. Group A was exposed to a hotel clerk smiling, while peppering the customer with questions regarding their preferences and ways to improve their hotel stay. Group B had just a smiling clerk performing her duties. Group B was more likely to rate the smile as fake.</li>
<li><strong>People pay more for the stuff that’s about to disappear</strong>. Oldsmobile sales rose after GM announced the end of life for the line. Australian beef purchases rose after customers learned this year’s supply would be severely diminished because of the weather conditions. Concorde sales took off right after British Airways announced the hyper-speed flights would be shut down.</li>
<li><strong>When people feel something is about to go away, they will stick to perception of the product being better than the new one</strong>. In majority of blind tests customers chose New Coke over Classic Coke. Yet when New Coke was introduced, massive protests were staged. When the same drink was packaged into Classic Coke and New Coke bottles, customers still claimed they preferred the Classic Coke and could taste the difference, even though labeling was the only thing that differed two drinks.</li>
<li><strong>“Because” makes any explanation rational</strong>. In a line to Kinko’s copy machine a researcher asked to jump the line by presenting a reason “Can I jump the line, because I am in a rush?” 94% of people complied. Good reason, right? Okay, let’s change the reason. “Can I jump the line because I need to make copies?” Excuse me? That’s why everybody is in the line to begin with. Yet 93% of people complied. A request without “because” in it (&#8221;Can I jump the line, please?&#8221;) generated 24% compliance.</li>
<li><strong>Asking people to choose reasons themselves might backfire</strong>. Two groups were given an ad by BMW. Group A saw an ad saying “So many reasons to buy a BMW. Can you name 10?” Group B saw an ad saying “So many reasons to buy a BMW. Can you name 1?” After the ad both groups were asked to evaluate their likelihood of buying a BMW. Similar to what’s described in Chapter 5, people who had to name 10 reasons actually named Mercedes-Benz, a competitive brand, as their probable choice, while Group B named BMW as their likely next vehicle, compared to Mercedes-Benz.</li>
<li><strong>People like stocks with more pronounceable names</strong>. Research of stock tickers between 1999 and 2004 looked at the relationship between the phonetic fluency of the stock and its rise through IPO, then 12 months later, then throughout its lifetime. The result? Stocks with more pronounceable names produced higher returns, even though nobody yells out the tickers on the exchange floor anymore.</li>
<li><strong>Rhyming makes the phrases more convincing</strong>. People were asked to evaluate the practical value of parables “Caution and measure will win you treasure” and “Caution and measure will win you riches”. In general proverb A was considered to be more practical and insightful than proverb B.</li>
<li><strong>Amount of information is context-dependent</strong>. A group of people was given an ad for department store A, extolling in great detail the 6 departments that A had. Another group was given a short blurb on store A, presenting mainly abstract information. After that store B was presented to both groups with information on 3 departments given to both groups. The first group thought they preferred A, since A volunteered more information and B seemed shadier in comparison. The second group did exactly the opposite and preferred store B, which volunteered detailed info on 3 departments, while A’s message was an abstract blurb.</li>
<li><strong>Incentive programs need a good start</strong>. A car-wash place gave one group of customers a free car wash after 8 washes, and everybody got their first stamp after their visit. Group B got a free car wash after 10 car washes, with 3 stamps on the card. Both groups needed to make 7 more trips to get a free wash. 19% of the Group A returned, while 34% of the Group B did.</li>
<li><strong>Abstract names allow the customers to come up with reasoning</strong>. Crayola found out that naming colors Cornflower Yellow and Kermit Green worked better than no adjectives attached to colors. The more abstract the connection, the better it seemed to work, as people spent mental time working out the connection between the abstraction and the product in their mind.</li>
<li><strong>Ad campaigns that do not incorporate brands tend to not be remembered</strong>. A good portion of people when asked which company was represented by a bunny and the phrase “going, going, and going” named Duracell as the advertiser. Duracell sales increased with the launch of Energizer Bunny campaign.</li>
<li><strong>Mirrors make people more self-conscious</strong>. A group of trick-or-treating kids was told to pick up one candy from the jar in the living room, while the adult was in a different room on some pretense. Group A had a large mirror placed by the candy jar, group B did not have the mirror. 8.9% of kids with the mirror in the room and 33.7% of the kids with no mirror treated themselves to extra candy. Another group of people was brought in for what was advertised as gel research, and was given a hand paper towel to wipe the gel off while heading for the exit. With the mirror in the hallway, 24% of participants littered, dropping the towel on their way out, with no mirror, 46% threw the paper towel on the floor without bothering to find a trash can.</li>
<li><strong>Negative emotions make people pay more</strong>. Group A was exposed to an emotional movie about the death of someone close to the main character. Group B saw no such movie. Both groups were asked then to name a fair price at which they’d buy the object presented to them. Group A tended to give prices 30% above Group B’s.</li>
<li><strong>Tired people tend to be more receptive to arguments</strong>. No wonder those magic bullet infomercials run so late at night. Both groups were presented to product demo, and then asked to evaluate the possibility of buying it. Group A was tired and a bit sleep-deprived, group B was in good physical condition. Group A was much more prone to buy.</li>
<li><strong>Caffeine increases the argumentativeness of a strong argument</strong>. Group A drank regular orange juice, group B drank orange juice infused with caffeine. Both groups were then presented with a statement on controversial issue. Except one statement then made weak and hasty arguments, while the second statement made a strong case. Both groups equally dismissed the weak argument case. As far as strongly argumentative case, group B was 30% more receptive. A faster-working brain under the influence of caffeine seems to appreciate good arguments.</li>
<li><strong>Face time still beats e-mail time</strong>. Group A was given time to get to know one another in person, then resolve a conflict via e-mail. Group B got a similar task, except no face-to-face communications. 6% of the Group As failed to come up at a good resolution, while 29% of Group Bs arrived at impasse.</li>
<li><strong>Individualism is perceived differently in many countries</strong>. In US and Western Europe a chewing gum campaign that accentuated “you, only better” seemed to get more success, than a similar campaign in Eastern Europe and Asia, with much more collectivism built into the culture. In those countries, emphasizing that chewing gum was much more tolerable for other people who can smell your breath, was perceived better.</li>
<li><strong>Notion of commitment among various cultures differ</strong>. A group of American students was asked to complete a short marketing survey. A few weeks later they got invited for the second survey, which was going to take twice as long. No pay for either survey. The same experiment was conducted among Asian students. The response rates among American students was 22%, response rate among Asian students was 10%. Research suggests that while American students relied only on their own experience, Asian students found out that few of their peers responded to the first request to complete the survey, which triggered their negative response.</li>
<li><strong>Response to voice mail differs among Americans and Japanese</strong>. When faced with a voicemail message, 50% of Americans, and 85% of Japanese hang up. Respondents from Japanese test group pointed out the personal touch of the conversation (intonation, pauses, volume) was important to them and impossible to reproduce over voicemail.</li>
</ol>
<p>If you liked reading review of this book, check out my review of <a href="http://www.moskalyuk.com/blog/predictably-irrational/1642">Predictably Irrational</a>, which is written by a psychology professor and explores the topic of human irrationality in our perfectly rational world.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/yes-50-scientifically-proven-ways-to-be-persuasive/1624/feed</wfw:commentRss>
		<slash:comments>69</slash:comments>
		</item>
		<item>
		<title>Microsoft&#8217;s PHP&#160;Projects</title>
		<link>http://www.moskalyuk.com/blog/microsofts-php-projects/1623</link>
		<comments>http://www.moskalyuk.com/blog/microsofts-php-projects/1623#comments</comments>
		<pubDate>Sun, 17 May 2009 00:23:16 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/microsofts-php-projects/1623</guid>
		<description><![CDATA[On Wednesday Microsoft announced the release of PHP SDK for Windows Azure. It’s a set of classes providing access to Azure platform, that supports cloud storage, cloud computing, queue service, and management of the virtual boxes you’re renting from Azure. The PHP client, that comes complete with a set of PHPUnit tests, is available for [...]]]></description>
			<content:encoded><![CDATA[<p>On Wednesday Microsoft announced the release of <a href="http://blogs.msdn.com/interoperability/archive/2009/05/13/announcing-php-sdk-for-windows-azure-and-much-more.aspx">PHP SDK for Windows Azure</a>. It’s a set of classes providing access to Azure platform, that supports cloud storage, cloud computing, queue service, and management of the virtual boxes you’re renting from Azure. The PHP client, that comes complete with a set of PHPUnit tests, <a href="https://phpazure.svn.codeplex.com/svn/trunk/">is available for checkout here</a>. A quick look around <strong>Codeplex</strong> site shows a few other PHP projects that are either developed by Microsoft, or commissioned/funded by them and developed by somebody else:</p>
<ul>
<li><a href="https://silverlightphp.svn.codeplex.com/svn/EmbedSilverlightContent/">Silverlight PHP</a> – PHP access to Silverlight objects. The download, however, is a Visual Studio solution.</li>
<li><a href="https://sqlcrudphpwizard.svn.codeplex.com/svn/PhpSiteGenerator/">PHP Site Generator</a> – a simple CRUD form builder. Helps if you’ve got a a table (one on SQL Server, looks like) an need to give some users access to create, retrieve, update, and delete the data – the site generator builds out all those forms for you.</li>
<li><a href="https://virtualearthphpkit.svn.codeplex.com/svn/VEKit_MySQL/">PHP client for Virtual Earth</a> – supports both SQL Server and MySQL for backend.</li>
<li><a href="https://webslicesandaccelphp.svn.codeplex.com/svn/WebSlicesAndAccelerators/">Web Slices and Accelerator for IE 8</a> – more a set of tutorials in PHP than a single complete client solution, but some pretty basic stuff, for example, an IE-compatible <a href="https://webslicesandaccelphp.svn.codeplex.com/svn/WebSlicesAndAccelerators/WebSlicesAndAccelerators/Part%202%20-%20Enable%20Web%20Slices/Facebook/">slice that pulls Facebook status</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/microsofts-php-projects/1623/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notes from Percona performance&#160;conference</title>
		<link>http://www.moskalyuk.com/blog/notes-from-percona-performance-conference/1622</link>
		<comments>http://www.moskalyuk.com/blog/notes-from-percona-performance-conference/1622#comments</comments>
		<pubDate>Wed, 29 Apr 2009 06:53:23 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/notes-from-percona-performance-conference/1622</guid>
		<description><![CDATA[I spent two days last week at Percona Performance Conference – a free event that took place parallel to MySQL User Conference &#38; Expo at Santa Clara Convention Center. The content was good, and the organizers packed an impressive amount of 51 presentations, a sessions of lightning talks, and two open Q&#38;A sessions towards the [...]]]></description>
			<content:encoded><![CDATA[<p>I spent two days last week at <a href="http://conferences.percona.com/percona-performance-conference-2009/schedule.html">Percona Performance Conference</a> – a free event that took place parallel to <a href="http://www.mysql.com/news-and-events/users-conference/">MySQL User Conference &amp; Expo</a> at Santa Clara Convention Center. The content was good, and the organizers packed an impressive amount of 51 presentations, a sessions of lightning talks, and two open Q&amp;A sessions towards the end of day, into 24+ hours over 2 days.</p>
<p>In lieu of Sun acquisition by Oracle, there was a lot of conversation regarding where MySQL is headed. <strong>Michael (Monty) Widenius</strong> <a href="http://monty-says.blogspot.com/2009/04/to-be-free-or-not-to-be-free.html">outlined three directions</a> Oracle could take with MySQL: abandon, sell, embrace, and at Percona conference was giving more details on Maria storage engine for MySQL, which looks a lot like InnoDB storage engine, with a new type of indexes.</p>
<p>Here’s a rundown of the sessions I attended with a possible link to slides where available (many slides are in PDF):</p>
<ul>
<li><a href="http://www.percona.com/ppc2009/PPC2009_Gearman.pdf">Return of Gearman</a> – by Eric Day – Gearman is a “manager” server, assigning work to other available boxes, and coordinating the work between clients and workers (servers), so that clients can be unaware of the server pool, and send their requests directly to Gearman. Introducing this extra tier allows then for scaling out the server pool. Gearman also has a variety of native clients and fast protocols (<a href="http://www.oddments.org/?p=55">few more presentations from Eric Day</a>).      <br /><a href="http://www.moskalyuk.com/blog/wp-content/uploads/image5.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Simple Gearman Cluster" border="0" alt="Simple Gearman Cluster" src="http://www.moskalyuk.com/blog/wp-content/uploads/image-thumb5.png" width="644" height="437" /></a> </li>
<li><a href="http://wiki.github.com/stubbornella/oocss">Object-Oriented CSS</a> – Nicole Sullivan presented an overview of the project. Contrary to the advertised name, it’s not a project to make CSS behave <a href="http://www.zazzle.com/css_is_awesome_mug-168716435071981928">as expected</a>, but more of a framework to ensure the same behavior of various grids, templates and modules across different browsers.</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_Fighting_MySQL_Replication_Lag.pdf">Fighting MySQL replication lag</a> – from Peter Zaitsev from Percona. Some pretty useful tips, such as running heavy-duty jobs (ALTER TABLE) directly on the slaves, and reconsidering hardware options for slaves.</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_scaling_with_postgres.pdf">Scaling with Postgres</a> – from Robert Treat – I was surprised at the quantity and quality of Postgres presentations at Percona conference. Having never dealt with Postgres in production, I don’t really have any good opinions on the presentations, but Robert’s slides provide a good deal of gotchas when scaling Postgres.</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_mySQL_2009_speakerV6.pdf">Balanced Patricia Tries</a> – Moshe Shadmon from ScaleDB – a good overview of ScaleDB, where it’s useful, and how it uses tries. It’s an interesting proprietary storage engine.</li>
<li>Working with disk arrays – by Paul Tuckfield – first DBA at YouTube, and also first DBA at Paypal.</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_Tungsten_Proxy_Architectures.pdf">Using proxy architectures</a> – by Robert Hodges – was a pretty in-depth look at proxy architectures and some pitfalls.</li>
<li><a href="http://ebergen.net/emt_new.ppt">EMT Performance Monitoring</a> – from my former colleague at Yahoo! Eric Bergen, now at Proven Scaling – EMT is a script for data collection and aggregation that Proven Scaling found useful to have on their clients’ boxes to get up-to-the-minute view of what exactly happened to the machine right before collapsing.</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_percona_proactive.pdf">Proactive Operational Measures</a> – from Nicklas Westerlund and Augusto Bott – more like an overview of what could potentially go wrong when you’re tasked with the operations side of things.</li>
</ul>
<p>I didn’t go to presentations about <a href="http://www.percona.com/ppc2009/PPC2009_CouchDB_In_20_Minutes.pdf">CouchDB</a>, <a href="http://www.percona.com/ppc2009/PPC2009_amazon_cloud_recipes.pdf">Amazon cloud recipes</a>, and <a href="http://www.percona.com/ppc2009/PPC2009_Schooner_Percona_Presentation.pdf">exploring new hardware</a> (flash memory, multi-core processors) for database servers, but glad to see the authors posting the content of those.</p>
<p>Second day of Percona Conference:</p>
<ul>
<li><a href="http://www.percona.com/ppc2009/PPC2009_Disruptive_Open_Source.pdf">Disruptive innovations in open source</a> – or where do we go from here in regards to MySQL from Baron Schwartz of Percona</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_Performance_Instrumentation.pdf">Performance instrumention</a> – from Cary Millsap – has some pretty good stories even if you know nothing about databases. Such as: don’t ever ask people what the most common performance problems are, since then you’re likely to be led astray. Manuals are very likely to suggest One True Solution for any performance problems, but if you flip through the pages, you will find out there are many One True Solutions to similar sounding problems. Optimization of subsystems might still be useless, when the process on top is broken and un-optimizable.</li>
<li>Pushing the envelope – by Don MakAskill of SmugMug – Don has to store pretty large amounts of data (raw photos in tens of megapixels) for paying clients, and the presentation covered SmugMug experience.</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_Life_of_a_dirty_pageInnoDB_disk_IO.pdf">Internals of InnoDB disk I/O</a> by Mark Callaghan of Google (<a href="http://mysqlha.blogspot.com/2009/04/slides-for-mysql-user-conference-2009.html">slides are posted on his blog</a>)</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_hive_percona_2009_v8.pdf">Hive – distributed data warehousing at Facebook</a> – Hive has been open-sourced by my employer, and it’s a pretty useful layer if your data lives in Hadoop, but you cannot get everyone at the company to run map/reduce jobs. Ashish’s and Prasad’s presentations provides an overview of what Hive is. It’s also one of the few Facebook projects written in Java.</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_BBPostgres.pdf">Multi-terabyte install of Postgres</a> – pretty impressive from Theo Schlossnagle</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_mysql_pagination.pdf">Efficient pagination</a> from Surat Bhati of Yahoo! – every Web developer probably dreads the moment when the pagination code generates something to the extent of SELECT * FROM images LIMIT 1000000,10. Yeah, it’s very unlikely the user will actually browse past the first million images, and Surat’s presentation primarily dealt with the ways of building interfaces around avoiding such queries. Spoiler alert: use Previous and Next, don’t link pages directly, most of the users don’t care about exact counts, and are perfectly fine with seeing “thousands” and “millions”, not “Comments 13,300 – 13,400 of 15,635,611”</li>
<li><a href="http://www.percona.com/ppc2009/PPC2009_Boring_MySQL.pdf">High performance MySQL on a limited hardware budget</a> from Percona</li>
</ul>
<p>I didn’t see: <a href="http://www.percona.com/ppc2009/PPC2009_Hypertable.pdf">Hypertable</a>, <a href="http://www.percona.com/ppc2009/PPC2009_PostgreSQL_Trees.pdf">PostgreSQL trees</a>, Zawodny’s <a href="http://www.percona.com/ppc2009/PPC2009_craigslist_search.pdf">search at Craigslist</a>, <a href="http://www.percona.com/ppc2009/PPC2009_Innodb_Performance_Tuning.pdf">InnoDB tuning</a>, <a href="http://www.percona.com/ppc2009/PPC2009_Ideal_Architecture.pdf">common mistakes</a>, <a href="http://www.percona.com/ppc2009/PPC2009_non_disruptive_backups.pdf">non-disruptive backups</a>, <a href="http://www.percona.com/ppc2009/PPC2009_erlang_scalability.pdf">high-performance Erlang</a>, and <a href="http://www.percona.com/ppc2009/PPC2009-MySQL-Replication-Getting-The-Most-From-Slaves.pdf">tuning MySQL replication</a>, but thankfully those are online.</p>
<p>A few more cool things: MySQL User Conference <a href="http://mysqlconf.blip.tv/posts?view=archive&amp;nsfw=dc">has videos of selected presentations posted at blip.tv</a>, I didn’t watch all, but started wathing <a href="http://mysqlconf.blip.tv/file/2037101/">Don MakAskills’s on SmugMug Tale</a>, and since he didn’t post the slides, that’s the best way to get his presentation. There’s also <a href="http://www.mysqlconf.com/mysql2009/public/schedule/proceedings">a full range of presentations from MySQL Conference 2009 available at the conference site</a>.</p>
<p>Jeremy Zawodny posted <a href="http://jeremy.zawodny.com/blog/archives/011114.html">MySQL and Search at Craigslist</a> on SlideShare, they’re a Sphinx shop, going from 25 MySQL MyISAM FULLTEXT boxes to 10 Sphinx boxes:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:d49ee152-8235-4d4a-8dfb-b05d49519534" class="wlWriterEditableSmartContent">
<div><img style="visibility:hidden;width:0px;height:0px;" border="0" width="425" height="355" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNDA5ODcxNzc*MjQmcHQ9MTI*MDk4NzE4MDg*NiZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJnQ9Jm89Njc2MGYxMTc3YmI4NDZhOGExNTYzZThjZDZmNDQ5ZDcmb2Y9MA==.gif" />
<div style="width:425px;text-align:left" id="__ss_1357206"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/jzawodn/mysql-and-search-at-craigslist?type=presentation" title="MySQL And Search At Craigslist">MySQL And Search At Craigslist</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mysql-and-search-at-craigslist-090428093505-phpapp01&amp;stripped_title=mysql-and-search-at-craigslist" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mysql-and-search-at-craigslist-090428093505-phpapp01&amp;stripped_title=mysql-and-search-at-craigslist" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/jzawodn">jzawodn</a>.</div>
</div>
</div>
</div>
<p>Giuseppe Maxia posted presentation on MySQL 5.1 partitions:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:7e41dbe2-9ba5-4cf3-973c-cdf98f8ae6de" class="wlWriterEditableSmartContent">
<div>
<div style="width:425px;text-align:left" id="__ss_1351200"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/datacharmer/boost-performance-with-mysql-51-partitions?type=powerpoint" title="Boost performance with MySQL 5.1 partitions">Boost performance with MySQL 5.1 partitions</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=partitionsperformance-090427095426-phpapp02&amp;stripped_title=boost-performance-with-mysql-51-partitions" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=partitionsperformance-090427095426-phpapp02&amp;stripped_title=boost-performance-with-mysql-51-partitions" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/datacharmer">Giuseppe Maxia</a>.</div>
</div>
</div>
</div>
<p>Robert Hodges <a href="http://scale-out-blog.blogspot.com/2009/04/mysql-conference-impressions-and-slides.html">posted slides</a> on Tungsten SQL Router, Tungsten replication and using Tungsten with RightScale.</p>
<p>Kazuho Oku shared experience on building a real-time stats service on top of MySQL (Pathtraq is one of the largest in Japan):</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:2dbae996-ea08-4d42-b4dd-6550b5ad59ab" class="wlWriterEditableSmartContent">
<div><img style="visibility:hidden;width:0px;height:0px;" border="0" width="425" height="355" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNDA5ODc1MTMwNDImcHQ9MTI*MDk4NzUxODA*MiZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJnQ9Jm89Njc2MGYxMTc3YmI4NDZhOGExNTYzZThjZDZmNDQ5ZDcmb2Y9MA==.gif" />
<div style="width:425px;text-align:left" id="__ss_1335786"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/kazuho/running-a-realtime-stats-service-on-mysql?type=presentation" title="Running a Realtime Stats Service on MySQL">Running a Realtime Stats Service on MySQL</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pathtraq-mysqlcon09-2-090423235517-phpapp01&amp;stripped_title=running-a-realtime-stats-service-on-mysql" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=pathtraq-mysqlcon09-2-090423235517-phpapp01&amp;stripped_title=running-a-realtime-stats-service-on-mysql" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/kazuho">kazuho</a>.</div>
</div>
</div>
</div>
<p>as well as slides on building a reliable message queue service, Q4M:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6b9518df-164b-4d4b-8434-2e28a1fa9a15" class="wlWriterEditableSmartContent">
<div><img style="visibility:hidden;width:0px;height:0px;" border="0" width="425" height="355" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNDA5ODc1OTAxMzgmcHQ9MTI*MDk4NzU5Mjc*NyZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJnQ9Jm89Njc2MGYxMTc3YmI4NDZhOGExNTYzZThjZDZmNDQ5ZDcmb2Y9MA==.gif" />
<div style="width:425px;text-align:left" id="__ss_1330398"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/kazuho/using-q4m-a-message-queue-storage-engine-for-mysql?type=powerpoint" title="Using Q4M - a message queue storage engine for MySQL">Using Q4M &#8211; a message queue storage engine for MySQL</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=q4m-mysqlcon09-090422213727-phpapp01&amp;stripped_title=using-q4m-a-message-queue-storage-engine-for-mysql" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=q4m-mysqlcon09-090422213727-phpapp01&amp;stripped_title=using-q4m-a-message-queue-storage-engine-for-mysql" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/kazuho">kazuho</a>.</div>
</div>
</div>
</div>
<p>At MySQL Conference, Anders Karlsson did a talk on using libmysqld inside your application:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ea92a481-1083-47f6-b4e7-2cce4561ef98" class="wlWriterEditableSmartContent">
<div>
<div style="width:425px;text-align:left" id="__ss_1355791"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/papablues/libmysqld-introduction?type=presentation" title="Libmysqld Introduction">Libmysqld Introduction</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=libmysqldintroduction-090428040339-phpapp01&amp;stripped_title=libmysqld-introduction" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=libmysqldintroduction-090428040339-phpapp01&amp;stripped_title=libmysqld-introduction" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/papablues">papablues</a>.</div>
</div>
</div>
</div>
<p>MySQL High Availability presentation from MySQL and bwin games:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:f5e278ee-bac1-4504-b3e7-6d7d548a1677" class="wlWriterEditableSmartContent">
<div>
<div style="width:425px;text-align:left" id="__ss_1355841"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/papablues/mysql-ha-presentation?type=presentation" title="MySQL HA Presentation">MySQL HA Presentation</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mysqluc2009hapresentationrk3-1-090428041740-phpapp01&amp;stripped_title=mysql-ha-presentation" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mysqluc2009hapresentationrk3-1-090428041740-phpapp01&amp;stripped_title=mysql-ha-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/papablues">papablues</a>.</div>
</div>
</div>
</div>
<p>MySQL 5.1 Event Scheduler:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:598c9fc5-cd99-444f-b264-b76314714440" class="wlWriterEditableSmartContent">
<div>
<div style="width:425px;text-align:left" id="__ss_1344159"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/datacharmer/mysql-event-scheduler-1344159?type=presentation" title="MySQL event scheduler">MySQL event scheduler</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mysqluc2009eventscheduler-090426125443-phpapp02&amp;stripped_title=mysql-event-scheduler-1344159" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mysqluc2009eventscheduler-090426125443-phpapp02&amp;stripped_title=mysql-event-scheduler-1344159" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/datacharmer">Giuseppe Maxia</a>.</div>
</div>
</div>
</div>
<p>Running multiple MySQL servers on one box:</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:f5379822-b2f5-4294-b758-fe21cef522b8" class="wlWriterEditableSmartContent">
<div>
<div style="width:425px;text-align:left" id="__ss_1344233"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/datacharmer/mysql-sandbox-3?type=presentation" title="MySQL Sandbox 3">MySQL Sandbox 3</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sandbox30-090426131841-phpapp01&amp;stripped_title=mysql-sandbox-3" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sandbox30-090426131841-phpapp01&amp;stripped_title=mysql-sandbox-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/datacharmer">Giuseppe Maxia</a>.</div>
</div>
</div>
</div>
<p><a href="http://blogs.sun.com/kay/resource/slides/AQMMP.pdf">MySQL query manipulation</a> slides <a href="http://blogs.sun.com/kay/entry/slides_from_advanced_query_manipulation">from Kay Roepke</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/notes-from-percona-performance-conference/1622/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Product positioning&#160;ouch</title>
		<link>http://www.moskalyuk.com/blog/product-positioning-ouch/1619</link>
		<comments>http://www.moskalyuk.com/blog/product-positioning-ouch/1619#comments</comments>
		<pubDate>Wed, 08 Apr 2009 16:11:04 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/product-positioning-ouch/1619</guid>
		<description><![CDATA[From Netflix description of Another Cinderella Story:
 
The official description mentions “dropping her iPod”, while in the movie it’s clearly Zune. Emphasized a few times by characters referring to the player as “Whose Zune is it?”, “What’s in your Zune playlist, girl?”, etc. Can imagine there were some calls between the producers and Zune product [...]]]></description>
			<content:encoded><![CDATA[<p>From Netflix description of <a href="http://www.netflix.com/Movie/Another_Cinderella_Story/70103835?trkid=912834">Another Cinderella Story</a>:</p>
<p><a href="http://www.moskalyuk.com/blog/wp-content/uploads/image4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Another Cinderella Story" border="0" alt="Another Cinderella Story" src="http://www.moskalyuk.com/blog/wp-content/uploads/image-thumb4.png" width="659" height="306" /></a> </p>
<p>The official description mentions “dropping her iPod”, while in the movie it’s clearly Zune. Emphasized a few times by characters referring to the player as “Whose Zune is it?”, “What’s in your Zune playlist, girl?”, etc. Can imagine there were some calls between the producers and Zune product placement team.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/product-positioning-ouch/1619/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bret Taylor on how FriendFeed uses&#160;MySQL</title>
		<link>http://www.moskalyuk.com/blog/bret-taylor-on-how-friendfeed-uses-mysql/1616</link>
		<comments>http://www.moskalyuk.com/blog/bret-taylor-on-how-friendfeed-uses-mysql/1616#comments</comments>
		<pubDate>Tue, 07 Apr 2009 06:38:02 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/bret-taylor-on-how-friendfeed-uses-mysql/1616</guid>
		<description><![CDATA[Bret Taylor from FriendFeed presented today at San Francisco MySQL meetup on how FriendFeed uses MySQL. If you’ve read Bret’s blog post previously, the presentation itself wasn’t news, but the Q&#38;A session was pretty good. A few interesting takeaways:

For replication FriendFeed relies on MySQL replication, and it works quite well
They did try document storage systems, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bret.appspot.com/">Bret Taylor</a> from <a href="http://friendfeed.com/">FriendFeed</a> presented today at <a href="http://mysql.meetup.com/30/calendar/9862949/">San Francisco MySQL meetup</a> on <a href="http://bret.appspot.com/entry/how-friendfeed-uses-mysql">how FriendFeed uses MySQL</a>. If you’ve read Bret’s blog post previously, the presentation itself wasn’t news, but the Q&amp;A session was pretty good. A few interesting takeaways:</p>
<ul>
<li>For replication FriendFeed relies on MySQL replication, and it works quite well</li>
<li>They did try document storage systems, including Couch DB, but none proved to be mature enough for production deployment</li>
<li>They’re aware that a write might take longer than usual in this two-phase commit scenario, but they don’t need to present the data in real-time right away – a delay of a few seconds is acceptable for the users</li>
<li>Some users tax the existing index system by following 30,000 friends on FriendFeed</li>
<li>Failover is done manually most of the time – from Bret’s experience with Google and FriendFeed, a babysitter script for automatic failover tends to introduce issues</li>
<li>There are some new sorting parameters ready to be pushed out for FriendFeed, and for each new sorting parameter FriendFeed creates a new set of indexes – there’s never ORDER BY in any of the queries</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/bret-taylor-on-how-friendfeed-uses-mysql/1616/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick CSS-based grids with Blueprint&#160;CSS</title>
		<link>http://www.moskalyuk.com/blog/quick-css-based-grids-with-blueprint-css/1608</link>
		<comments>http://www.moskalyuk.com/blog/quick-css-based-grids-with-blueprint-css/1608#comments</comments>
		<pubDate>Wed, 01 Apr 2009 02:19:12 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/quick-css-based-grids-with-blueprint-css/1608</guid>
		<description><![CDATA[Blueprint CSS is a pretty quick way to design complex grids with CSS. The idea is basic – include the necessary styles, and you get a container for your site with fixed with of 960 px. So it’s not a universal solution, but at least if you’re comfortable with the width of 960, Blueprint will [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blueprintcss.org/">Blueprint CSS</a> is a pretty quick way to design complex grids with CSS. The idea is basic – include the necessary styles, and you get a container for your site with fixed with of 960 px. So it’s not a universal solution, but at least if you’re comfortable with the width of 960, Blueprint will prevent you from <a href="http://www.giveupandusetables.com/">giving up and using tables</a>.</p>
<p>There are just 3 compressed CSS files to include, the third one is only for IE support.</p>
<div class="css" style="font-family:monospace;color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;">&lt;link rel<span class="sy0">=</span><span class="st0">&#8220;stylesheet&#8221;</span> href<span class="sy0">=</span><span class="st0">&#8220;css/blueprint/screen.css&#8221;</span> type<span class="sy0">=</span><span class="st0">&#8220;text/css&#8221;</span> media<span class="sy0">=</span><span class="st0">&#8220;screen, projection&#8221;</span><span class="sy0">&gt;</span><br />
&lt;link rel<span class="sy0">=</span><span class="st0">&#8220;stylesheet&#8221;</span> href<span class="sy0">=</span><span class="st0">&#8220;css/blueprint/print.css&#8221;</span> type<span class="sy0">=</span><span class="st0">&#8220;text/css&#8221;</span> media<span class="sy0">=</span><span class="st0">&#8220;print&#8221;</span><span class="sy0">&gt;</span><br />
&lt;!&#8211;<span class="br0">[</span>if IE<span class="br0">]</span><span class="sy0">&gt;<br />
  &lt;link rel<span class="sy0">=</span><span class="st0">&#8220;stylesheet&#8221;</span> href<span class="sy0">=</span><span class="st0">&#8220;css/blueprint/ie.css&#8221;</span> type<span class="sy0">=</span><span class="st0">&#8220;text/css&#8221;</span> media<span class="sy0">=</span><span class="st0">&#8220;screen, projection&#8221;</span><span class="sy0">&gt;<br />
</span>&lt;!<span class="br0">[</span>endif<span class="br0">]</span>&#8211;<span class="sy0">&gt;</span></span></div>
<p>Then a simple container div will give you a centered area 960 pixels wide:</p>
<div class="php" style="font-family:monospace;color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&#8220;container&#8221;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">  I am a container<span class="sy0">.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>You can attach any of your own styles to that container div, so I had an extra class that painted the container silver for better visualization.<a href="http://www.moskalyuk.com/blog/wp-content/uploads/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Blueprint CSS example - a single container" src="http://www.moskalyuk.com/blog/wp-content/uploads/image-thumb.png" border="0" alt="Blueprint CSS example - a single container" width="644" height="46" /></a></p>
<p>Let&#8217;s say we are going to need a header, a footer, a narrow right sidebar, a narrow left sidebar, and wide area in the center for content. Blueprint provides you with a bunch of classes ranging from <strong>span-1</strong> for 1 column to <strong>span-24</strong> for full 100% width. So for a full-width header and footer we create the following markup:</p>
<div class="php" style="font-family:monospace;color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&#8220;container&#8221;</span><span class="sy0">&gt;</span><br />
   <span class="sy0">&lt;!&#8211;</span> <a href="http://www.php.net/header"><span class="kw3">header</span></a> <span class="sy0">&#8211;&gt;</span><br />
   <span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&#8220;span-24 header&#8221;</span><span class="sy0">&gt;</span><br />
   <span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span><br />
   <span class="sy0">&lt;!&#8211;</span> footer <span class="sy0">&#8211;&gt;</span><br />
   <span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&#8220;span-24 footer&#8221;</span><span class="sy0">&gt;</span><br />
   <span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span><br />
<span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div>
<p>What about the content area with 2 sidebars? With Blueprint CSS, your spans on one row have to equal to 24, so we can either do 1-22-1, or 2-20-2, or 3-18-3, and so on. 8-8-8 would get us a page equally divided into three divs. Let’s go the 2-20-2 route:</p>
<div class="css" style="font-family:monospace;color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;">&lt;div class<span class="sy0">=</span><span class="st0">&#8220;container&#8221;</span><span class="sy0">&gt;</span>  &lt;!&#8211; header &#8211;<span class="sy0">&gt;</span> </p>
<p>  &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-24 header&#8221;</span><span class="sy0">&gt;</span>Header &lt;/div<span class="sy0">&gt;</span></p>
<p>  &lt;!&#8211; <span class="kw1">content</span> &#8211;<span class="sy0">&gt;</span></p>
<p>  &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-2&#8243;</span><span class="sy0">&gt;</span>I am the <span class="kw1">left</span> column&lt;/div<span class="sy0">&gt;</span></p>
<p>  &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-20&#8243;</span><span class="sy0">&gt;</span>I am the main <span class="kw1">content</span> area&lt;/div<span class="sy0">&gt;</span></p>
<p>  &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-2 last&#8221;</span><span class="sy0">&gt;</span>I am the <span class="kw1">right</span> column&lt;/div<span class="sy0">&gt;</span></p>
<p>  &lt;!&#8211; footer &#8211;<span class="sy0">&gt;</span></p>
<p>  &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-24 footer&#8221;</span><span class="sy0">&gt;</span>Footer&lt;/div<span class="sy0">&gt;</span></p>
<p>&lt;/div<span class="sy0">&gt;</span></div>
<p>There&#8217;s another nuance to the markup above – the right sidebar has to have the last class. If I add some additional coloring to those divs, here’s a sample layout I’ve built with the code above:</p>
<p><a href="http://www.moskalyuk.com/blog/wp-content/uploads/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Three - column layout with Blueprint CSS" src="http://www.moskalyuk.com/blog/wp-content/uploads/image-thumb1.png" border="0" alt="Three - column layout with Blueprint CSS" width="644" height="63" /></a>But wait, there’s more. You can host divs inside divs without worrying about them overflowing. Let’s say we wanted to make the right column wider, up to 10 columns, which would make the central column become a <strong>span-12</strong>. And inside that right sidebar that’s a span-10 we wanted to host 2 divs per line, span-5 each, perhaps displaying an image, or a square ad. You can host two <strong>span-5</strong> divs inside a <strong>span-10</strong>, or even a <strong>span-10</strong> ad inside a <strong>span-10</strong>:</p>
<div class="css" style="font-family:monospace;color: #006; border: 1px solid #d0d0d0; background-color: #f0f0f0;">&lt;div class<span class="sy0">=</span><span class="st0">&#8220;container&#8221;</span><span class="sy0">&gt;</span><br />
   &lt;!&#8211; header &#8211;<span class="sy0">&gt;</span><br />
   &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-24 header&#8221;</span><span class="sy0">&gt;</span>Header&lt;/div<span class="sy0">&gt;</span><br />
 <br />
  &lt;!&#8211; <span class="kw1">content</span> &#8211;<span class="sy0">&gt;</span><br />
   &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-2&#8243;</span><span class="sy0">&gt;</span>I am the <span class="kw1">left</span> column&lt;/div<span class="sy0">&gt;</span><br />
   &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-12&#8243;</span><span class="sy0">&gt;</span>I am the main <span class="kw1">content</span> area&lt;/div<span class="sy0">&gt;</span><br />
   &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-10 last&#8221;</span><span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-10 last&#8221;</span><span class="sy0">&gt;</span>Ads&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5&#8243;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5 last&#8221;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5&#8243;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5 last&#8221;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5&#8243;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5 last&#8221;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5&#8243;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
     &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-5 last&#8221;</span><span class="sy0">&gt;</span>I am some kind of ad&lt;/div<span class="sy0">&gt;</span><br />
   &lt;/div<span class="sy0">&gt;</span></p>
<p>  &lt;!&#8211; footer &#8211;<span class="sy0">&gt;</span><br />
   &lt;div class<span class="sy0">=</span><span class="st0">&#8220;span-24 footer&#8221;</span><span class="sy0">&gt;</span>Footer&lt;/div<span class="sy0">&gt;</span><br />
&lt;/div<span class="sy0">&gt;</span></div>
<p>With some colorful background we get this grid:<br />
<a href="http://www.moskalyuk.com/blog/wp-content/uploads/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Alternating ads in a sidebar with Blueprint CSS" src="http://www.moskalyuk.com/blog/wp-content/uploads/image-thumb2.png" border="0" alt="Alternating ads in a sidebar with Blueprint CSS" width="644" height="98" /></a></p>
<p>There’s a <a href="http://wiki.github.com/joshuaclayton/blueprint-css/quick-start-tutorial">pretty good quickstart tutorial</a> on Blueprint github Wiki page. There’s also <a href="http://www.blueprintcss.org/tests/parts/sample.html">an example page</a> that implements a somewhat complicated grid:</p>
<p><a href="http://www.moskalyuk.com/blog/wp-content/uploads/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="A sample page grid with Blueprint CSS" src="http://www.moskalyuk.com/blog/wp-content/uploads/image-thumb3.png" border="0" alt="A sample page grid with Blueprint CSS" width="448" height="484" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/quick-css-based-grids-with-blueprint-css/1608/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>uWink in Mountain View,&#160;CA</title>
		<link>http://www.moskalyuk.com/blog/uwink-in-mountain-view-ca/1595</link>
		<comments>http://www.moskalyuk.com/blog/uwink-in-mountain-view-ca/1595#comments</comments>
		<pubDate>Mon, 02 Mar 2009 03:23:47 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Silicon Valley]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/uwink-in-mountain-view-ca/1595</guid>
		<description><![CDATA[uWink is Nolan Bushnell’s next iteration on combining games and food after founding Chuck E. Cheese’s (and before that, Atari). It’s good news for those who enjoy casual gaming while waiting for food, and a bit of bad news for aspiring waiters, as they’re mostly replaced by touch-screen LCD screens. Sure, you still need someone [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.uwink.com/">uWink</a> is Nolan Bushnell’s next iteration on combining games and food after founding Chuck E. Cheese’s (and before that, Atari). It’s good news for those who enjoy casual gaming while waiting for food, and a bit of bad news for aspiring waiters, as they’re mostly replaced by touch-screen LCD screens. Sure, you still need someone to seat people, someone to refill your iced tea, and someone to bring the food from the kitchen, but for the space the they occupy (I think the capacity is at 150 or so) they only had 2-3 waiters.</p>
<p>Everything you order is off <a href="http://www.flickr.com/photos/moskalyuk/sets/72157614640934244/">a colorful touch-screen menu</a> (all apps are written in Flash, looks like). While you’re waiting for drinks and appetizers, you can play games by yourself, with your lunch buddy, who gets their own screen, or with anyone else at the restaurant, as they advertise trivia nights by the entrance. They also have movie nights.</p>
<p>Food ordering process is where touch screens excel, since your burger can have thousands of configurations, single or double patty, choice of 5 cheeses, 5 types of buns, about 20 additional toppings and 20 more sauces, with 5 side items. With waiters I think I’d be more likely to choose some default configuration, with uWink’s UI it’s a challenge of how complex of a burger one can build. Payment and tipping is done through the same touch screen display – there’s a card reader on the side. The receipt can optionally be sent to your e-mail, and once you give them your e-mail, you’re asked to join their mailing list as well, which I did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/uwink-in-mountain-view-ca/1595/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Startup2Startup dinner with Jeffrey&#160;Veen</title>
		<link>http://www.moskalyuk.com/blog/startup2startup-dinner-with-jeffrey-veen/1594</link>
		<comments>http://www.moskalyuk.com/blog/startup2startup-dinner-with-jeffrey-veen/1594#comments</comments>
		<pubDate>Fri, 27 Feb 2009 07:34:50 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Silicon Valley]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/startup2startup-dinner-with-jeffrey-veen/1594</guid>
		<description><![CDATA[Jeffrey Veen of Adaptive Path, MeasureMap, and now Google Analytics spoke at Startup2Startup dinner tonight. He covered startup design, and had a pretty good strategy as well as warnings. One of the warnings he had was on the current trend of copying the leader of the pack, the way you see iPhone UI replicated in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.veen.com/jeff/index.html">Jeffrey Veen</a> of Adaptive Path, MeasureMap, and now Google Analytics <a href="http://startup2startup.com/2009/02/12/feb26-jeffveen/">spoke</a> at <a href="http://startup2startup.com/">Startup2Startup</a> dinner tonight. He covered startup design, and had a pretty good strategy as well as warnings. One of the warnings he had was on the current trend of copying the leader of the pack, the way you see iPhone UI replicated in newer models from Samsung and LG. Without real knowledge and understanding of <strong>why</strong> certain features are there it’s very hard to get the product right, even if the outer shell looks very similar to the successful competitor’s product.</p>
<p>A lot of the copying has to do with the cargo cult of the believing that if you have the right components of somebody else’s successful design in place, you’ll get the core of the product right as well, or at least fool the users into treating your product with the same respect as competitors’.</p>
<p>Veen also <a href="http://dshen.posterous.com/jeff-veen-at-startup2startup">discussed</a> the creative process behind <a href="http://wikirank.com/">WikiRank</a>, his brand new, and yet unlaunched, project. Process might be a strong word for the strategy of rapid prototyping, which is not that expensive to do nowadays with Web products. Instead of spending time on designer mocks in high resolution, where people get distracted into discussing the qualities of the graphic design, focus on building wireframes and core pages, iterate as necessary, perhaps with pair coding of one person doing the front-end, and another one building out the model on the back-end.</p>
<p>Recommendations for testing on the budget? Projects like <a href="http://www.usertesting.com/">UserTesting.com</a> are pretty effective with getting the users to your site, and getting the videos back to you, so you can test out feature by feature, and do things like A/B testing in pretty short time spans. Inviting the users in person via Craigslist and paying them in gift cards also worked out, but don’t have designers in the same room, as they get emotionally attached to the tested product.</p>
<p>The video of this talk is not (yet) available. <a href="http://500hats.typepad.com/">Dave McClure</a> might announce when it gets posted, but if you never heard Jeffrey Veen presented, here’s a fairly recent video of his talk from UX Week conference.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:921dbe5f-cca9-4b1c-b7c6-e86e10248c40" class="wlWriterEditableSmartContent">
<div><object width="400" height="302"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3250006&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3250006&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"></embed></object><br /><a href="http://vimeo.com/3250006">Jeffrey Veen | UX Week 2008 | Adaptive Path</a> from <a href="http://vimeo.com/adaptivepath">Adaptive Path</a> on <a href="http://vimeo.com">Vimeo</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/startup2startup-dinner-with-jeffrey-veen/1594/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSP Communications&#160;cramming</title>
		<link>http://www.moskalyuk.com/blog/osp-communications-cramming/1592</link>
		<comments>http://www.moskalyuk.com/blog/osp-communications-cramming/1592#comments</comments>
		<pubDate>Sat, 21 Feb 2009 19:56:45 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/?p=1592</guid>
		<description><![CDATA[At home I keep a separate phone line just for my DSL connection. It&#8217;s a metered local calling plan, the cheapest you can get from AT&#38;T, since with zero calls a month there&#8217;s nothing to meter, as there&#8217;s not even a phone device plugged in anywhere at the house. Imagine my surprise then, when reviewing [...]]]></description>
			<content:encoded><![CDATA[<p>At home I keep a separate phone line just for my DSL connection. It&#8217;s a metered local calling plan, the cheapest you can get from AT&amp;T, since with zero calls a month there&#8217;s nothing to meter, as there&#8217;s not even a phone device plugged in anywhere at the house. Imagine my surprise then, when reviewing my bill from a month ago I discovered a charge from <strong>OSP Communications</strong> for a collect calls, supposedly from New Mexico, that my DSL modem supposedly accepted. A <a href="http://www.scour.com/search/web/osp+communications">quick search for OSP Communications</a> painted quite a picture &#8211; it&#8217;s rarely a good sign when the first few results for a company name include <a href="http://consumerist.com/tag/osp-communications/">consumerist.com</a>, <a href="http://www.ripoffreport.com/reports/0/322/RipOff0322716.htm">ripoffreport.com</a> and <a href="http://www.complaintsboard.com/complaints/osp-communications-c107353.html">complaintsboard.com</a>.</p>
<p>It seems that OSP Communications quite frequently engages in <a href="http://en.wikipedia.org/wiki/Cramming">cramming</a>, supplying random artificial charges to a phone company under false pretenses. Since there&#8217;s no official company Web site, it&#8217;s hard to say whether cramming is its major business model, or occasional mistakes are made. Judging by the reports left on the various complaint boards, cramming seems to be the primary business objective of the company, so it&#8217;s certainly surprising they&#8217;ve been able to stay in business for that long. To be fair, their customer service was quick to acknowledge this was a mistake, and offered to add my phone number to a blacklist to ensure &#8220;something like this will never happen again&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/osp-communications-cramming/1592/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parrot getting ready for 1.0 release by Q1&#160;2009</title>
		<link>http://www.moskalyuk.com/blog/parrot-getting-ready-for-10-release-by-q1-2009/1590</link>
		<comments>http://www.moskalyuk.com/blog/parrot-getting-ready-for-10-release-by-q1-2009/1590#comments</comments>
		<pubDate>Tue, 13 Jan 2009 08:53:35 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/parrot-getting-ready-for-10-release-by-q1-2009/1590</guid>
		<description><![CDATA[Allison Randall from O’Reilly spoke about Parrot at last week’s San Francisco PHP meetup. Parrot is a pretty interesting project, whose goal is to build a unified virtual machine for scripting languages. 
Wait, another virtual machine? Is there a world shortage of virtual machines, not satisfied by .NET and Java? Well, yeah. The current lifecycle [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://radar.oreilly.com/allison/">Allison Randall</a> from O’Reilly spoke about Parrot at last week’s <a href="http://www.meetup.com/sf-php/calendar/9053826/">San Francisco PHP meetup</a>. <a href="http://www.parrot.org/">Parrot</a> is a pretty interesting project, whose goal is to build a unified virtual machine for scripting languages. </p>
<p>Wait, another virtual machine? Is there a world shortage of virtual machines, not satisfied by .NET and Java? Well, yeah. The current lifecycle of a scripted app involves passing the scripted PHP/Python/Perl/Ruby code to interpreter, which then sits between the scripted file and the OS layer. For each new hardware platform you’d have to port the proper interpreter. Parrot attempts to define <a href="http://www.parrotcode.org/docs/ops/">a set of opcodes</a> that are portable to specific hardware platforms. All the scripts within Parrot would be <a href="http://www.parrotcode.org/docs/compiler_faq.html">compiled</a> to <a href="http://www.parrotcode.org/docs/parrotbyte.html">Parrot bytecode</a>. It’s also a register-based virtual machine, not stack-based, which supposedly will offer some sweet benefits in the future, such as not having to worry about stack overflow when designing a security model for a new language.</p>
<p>You can get the current trunk of Parrot from their SVN repository, but they’re still a few months away from 1.0.</p>
<blockquote><pre>svn co https://svn.perl.org/parrot/trunk parrot
cd parrot
perl Configure.pl
make
make test
make html</pre>
</blockquote>
<p>They also support <a href="https://trac.parrot.org/parrot/wiki/Languages">multiple languages</a> by now, including <a href="http://en.wikibooks.org/wiki/Parrot_Virtual_Machine/Languages_on_Parrot">PIPP</a> – PIPP is Parrot’s PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/parrot-getting-ready-for-10-release-by-q1-2009/1590/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why thinking in analogies is&#160;dangerous</title>
		<link>http://www.moskalyuk.com/blog/why-thinking-in-analogies-is-dangerous/1587</link>
		<comments>http://www.moskalyuk.com/blog/why-thinking-in-analogies-is-dangerous/1587#comments</comments>
		<pubDate>Wed, 26 Nov 2008 09:19:16 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://www.moskalyuk.com/blog/why-thinking-in-analogies-is-dangerous/1587</guid>
		<description><![CDATA[There’s a provocative article in the October issue of Fast Company magazine that’s adapted from the book Iconoclast: A Neuroscientist Reveals How to Think Differently by Gregory Burns. In it, the author explores the process of creativity by analyzing the brain activity that’s happening when a truly creative or inventive thought hits the brain. Some [...]]]></description>
			<content:encoded><![CDATA[<p>There’s a <a href="http://www.fastcompany.com/magazine/129/rewiring-the-creative-mind.html?page=0,0">provocative article</a> in the October issue of <a href="http://www.fastcompany.com">Fast Company</a> magazine that’s adapted from the book <a href="https://www.amazon.com/dp/1422115011?tag=moskalyukcom-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=1422115011&amp;adid=0X5CGR3MTX43JJ80ATM7&amp;">Iconoclast: A Neuroscientist Reveals How to Think Differently</a> by Gregory Burns. In it, the author explores the process of creativity by analyzing the brain activity that’s happening when a truly creative or inventive thought hits the brain. Some bad news:</p>
<ol>
<li>Offsites and scheduled brainstorms are ineffective, as the brain has time to prepare, and it becomes a routine procedure.</li>
<li>Analogies are brain’s shortcuts designed to avoid creative process.</li>
</ol>
<p>The second point is the most interesting. Lazy by nature, human brain prefers to use analogies instead of starting a hardcore creative thinking session. Analogies are fast and convenient, the brain knows how to deal with them, and hence always tries to use them up before coming up with anything truly original.</p>
<blockquote><p>Fortunately, the networks that govern both perception and imagination can be reprogrammed. By deploying your attention differently, the frontal cortex, which contains rules for decision making, can reconfigure neural networks so that you can see things that you didn&#8217;t see before. You need a novel stimulus &#8212; either a new piece of information or an unfamiliar environment &#8211; to jolt attentional systems awake. The more radical the change, the greater the likelihood of fresh insights.</p>
</blockquote>
<p>The article (I haven’t read the book) then lists a few examples of innovative processes that happened outside of the usual environments, thus leading to striking discoveries.</p>
<p>It seems that software engineering, an occupation that is usually connected with creative spark among most observers, is most of the time an exercise of relying on analogies. When you’re in college, you go through data structures and algorithms course, which teaches the generally accepted ways of running a queue or generating a number of permutations from a set of numbers. Later on, in the field, we frequently refer to design patterns, frameworks or best practices to bring previously acquired analogies into the new project we’re working on.</p>
<p>Analogy usage is incentivized – most of the software engineers would expect higher pay for more years of experience, which implies either a better ability to project analogies onto existing project (senior engineers which code faster) or a wider exposure to various projects in the past (senior engineers who have architectural knowledge about a variety of projects).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.moskalyuk.com/blog/why-thinking-in-analogies-is-dangerous/1587/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
