<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Lifestyle business</title>
	
	<link>http://www.volinrok.com</link>
	<description>Записки о софтверном бизнесе</description>
	<lastBuildDate>Fri, 30 Sep 2011 02:23:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/volinrok" /><feedburner:info uri="volinrok" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Автореспондеры – зло</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/b1IpncOOxXo/</link>
		<comments>http://www.volinrok.com/2011/09/29/avtorespondery-zlo/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 02:23:52 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=947</guid>
		<description><![CDATA[Ничто меня не бесит так, как автореспондеры. После каждой рассылки насыпается пара сотен автоматических ответов. Я получил ваше письмо, я не получил, но получу и прочту, меня нет на месте, наш специалист свяжется с вами, я в отпуске, я родил малыша, я уволился. Да кому какое дело, что там у тебя. Не о тебе речь [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-948" title="recompile_linux_on_vacation" src="http://www.volinrok.com/wp-content/uploads/recompile_linux_on_vacation.png" alt="" width="500" height="550" /></p>
<p>Ничто меня не бесит так, как автореспондеры. После каждой рассылки насыпается пара сотен автоматических ответов. Я получил ваше письмо, я не получил, но получу и прочту, меня нет на месте, наш специалист свяжется с вами, я в отпуске, я родил малыша, я уволился. Да кому какое дело, что там у тебя. Не о тебе речь вообще.</p>
<p>Единственный вариант, когда автореспондеры смысл имеют - это внутренняя переписка большой компании. "Я в отпуске. По срочным вопросам свяжитесь с тем-то". Точка. Не должен бизнес компании зависеть от того, в отпуске ли какой-то сотрудник или нет. В конце концов есть форма на сайте, есть телефон, есть емайл адреса, которые мониторит несколько сотрудников. Все остальное от лукавого.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<blockquote><p>&nbsp;</p></blockquote>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=b1IpncOOxXo:PQUgjEa06kk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=b1IpncOOxXo:PQUgjEa06kk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=b1IpncOOxXo:PQUgjEa06kk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=b1IpncOOxXo:PQUgjEa06kk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=b1IpncOOxXo:PQUgjEa06kk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=b1IpncOOxXo:PQUgjEa06kk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/09/29/avtorespondery-zlo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2011/09/29/avtorespondery-zlo/</feedburner:origLink></item>
		<item>
		<title>Traveliving или живи путешествуя</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/zfMQOYmNigY/</link>
		<comments>http://www.volinrok.com/2011/09/26/traveliving-ili-zhivi-puteshestvuya/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 18:22:03 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=934</guid>
		<description><![CDATA[Мотивационный пост. Коллекция блогов людей и семей, сделавших путешествие образом жизни. Как обычно, я им всем немного завидую. 1. Джерри и Адриана Джерри - разработчик приложений для iPhone. Путешествует с женой Адрианой, работает откуда придется и у него это неплохо получается. 2. The Unstoppable family Вы скажете стиль жизнь-путешествие не подходит для семейных пар с [...]]]></description>
			<content:encoded><![CDATA[<p>Мотивационный пост. Коллекция блогов людей и семей, сделавших путешествие образом жизни. Как обычно, я им всем немного завидую.</p>
<p>1. <a href="http://www.shenventure.com/">Джерри и Адриана</a></p>
<p>Джерри - разработчик приложений для iPhone. Путешествует с женой Адрианой, работает откуда придется и у него это неплохо получается.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/hongkong.jpg"><img class="aligncenter size-medium wp-image-938" title="Hong Kong" src="http://www.volinrok.com/wp-content/uploads/hongkong-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>2. <a href="http://unstoppablefamily.com/">The Unstoppable family</a></p>
<p>Вы скажете стиль жизнь-путешествие не подходит для семейных пар с детьми и будете в чем-то правы. Но Unstoppable family путешествует с дочерью уже три года и все у них получается. Дочь ходит в школы, там где они живут в данный момент и так же занимаются домашним обучением.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/Office-at-Pipa-Beach-Club.jpg"><img class="aligncenter size-full wp-image-940" title="Office-at-Pipa-Beach-Club" src="http://www.volinrok.com/wp-content/uploads/Office-at-Pipa-Beach-Club.jpg" alt="" width="720" height="540" /></a></p>
<p>Советую посмотреть <a href="http://unstoppablefamily.com/2011/09/you-asked-so-we-answered/">вопросы и ответы</a>. Самым полезным для путешествий иностранным языком они считают испанский.</p>
<p>Зарабатывают они на жизнь какой-то мутной ерундой типа MLM, но в остальном интересно почитать.</p>
<p>3. <a href="http://traveliving.org/">Аджей и Маша</a></p>
<p>Профессиональные трэвеливеры, в путешествии уже несколько лет. Сдают квартиру в Москве, немного подрабатывают фрилансерством и блогом. Путешествуют по Юго-Восточной Азии. Пишут интересно.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/panglao-alona-beach41.jpg"><img class="aligncenter size-full wp-image-941" title="panglao-alona-beach41" src="http://www.volinrok.com/wp-content/uploads/panglao-alona-beach41.jpg" alt="" width="777" height="518" /></a></p>
<p>4. <a href="http://mirputeshestvii.ru/community/blogs/axel/drugaya_zhizn/">Другая жизнь</a></p>
<p>Axel - фрилансер, любящий узнавать что-то новое. По его словам, путешествия, даже самые экзотические, это не так дорого.</p>
<p>Рекомендую почитать про <a href="http://mirputeshestvii.ru/read/reports/voshozhdenie_na_kilimandzharo_v_fevrale_2011/">восхождение на Килиманджаро</a>, впечатляет.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/mawenzi.jpg"><img class="aligncenter size-full wp-image-939" title="mawenzi" src="http://www.volinrok.com/wp-content/uploads/mawenzi.jpg" alt="" width="600" height="399" /></a></p>
<p>5. <a href="http://shooow.me">Shooow me</a></p>
<p>Владимир и Ольга совмещают приятное с полезным, путешествуют, ведут журнал и находят спонсоров, которые им помогают со всеми этими делами. Вернулись из путешествия по Юго-Востоной Азии и планируют путешествие в Южную Америку.</p>
<p><a href="http://www.volinrok.com/wp-content/uploads/87fca1.jpg"><img class="aligncenter size-full wp-image-937" title="87fca1" src="http://www.volinrok.com/wp-content/uploads/87fca1.jpg" alt="" width="720" height="443" /></a></p>
<p>&nbsp;</p>
<p><strong>А что тебе не дает сорваться с места прямо сейчас?</strong></p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=zfMQOYmNigY:Z_etVV0SrTM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=zfMQOYmNigY:Z_etVV0SrTM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=zfMQOYmNigY:Z_etVV0SrTM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=zfMQOYmNigY:Z_etVV0SrTM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=zfMQOYmNigY:Z_etVV0SrTM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=zfMQOYmNigY:Z_etVV0SrTM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/09/26/traveliving-ili-zhivi-puteshestvuya/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2011/09/26/traveliving-ili-zhivi-puteshestvuya/</feedburner:origLink></item>
		<item>
		<title>What client wants client gets</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/tauoDKRmpUU/</link>
		<comments>http://www.volinrok.com/2011/09/23/what-client-wants-client-gets/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 14:24:04 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=927</guid>
		<description><![CDATA[&#160; Размышлизмы, навеянные рассылками по клиентской базе. 1. Распродажи аля Groupon работают Спасибо Групону, народ привык покупать всякую малонужную ерунду со значительной скидкой в надежде когда-нибудь воспользоваться ей. Рецепт: возьмите пару-тройку своих продуктов, которые продаются слабо,  объедините их в бандл, сделайте скидку процентов 60-80 и сделайте рассылку по списку клиентов. Для убедительности ограничьте срок действия [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><a href="http://www.volinrok.com/wp-content/uploads/analogy.jpg"><img class="aligncenter size-medium wp-image-930" style="border: 1px solid black;" title="What client wants client gets" src="http://www.volinrok.com/wp-content/uploads/analogy-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Размышлизмы, навеянные рассылками по клиентской базе.</p>
<h3><strong>1. Распродажи аля Groupon работают</strong></h3>
<p>Спасибо Групону, народ привык покупать всякую малонужную ерунду со значительной скидкой в надежде когда-нибудь воспользоваться ей. Рецепт: возьмите пару-тройку своих продуктов, которые продаются слабо,  объедините их в бандл, сделайте скидку процентов 60-80 и сделайте рассылку по списку клиентов. Для убедительности ограничьте срок действия распродажи и повесьте часы с обратным отсчетом.</p>
<p>Главное не увлечься и не включать продукты, которые и так хорошо продаются, залезете себе в карман. Работает как часы.</p>
<h3>2. Повторенье - мать ученья</h3>
<p>Любую рассылку с горячим предложением стоит повторить. Кто-то не успел купить, кто-то забыл, кто-то вообще не получил. Дайте им второй шанс. Это как потрясти яблоню еще раз. Упавшим яблокам уже все равно, а несколько новых упадет.</p>
<h3>3. Как понимать клиентов.</h3>
<p>Это самое интересное. Разговор с клиентом больше всего напоминает общение с женщиной. Думает одно, говорит другое, а ожидает от тебя третьего.</p>
<p><strong>Клиент говорит:</strong> хочу чтобы было такое место, где люди могут обмениваться своими шаблонами.</p>
<p><strong>Как это надо понимать:</strong> хочу чтобы другие люди делали шаблоны, а я их скачивал, желательно на халяву. Ну или в крайнем случае за небольшую копеечку (смотри пункт первый).</p>
<p>Пример из жизни. Сделали крутую фичу - редактор стилей, где можно полностью настраивать внешний вид приложения без какого-либо знаний HTML или CSS. Просто ставь галочки, выбирай опции и наслаждайся. Нужная, важная фича, делали долго и наконец выложили в открытый доступ.</p>
<p>Чтобы подстегнуть процесс создания иобмена стилями запустили конкурс. Нужно сделать свой стиль и прислать его нам. Сроку дали десять дней. Десять лучших стилей получают по 100 долларов каждый. В принципе не так плохо за пару часов работы.</p>
<p>Повторюсь, нужно просто делать то, что ты обычно делаешь, просто прислать файлы стилей на конкурс и, с большой вероятностью, получить приз.   Рассылку получают несколько десятков тысяч человек. Результат: свои работы прислали три человека. Мораль придумайте сами.</p>
<p>Удачных вам рассылок!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=tauoDKRmpUU:iWvfZ3XBd2A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=tauoDKRmpUU:iWvfZ3XBd2A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=tauoDKRmpUU:iWvfZ3XBd2A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=tauoDKRmpUU:iWvfZ3XBd2A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=tauoDKRmpUU:iWvfZ3XBd2A:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=tauoDKRmpUU:iWvfZ3XBd2A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/09/23/what-client-wants-client-gets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2011/09/23/what-client-wants-client-gets/</feedburner:origLink></item>
		<item>
		<title>Лайфхак от Джерри Сейнфелда</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/D1pzKL5Arz8/</link>
		<comments>http://www.volinrok.com/2011/03/03/lajfkhak-ot-dzherri-sejnfelda/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 19:32:41 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=920</guid>
		<description><![CDATA[История от лица разработчика Брэда Исаака. Много лет назад, когда Seinfeld еще было новым шоу, Джерри Сейнфелд разъезжал с концертами по стране. В то время я тусовался по клубам, пробуя свои силы как стэндап комик. Одним вечером я был в клубе, где выступал Сейнфелд. Мне удалось его перехватить до выхода на сцену и я спросил, [...]]]></description>
			<content:encoded><![CDATA[<p><em>История от лица разработчика <a href="http://www.persistenceunlimited.com/" target="_blank">Брэда Исаака</a>.</em></p>
<p><img class="alignleft size-full wp-image-922" style="margin-left: 15px; margin-right: 15px; border: 1px solid black;" title="calendar" src="http://www.volinrok.com/wp-content/uploads/calendar.jpg" alt="" width="149" height="120" />Много лет назад, когда Seinfeld еще было новым шоу, Джерри Сейнфелд разъезжал с концертами по стране. В то время я тусовался по клубам, пробуя свои силы как стэндап комик. Одним вечером я был в клубе, где выступал Сейнфелд. Мне удалось его перехватить до выхода на сцену и я спросил, есть ли у него какой-нибудь совет для начинающего комика.</p>
<p>Он сказал, что чтобы стать хорошим комиком нужно писать шутки и есть только один способ - писать их каждый день. Однако он не ограничился этим и рассказал мне о приеме, которым успешно пользовался сам, чтобы заставлять себя писать каждый день.</p>
<p>Нужно купить и сделать самому большой настенный календарь на целый год и повесить его на видном месте. Вооружиться большим красным маркером.</p>
<p>Каждый день, когда задача выполнена, нужно отмечать этот день жирным красным крестом. Через несколько дней крестики выстраиваются в цепочку. Продолжай заниматься этим и цепочка будет расти. Тебе будет приятно на нее смотреть, особенно если продержаться несколько недель. Все что от тебя требуется - не разорвать эту цепочку.</p>
<p>"Не разорви цепочку", повторил он еще раз.</p>
<p>На протяжении многих лет я пользовался этой техникой в самых различных областях. Я использовал ее для физических упражнений, для изучения языков программирования , для построения вебсайтов и бизнесов.</p>
<p>Это работает. В большинстве ситуаций не единовременный рывок приводит нас к цели, но ежедневный, скрупулезный труд. Пропусти один день, и становится легче пропустить следуюший.</p>
<p>Задумайся на минутку - что может оказать наибольшее влияние на твою жизнь или бизнес, если ты будешь заниматься этим ежедневно. Напиши эту цель на календаре и начинай делать отметки. Начни сегодня и разработацй свой первый красный крест.<br />
<strong><br />
Не разорви цепочку!</strong></p>
<p>Источник: <a href="http://lifehacker.com/#!281626/jerry-seinfelds-productivity-secret" target="_blank">Lifehacker</a><strong><br />
</strong></p>
<p>------------------------------</p>
<p>От себя - отличная идея. Осталось придумать, чем бы стоило заниматься каждый день. Писать в блог - нет столько тем, да и неинтересно. Выходить на пробежку каждый день - лениво. Может начать книгу писать?</p>
<p><strong>Ссылки</strong></p>
<p><a href="http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/" target="_blank">Печально известный</a> финансовый стартап Wesabe выложил исходники своего парсера сайтов банков и других финансовых организаций на <a href="https://github.com/wesabe/ssu">Github</a>. <a href="https://www-stage3.wesabe.com/groups/227-open-source-wesabe/discussions/5471-automatic-uploader#comment_39993">Вот тут</a> немного дополнительной информации и обсуждение.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=D1pzKL5Arz8:1B80xjWaMz8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=D1pzKL5Arz8:1B80xjWaMz8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=D1pzKL5Arz8:1B80xjWaMz8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=D1pzKL5Arz8:1B80xjWaMz8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=D1pzKL5Arz8:1B80xjWaMz8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=D1pzKL5Arz8:1B80xjWaMz8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/03/03/lajfkhak-ot-dzherri-sejnfelda/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2011/03/03/lajfkhak-ot-dzherri-sejnfelda/</feedburner:origLink></item>
		<item>
		<title>12 уязвимостей веб-приложений о которых должен знать каждый разработчик</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/s10QXBw5qSU/</link>
		<comments>http://www.volinrok.com/2011/02/25/12-uyazvimostej-veb-prilozhenij-o-kotorykh-dolzhen-znat-kazhdyj-razrabotchik/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 04:36:02 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=878</guid>
		<description><![CDATA[Черновик статьи о типовых уязвимостях веб-приложений. Дайте знать если что-то упустил или где-то ошибся. ------------------------ Данная статья не содержит никаких откровений. В первую очередь информация о типовых уязвимостях будет полезна начинающим. Опытные разработчики все это знают, или должны знать, если считают себя таковыми. Большинство примеров кода не привязаны к какому-либо конкретному языку программирования, но для [...]]]></description>
			<content:encoded><![CDATA[<p>Черновик статьи о типовых уязвимостях веб-приложений. Дайте знать если что-то упустил или где-то ошибся.</p>
<p>------------------------</p>
<p>Данная статья не содержит никаких откровений. В первую очередь информация о типовых уязвимостях будет полезна начинающим. Опытные разработчики все это знают, или должны знать, если считают себя таковыми.</p>
<p>Большинство примеров кода не привязаны к какому-либо конкретному языку программирования, но для наглядности я буду использовать PHP.</p>
<p>Итак, поехали.</p>
<h3>1. SQL injection</h3>
<p>Допустим у вас есть вебсайт с формой ввода имени пользователя. Для проверки наличия имени в базе данных  вы используте вот такой код:</p>
<pre class="php"><span style="color: #0000ff;">$query</span> = <span style="color: #ff0000;">&quot;SELECT * FROM `Users` WHERE UserName='&quot;</span> . <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Username&quot;</span><span style="color: #66cc66;">&#93;</span>. <span style="color: #ff0000;">&quot;'&quot;</span>;
<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$query</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>где $_POST["Username"] - введенное пользователем имя.</p>
<p>Пользователю достаточно ввести вот такое значение в поле Username</p>
<pre>' or '1'='1
</pre>
<p>чтобы получился запрос, который всегда возвращает данные:</p>
<pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`Users`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> UserName = <span style="color: #ff0000;">''</span> <span style="color: #993333; font-weight: bold;">OR</span> <span style="color: #ff0000;">'1'</span>=<span style="color: #ff0000;">'1'</span></pre>
<p>Для тех баз данных, которые поддерживают выполнение несколько запросов в одном пакете, злоумышленник может исполнить запрос удаляющий или изменяющий данные.</p>
<p>Пример такого ввода:</p>
<pre>a';DROP TABLE `Users`; SELECT * FROM `userinfo` WHERE 't' = 't</pre>
<p>Запрос на выходе:</p>
<pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`Users`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #ff0000;">`UserName`</span> = <span style="color: #ff0000;">'a'</span>;DROP <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`Users`</span>; <span style="color: #993333; font-weight: bold;">SELECT</span> * <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`userinfo`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #ff0000;">'t'</span> = <span style="color: #ff0000;">'t'</span></pre>
<p>Два основных способа избежать SQL injection:</p>
<ul>
<li><strong>параметризованные запросы</strong></li>
</ul>
<p>Наиболее надежный метод, но не всегда подходит. В PHP можно для этой цели использовать MySQLi</p>
<pre class="php"><span style="color: #0000ff;">$stmt</span> = <span style="color: #0000ff;">$db</span>-&gt;<span style="color: #006600;">prepare</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'update people set name = ? where id = ?'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$stmt</span>-&gt;<span style="color: #006600;">bind_param</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'si'</span>,<span style="color: #0000ff;">$name</span>,<span style="color: #0000ff;">$id</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #0000ff;">$stmt</span>-&gt;<span style="color: #006600;">execute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<ul>
<li><strong>escaping</strong></li>
</ul>
<p>В PHP для этого есть функция <a href="http://php.net/manual/en/function.mysql-real-escape-string.php" target="_blank">mysql_real_escape_string</a>, которая заменит опасные символы на escape последовательности. Наш пример теперь будет выглядеть вот так:</p>
<pre class="php"><span style="color: #0000ff;">$query</span> = <a href="http://www.php.net/sprintf"><span style="color: #000066;">sprintf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;SELECT * FROM `Users` WHERE UserName='%s'&quot;</span>,
                  <a href="http://www.php.net/mysql_real_escape_string"><span style="color: #000066;">mysql_real_escape_string</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;Username&quot;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/mysql_query"><span style="color: #000066;">mysql_query</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$query</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<h3>2. Сross Site Scripting (XSS)</h3>
<p>XSS уязвимости могут быть подвержены динамические вебсайты, где пользователи вводят какие-то свои данные, которые потом будут показаны на странице: форумы, гостевые книги, комментарии блогам и другое. Идея XSS заключается во встраивании в текст комментария какого-то Javascript кода, который исполнится, когда страницу откроет другой пользователь.</p>
<p>Чем может навредить безобидный джаваскрипт? Довольно многим, от открытие левых сайтов в попапе или простого завешивания браузера до воровства куки. Последнее уже может привести к выполнению другим пользователем действий на этом сайте от вашего имени. Рассмотрим минимальный пример.</p>
<p>Форма для ввода текста:</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;myFrom&quot;</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;showResults.php&quot;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;post&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">&lt;textarea</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;myText&quot;</span> <span style="color: #000066;">rows</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">cols</span>=<span style="color: #ff0000;">&quot;30&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/textarea&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Submit&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;submit&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span>
&nbsp;</pre>
<p>Файл showResults.php:</p>
<pre class="php"><a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;You typed this:&quot;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'myText'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Мы видим, что введенный текст никак не обрабатывается и выводится на страницу в исходном виде. Теперь рассмотрим такой пример ввода:</p>
<pre class="html4strict"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>myRef = window.open('http://www.google.com','mywin',
'left=20,top=20,width=700,height=500,toolbar=1,resizable=0');<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></pre>
<p>Нетрудно видеть, что javascript код исполнится после сабмита формы. Лечится пропусканием ввода через htmlentities() непосредственно перед показом:</p>
<pre class="php"><a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;You typed this:&quot;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/htmlentities"><span style="color: #000066;">htmlentities</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'myText'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<h3>3. Использование HTTPS</h3>
<p>Здесь все очень просто. Если ваше приложение работает с финансовыми, медицинскими или просто с очень важными данными - используйте HTTPS. Данные между браузером и веб-сервером передаются в зашифрованном виде и не могут быть расшифрованы в случае перехвата сниффером.</p>
<h3>4. Предотвращения скачивания пользовательских файлов по прямой ссылке</h3>
<p>Рассмотрим веб-приложение, где пользователи могут закачивать на сервер свои личные файлы. Некоторые файлы могут быть конфиденциальными и не должны быть доступны никому, кроме их владельца.</p>
<p>Есть закачивать все файлы в директорию вида <strong>public_html/files</strong>, то файл mysecretdoc.pdf будет доступен любому желающему по прямой ссылке <strong>http://mysecurewebsite.com/files/mysecretdoc.pdf</strong>. </p>
<p>Есть как минимум два способа предотвратить эту ситуацию:</p>
<ul>
<li>вынеcти директорию files на уровень выше, чтобы она была вне корня вебсайта и не была доступна через веб</li>
<li>использовать .htaccess для запрета прямого скачивания</li>
</ul>
<h3>5. Пароли пользователей</h3>
<p>- Не хранить пароли открытым текстом</p>
<p>Достаточно очевидное решение. Если мы будем хранить хэши паролей (MD5+salt), последстивия утечки таблицы паролей становятся намного менее серьезными, особенно в сочетании со следующим пунктом.</p>
<p>- Требовать, чтобы пароли удовлетворяли определенными правилам сложности и заставлять менять их через какое-то время. Как пользователь я не очень люблю этот метод, но он работает.</p>
<p>- Использовать комбинацию пароля (пин-кода) и устройства типа <a href="http://www.rsa.com/node.aspx?id=1156" target="_blank">RSA токена</a> для логина. Подойдет для банковских или внутрикорпоративных приложений.</p>
<p>- Сделать авторизацию через сторонний сервис, такой как Facebook, Twitter или OpenID. Пусть у них болит голова как уберечь пароли.</p>
<h3>6. Шифрование и обфускация кода</h3>
<p>Здесь важно понимать, что шифрование и обфускация защищают от изменения и понимания кода, но не от его исполнения. Защифрованный код исполняется точно так же как и исходный и, более того, модуль расшифровки поставляется вместе с зашифрованным кодом и можеи быть использован для декодирования. Если злоумышленник получил доступ к вашему серверу, шифрование кода мало чем поможет.</p>
<p>Есть только один сценарий, когда это дело работает в качестве защиты от исполнения кода. Код расшифровки может устанавливаться как модуль на сервер и, если в руки злоумышленнику попал только сам зашифрованный код, без этого модуля он его не исполнит.</p>
<p><strong>Шифрование кода для PHP:</strong> <a href="http://www.ioncube.com/">ionCube</a>, <a href="http://www.zend.com/en/products/guard/">ZendGuard</a>, <a href="http://www.sourceguardian.com/">SourceGuardian</a></p>
<p><strong>Обфускация:</strong> <a href="http://www.semdesigns.com/products/obfuscators/PHPObfuscator.html">Thicket Obfuscator for PHP</a></p>
<h3>7. Шифрование данных</h3>
<p>Шифрование данных защищает от ситуации, когда база данных попала в чужие руки, но нет кода, который с ней работает.</p>
<p>Технически ничего сложного здесь нет. Шифрование/декодирование можно реализвать как средствами языка программирования так и в самой БД. Второй метод предпочтительнее, особенно если нужно реализовать поиск по зашифрованным данным.</p>
<p>Вот как это можно сделать для MySQL.</p>
<p><strong>Шифрование с помощью триггеров</strong></p>
<pre class="sql">delimiter |
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> insert_encrypt BEFORE <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ON</span> cars
  <span style="color: #993333; font-weight: bold;">FOR</span> EACH ROW BEGIN
    <span style="color: #993333; font-weight: bold;">SET</span> NEW.Model = AES_ENCRYPT<span style="color: #66cc66;">&#40;</span>NEW.Model,<span style="color: #ff0000;">&quot;my passphrase&quot;</span><span style="color: #66cc66;">&#41;</span>;
  END;
|
&nbsp;
delimiter |
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> update_encrypt BEFORE <span style="color: #993333; font-weight: bold;">UPDATE</span> <span style="color: #993333; font-weight: bold;">ON</span> cars
  <span style="color: #993333; font-weight: bold;">FOR</span> EACH ROW BEGIN
    <span style="color: #993333; font-weight: bold;">SET</span> NEW.Model = AES_ENCRYPT<span style="color: #66cc66;">&#40;</span>NEW.Model,<span style="color: #ff0000;">&quot;my passphrase&quot;</span><span style="color: #66cc66;">&#41;</span>;
  END;
|</pre>
<p><strong>Декодирование в SQL запросе</strong></p>
<pre class="sql"><span style="color: #993333; font-weight: bold;">SELECT</span>
...
AES_DECRYPT<span style="color: #66cc66;">&#40;</span>Model,<span style="color: #ff0000;">&quot;my passphrase&quot;</span><span style="color: #66cc66;">&#41;</span>,
...
<span style="color: #993333; font-weight: bold;">FROM</span> carscars</pre>
<p><strong>Бонус для параноиков</strong></p>
<p>В качестве эксперимента можно использовать пароль пользователя в качестве фразы шифрования данных. Если пользователей в системе несколько, персональные данные каждого из них шифруются своим собственным паролем. В таком случае даже получив доступ к коду или к базе данных злоумышленник не сможет расшифровать данные.</p>
<p>Из минусов:<br />
- при смене пароля придется перешифровать данные<br />
- в случае утери пароля восстановить данные не получится<strong> </strong></p>
<h3>8. Защита данных сессии (PHP, shared server)</h3>
<p>В случае, когда ваше приложение хостится вместе с сотней других на одном сервере, кто-то может получить доступ ко всему серверу и прочитать или подделать переменные сессии.</p>
<p>Содержание типичного файла сессии PHP:</p>
<pre>userName|s:5:"admin";accountNumber|s:9:"123456789";
</pre>
<p>Решение:<br />
- шифровать переменные сессии<br />
- хранить данные сессии в БД. В PHP можно переопределить обработчик сессии с помощью функции <a href="http://php.net/manual/en/function.session-set-save-handler.php" target="_blank">session_set_save_handler<br />
</a></p>
<h3>9. Отключите показ сообщений об ошибках</h3>
<p>Как только система переводится в режим продакшен убедитесь что никакие необработанные сообщения об ошибках не будут показаны пользователю. Это может дать информацию о структуре базе данных или о структуре приложения.</p>
<p>Как минимум, сообщения об ошибках стоит отключить. В PHP это можно сделать вот так:</p>
<pre class="php"><a href="http://www.php.net/error_reporting"><span style="color: #000066;">error_reporting</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
@<a href="http://www.php.net/ini_set"><span style="color: #000066;">ini_set</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'display_errors'</span>, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>Наиболее же правильный метод это перехват сообщений об ошибке, запись их в БД, отправка уведомления разработчику итд. В PHP перехват сообщений об шибках делается с помощью функции <a href="http://php.net/set_error_handler">set_error_handler()</a>. И <a href="http://insomanic.me.uk/post/229851073/php-trick-catching-fatal-errors-e-error-with-a">вот еще пример</a> перехвата фатальных ошибок, которые нельзя перехватить с помощью set_error_handler().</p>
<h3>10. Защитите соединение между базой данных и приложением</h3>
<p>Применимо к ситуации когда база данных расположена на другом сервере. <a href="http://www.madirish.net/?article=244" target="_blank">Вот статья</a>, которая рассказывает как создать SSL тоннель между MySQL и PHP.</p>
<h3>11. Защита от form spoofing</h3>
<p>Допустим у вас есть форма редактирования данных пользователя вот с таким УРЛ: <strong>http://example.com/edit_user.php?id=12345</strong>. Ничто не мешает пользователю 12345 поменять номер аккаунта в УРЛ и попытаться отредактировать другого пользователя. Простая проверка на стороне сервера пресекает эти попытки на корню.</p>
<p>Неискушенный прграммист может подумать, что заменив GET на POST мы избавимся от номеров аккаунтов в УРЛ и закроем уязвимость. Разумеется это не так. Сохранив страницу на свой компьютер и изменив данные формы, злоумышленник может подделать POST запрос.</p>
<p>Допустим у вас есть интернет магазин, в котором цена продукта берется из поля на форме. Поменяв значение поля, злоумышленник сможет купить товар по более низкой цене.</p>
<p>Эта тема плотно перекликается с валидацией всех данных, вводимых пользователем. Допустим у вас есть радио-кнопка с выбором пола.</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gender&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;radio&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;m&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>Male
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gender&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;radio&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;f&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>Female</pre>
<p>Зная, что значение этого поля может быть только m или f, программист может посчитать проверку этого поля необязательным и записать его в базу данных в виде как оно есть.</p>
<p>Злоумышленник может сохранить эту страницу себе на диск и поменять ее следующим образом.</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gender&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;m';DROP TABLE `Users`; ... &quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span></pre>
<p>Даже если вы обработаете ввод с помощью mysql_real_escape_string(), значение все равно получится слишком длинным для односимвольного поля и поломает запрос (вот для чего мы советуем отключать сообщения об ошибках в продакшен версии).</p>
<p>Хорошим решением будет усечение этого поля до одного символа:</p>
<pre>substr($_POST['gender'],0,1)
</pre>
<h3>12. Cross-site request forgery (CSRF)</h3>
<p>Эта уязвимость менее известна чем XSS, хотя не менее опасна. Представим себе форум, где участник Vasya постит сообщние, содержащее вот такой вот код:</p>
<pre class="html4strict"><span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000; font-weight: bold;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;http://mysecurebank.com/withdraw?account=petya&amp;amp;amount=1000000&amp;amp;for=vasya&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span></pre>
<p>Когда эту страницу откроет участник Petya, браузер исполнит запрос</p>
<pre>http://mysecurebank.com/withdraw?account=petya&amp;amount=1000000&amp;for=vasya</pre>
<p>Проблема в том, что если банк хранит данные доступа в куках, Petya будет залогинен автоматически и транзакция совершится от его имени, о чем он, конечно, и не подозревает.</p>
<p>Первая мысль которая приходит в голову - заметить GET на POST на всех важных формах (или вообще на всех). К сожалению это не решает проблему полностью. Ничто не мешает злоумышленнику разместить вот такую форму на своем вебсайте:</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;f&quot;</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;http://mysecurebank.com/withdraw&quot;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;post&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;account&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;petya&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;amount&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;1000000&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;for&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;vasya&quot;</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span>
&nbsp;</pre>
<p>Если Васе удастся заманить Петю на свой вебсайт - форма будет отправлена и цель достигнута. Еще одна причина не ходить по подозрительным вебсайтам.</p>
<p><strong>Как с этим бороться?</strong></p>
<ul>
<li>проверять значение HTTP реферера. Должно быть всегда с вашего собственного вебсайта. К сожалению положиться на это дело полностбю нельзя, так как многие прокси сервера могут его не передавать. К тому же его не так сложно подделать.</li>
<li>использовать скрытое поле в форме с секретным значением, как правило привязанным к сессии пользователя. Злоумышленник не может прочитать форму от имени Пети, поэтому секретное значение окажется для него неизвестным (XmlHttpRequest не может выполнить запрос к другому серверу).</li>
<li>Дополнительно отправлять куки через форму (прочитать с помощью джаваскрипта и вставить в форму). Если куки переданные через форму не совпадают с куками из заголовка - транзакцию не проводить.</li>
<li>Ограничение времени жизни кук</li>
</ul>
<p><strong>Дополнительная информация:</strong><br />
<a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">http://en.wikipedia.org/wiki/Cross-site_request_forgery</a><br />
<a href="http://www.codinghorror.com/blog/2008/09/cross-site-request-forgeries-and-you.html" target="_blank">http://www.codinghorror.com/blog/2008/09/cross-site-request-forgeries-and-you.html</a></p>
<h3>Заключение</h3>
<p>Теперь хорошие новости. От большинства этих уязвимостей несложно защититься. Многие PHP фреймворки (<a href="http://www.yiiframework.com/" target="_blank">Yii</a>, <a href="http://www.cakephp.org" target="_blank">CakePHP</a>, <a href="http://www.codeigniter.com/" target="_blank">CodeIgniter</a>, <a href="http://framework.zend.com/home" target="_blank">Zend</a>, <a href="http://www.symfony-project.com/" target="_blank">Symfony</a>) и генераторы кода (<a href="http://xlinesoft.com/phprunner/index.htm" target="_blank">PHPRunner</a>) имеют встроенную защиту от большиства уязвимостей. Тем не менее, стоит понимать, как оно работает, чем чревато и как защититься. Предупрежден - значит вооружен.</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=s10QXBw5qSU:sTEyjo0Sj24:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=s10QXBw5qSU:sTEyjo0Sj24:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=s10QXBw5qSU:sTEyjo0Sj24:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=s10QXBw5qSU:sTEyjo0Sj24:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=s10QXBw5qSU:sTEyjo0Sj24:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=s10QXBw5qSU:sTEyjo0Sj24:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2011/02/25/12-uyazvimostej-veb-prilozhenij-o-kotorykh-dolzhen-znat-kazhdyj-razrabotchik/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2011/02/25/12-uyazvimostej-veb-prilozhenij-o-kotorykh-dolzhen-znat-kazhdyj-razrabotchik/</feedburner:origLink></item>
		<item>
		<title>Почему Mint победил Wesabe</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/IwgPUyASlAY/</link>
		<comments>http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 07:04:46 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[mint]]></category>
		<category><![CDATA[personal finance]]></category>
		<category><![CDATA[wesabe]]></category>
		<category><![CDATA[yodlee]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=863</guid>
		<description><![CDATA[Сокращенный перевод статьи Марка Хедлунда, основателя Wesabe. Оригинал здесь. Оба вебсайта предоставляли сервис управления персональными финансами. Были запущены примерно в одно и то же время (2006-2007 год). Mint был куплен Intuit в сентябре 2009 года за 170 миллионов долларов. Wesabe закрылся в июне 2010 года. Почему так произошло? Дальше от лица Марка Хедлунда. -------------------------------------------- Прежде [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-866" style="border: 0pt none;" title="personal_finance" src="http://www.volinrok.com/wp-content/uploads/personal_finance.jpg" alt="" width="275" height="183" /></p>
<p><em>Сокращенный перевод статьи Марка Хедлунда, основателя Wesabe. <a href="http://blog.precipice.org/why-wesabe-lost-to-mint">Оригинал здесь</a>.</em></p>
<p><em>Оба вебсайта предоставляли сервис управления персональными финансами. Были запущены примерно в одно и то же время (2006-2007 год). Mint был куплен Intuit в сентябре 2009 года за 170 миллионов долларов. Wesabe закрылся в июне 2010 года.</em></p>
<p><em>Почему так произошло? Дальше от лица Марка Хедлунда.</em></p>
<p><em>--------------------------------------------<br />
</em></p>
<p>Прежде всего развеем несколько мифов.</p>
<p><strong>1. Mint победил, потому что был запущен раньше</strong></p>
<p>Неверно. Wesabe был запущен на 10 месяцев раньше. Можно говорить о том, что мы поспешили выйти на рынок, когда продукт еще не был полностью готов. Можно сказать. что Mint и другие могли спокойно учиться на наших ошибках, пока мы набивали шишки.</p>
<p><strong>2. Wesabe никогда не зарабатывал денег</strong></p>
<p>Неверно. Wesabe начал приносить доход в конце 2008 года, за полтора года до того как мы закрылись. К слову, деньги инвесторов закончились на 9 месяцев раньше, чем мы закрылись т.е. последние 9 месяцев мы зарабатывали достаточно, чтобы покрывать текущие расходы. К сожалению этих денег не хватило, чтобы продолжать развитие.</p>
<p><strong>3. У Mint было лучше название и лучше дизайн</strong></p>
<p>И то и другое верно, но врядли послужило основной причиной нашего поражения. Рынок показывает множество примеров самых разнообразно звучащих брэндов, которые сумели победить своих конкурентов. Дизайн тоже важен, но не может служить единственной или главной причиной победы на рынке.</p>
<p><strong>4. Wesabe не был "вирусным", а Mint был</strong></p>
<p>Наполовину верно. По-большому счету ни тот ни другой продукт не был вирусным. Mint в основном приобретал новых пользователей посредством Google Adwords (есть цифры, что привлечение каждого нового пользователя обходился им в 1 доллар). На графике видно, что трафик перестал расти сразу после их приобретения в сентябре 2009 и не рос 6 месяцев. Очевидно, что рост связан с размерами маркетингового бюджета, а не с вирусным распространением.</p>
<p>Кликабельно.</p>
<p style="text-align: center;"><a href="http://www.volinrok.com/wp-content/uploads/mint.png"><img class="size-medium wp-image-864  aligncenter" style="border: 1px solid black;" title="mint" src="http://www.volinrok.com/wp-content/uploads/mint-300x108.png" alt="" width="300" height="108" /></a></p>
<p>Хорошо, почему же тогда Mint добился такого успеха, а Wesabe нет? Я вижу две основные причины.</p>
<p>Во-первых, мы решили не работать с Yodlee, но не смогл найти им подходящую замену. Yodlee это агрегетор финансовых данных, предоставляющий доступ к ним в виде веб сервиса. Когда мы общались с ними в 2006 году, Yodlee была не в лушем состоянии после неудачной попытки продаться и потери несколько ведущих специалистов. К тому же они вели переговоры очень агрессивно, предлагая первые 6 месяцев бесплатно, после чего они назовут свою цену. Мы не решились вести бизнес с комапнией, находящейся в таком состоянии.</p>
<p>Mint же не побоялся и использовал Yodlee для получения пользовательских данных напрямую с банковских сайтов (Yodlee разработал парсер для каждого отдельного банка). Это дало возможность предоставить клиентам более понятный и удобный сервис. Wesabe решил построить свою собственную систему получения данных из банков, но это заняло время и они сумели сделать похожую функциональность только через 6 месяцев после того, как она появилась и Mint.</p>
<p>Наша ошибка была не в том, что мы начали делать свою систему получения пользовательских данных из банков. Ошибка была в том, что <strong>мы не сделали ее достаточно быстро и не использовали Yodlee в тот период, пока наша система не была готова.</strong></p>
<p>Второе. Mint отлично поработал над автоматической категоризацией финансовыхданных, чтобы пользователю ничего не пришлось делать самому. У них это получилось и новый пользователь сразу получал картину своих финансовых затрат. Wesabe же пытался преследовать более благородную и сложную цель - не только показать человеку куда уходят его деньги, но и помочь ему изменить свою финансовую ситуацию в лучшую сторону. Цель эта правильная и благородная, но она сделала продукт более сложным в использовании.</p>
<p>Я считаю, что любой сервис, работающий в области персональных финансов, должен делать две вещи. Певрое - сделать пользователя счастливым. Второе - помочь ему улучшить свою финансовую ситуацию. Mint перуспел в первом, в то время как во втором ни Mint, ни Wesabe не добились успеха. Да, Mint многократно заявлял, что из пользователи улучшили свое финансовое положение, но, поскольку дело происходило во время кризиса, другие люди тоже стали меньше тратить и уменьшили свои долги. Цифры уменьшения долгов и увеличения накоплений, предоставленные Mint совпали со средними по странам, в которых он работает.</p>
<p>Да, именно так. Менять поведение людей очень тяжело и еще никто на этом рынке не добился успеха в этом плане. Последнее слово на рынке управления персональными финансами еще не сказано.</p>
<p><em>Может у <a href="http://www.4konverta.com/" target="_blank">4х конвертов</a> это получится? </em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=IwgPUyASlAY:4SLTpyj47V8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=IwgPUyASlAY:4SLTpyj47V8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=IwgPUyASlAY:4SLTpyj47V8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=IwgPUyASlAY:4SLTpyj47V8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=IwgPUyASlAY:4SLTpyj47V8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=IwgPUyASlAY:4SLTpyj47V8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/12/07/pochemu-mint-pobedil-wesabe/</feedburner:origLink></item>
		<item>
		<title>Как зарабатывать в сети, угрожая своим клиентам</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/T5Te2Sq5eMQ/</link>
		<comments>http://www.volinrok.com/2010/11/30/kak-zarabatyvat-v-seti-ugrozhaya-svoim-klientam/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 06:48:20 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=858</guid>
		<description><![CDATA[New York Times опубликовал отличную статью, от том как ведет онлайн-бизнес наш соотечественник Виталй Боркель, проживающий в Бруклине. Если очень коротко - Виталий использует крайне грубые методы обращения с клиентами, что приводит к массе отрицательных отзывов о нем на других вебсайтах. По словам Виталия эти отрицательные отзывы помогают ему держать хорошие позиции по ключевым запросам. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-861" title="bully" src="http://www.volinrok.com/wp-content/uploads/bully.gif" alt="" width="350" height="328" /></p>
<p>New York Times опубликовал отличную статью, от том как ведет онлайн-бизнес наш соотечественник Виталй Боркель, проживающий в Бруклине. Если очень коротко - Виталий использует крайне грубые методы обращения с клиентами, что приводит к массе отрицательных отзывов о нем на других вебсайтах. По словам Виталия эти отрицательные отзывы помогают ему держать хорошие позиции по ключевым запросам. Он продает дизайнерские очки и по таким запросам как <a href="http://www.google.com/search?q=designer+eyewear+lafont&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;client=firefox-a&amp;rlz=1R1GGGL_en" target="_blank">designer eyewear lafont</a> его вебсайт (DecorMyEyes) находится на первых позициях.</p>
<p><a href="http://mobile.nytimes.com/2010/11/28/business/28borker.xml" target="_blank">Читать на английском</a> или <a href="http://habrahabr.ru/blogs/searchengines/109017/" target="_blank">сокращенный перевод на русском</a>. Вот еще <a href="http://news.ycombinator.com/item?id=1946085" target="_blank">интересное обсуждение</a> на Hacker News, где <a href="http://www.mattcutts.com/blog/" target="_blank">Matt Cutts</a> (глава команды, работающей над качеством поиска в Гугл) рекомендует сайтам, на которых оставляют отзывы, добавлять <em>rel=nofollow</em> к отрицательным отзывам, чтобы они не помогали продвижению в поиске.</p>
<p>Мне кажется, с этой задачей Гугл мог бы справляться самостоятельно, показывая рейтинг продавца для "покупательных" запросов. Тем более что для тех продавцов, что зарегистрированы в  Google Products он и так это делает. Для всех остальных он мог бы брать данные с сайтов типа <a href="http://www.bizrate.com/" target="_blank">BizRate</a> или <a href="http://www.bbb.org/">Better Business Bureau</a>.</p>
<p>Большинство людей не проверяет перед покупкой вебсайты, на которых заказывают что-то через Интернет. Одни просто не знают, как это сделать. Другие думают, что раз вебсайт показывается на первой странице поиска в Гугле, значит ему автоматически можно доверять.</p>
<p>-----------------------------------</p>
<p><strong>Другие интересности</strong></p>
<p><a href="http://kebati.ru/journ/140.php" target="_blank">140 советов интернет-журналисту</a> от Александра Амзина</p>
<p><a href="http://blog.seattleinterviewcoach.com/2009/02/140-google-interview-questions.html" target="_blank">140 вопросов из гугловских интервью</a>. Мой любимый конечно же "How much should you charge to wash all the windows in Seattle?" и <a href="http://www.volinrok.com/2008/08/08/skolko-benzokolonok-v-shtate-nyu-jork/">вот почему</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=T5Te2Sq5eMQ:IhPeb38uxfU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=T5Te2Sq5eMQ:IhPeb38uxfU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=T5Te2Sq5eMQ:IhPeb38uxfU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=T5Te2Sq5eMQ:IhPeb38uxfU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=T5Te2Sq5eMQ:IhPeb38uxfU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=T5Te2Sq5eMQ:IhPeb38uxfU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/11/30/kak-zarabatyvat-v-seti-ugrozhaya-svoim-klientam/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/11/30/kak-zarabatyvat-v-seti-ugrozhaya-svoim-klientam/</feedburner:origLink></item>
		<item>
		<title>Индекс Счастья Клиента</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/bTEDim2QEaI/</link>
		<comments>http://www.volinrok.com/2010/11/27/indeks-schastya-klienta/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 02:02:10 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[client relations]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=849</guid>
		<description><![CDATA[Патрик МакКензи делится своими заметками с Business of Software конференции, проходившей в этом году в Бостоне. Выдержка из выступления Dharmesh Shah. Рассмотрим какое-нибудь типичное веб-приложение с помесячной оплатой. Владельца больше всего интересуют две цифры: сколько новых клиентов приходит каждый месяц и сколько старых уходит (churn rate). Для примера: допустим есть тысяча клиентов, каждый месяц приходит [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-853" style="border: 0pt none;" title="toon_7" src="http://www.volinrok.com/wp-content/uploads/toon_7.gif" alt="" width="415" height="468" /></p>
<p><em>Патрик МакКензи <a href="http://www.kalzumeus.com/2010/10/15/lessons-learned-at-business-of-software-2010/">делится своими заметками</a> с Business of Software конференции, проходившей в этом году в Бостоне. Выдержка из выступления </em><a href="http://www.hubspot.com/" target="_blank">Dharmesh Shah</a><em>. </em></p>
<p>Рассмотрим какое-нибудь типичное веб-приложение с помесячной оплатой. Владельца больше всего интересуют две цифры: сколько новых клиентов приходит каждый месяц и сколько старых уходит (churn rate). Для примера: допустим есть тысяча клиентов, каждый месяц приходит 100 новых и уходит 50 старых (churn rate 5%). Если прибыль от новых клиентов превышает затраты на их привлечение - вы в шоколаде.</p>
<p>Поговорим о том, как работать над уменьшением второй цифры. Следует отметить, что низкий churn rate еще не говорит о том, что клиент счастлив. Возможно он собирается уйти, как только закончится его контракт или найдется альтернатива. Чтобы оценивать, насколько клиент удовлетворен сервисом, <a href="http://www.hubspot.com/" target="_blank"></a>Dharmesh вводит термин Индекс Счастья Клиента (ИСК).</p>
<p>Вычисление ИСК использует три основных фактора:</p>
<ol>
<li>Частота пользования приложением. Чаще пользуется - меньше вероятность, что уйдет.</li>
<li>Как много разных фич использует.</li>
<li>Использование продвинутых фич (тех, которые реализованы значительно лучше, чем у конкурентов или сосвсем отсутствуют у последних).</li>
</ol>
<p>Тут все понятно. Скажем есть человек использует Microsoft Word, чтобы просто набирать текст, он может пересесть на любой другой редактор в течение двух минут. Если он использует сложное форматирование - переход будет посложнее. Если он использует макросы и VBA - переход вообще становится нереален.</p>
<p>Теперь вы можете вычислить ИСК для каждого клиента (а в веб-приложении это сделать очень легко) и работать над его повышением.</p>
<ul>
<li>звонить/писать клиентам с низким ИСК, предлагая помощь</li>
<li>оценивать работу тех.проддержки и продажников по уровню повышения ИСК</li>
<li>оценивать новые фичи по уровню изменения ИСК (через A/B тестирование)</li>
</ul>
<p>Dharmesh также сказал, что его компания продает консалтинговые услуги, помогая новым клиентам настраивать их аккаунты. Несмотря на то, что эти услуги приносят в копилку всего 7% дохода и имеют невысокую маржу, они повышают ИСК и тем самым увеличивают продажи основного продукта.</p>
<p>Резонный вопрос - если консультации приводят к такому повышению продаж, почему бы не предоставлять их бесплатно? Ответ: люди больше ценят то, за что они заплатили. Когда ты предоставляешь 5 часов бесплатного консультирования по телефону, клиентам - являющимся успешными предпринимателями - им не так просто найти 5 часов в своем расписании. А вот если брать с них 500 долларов за такую консультацию, <strong>можете быть уверены, они найдут время</strong>. Это интересная мысль, скорее всего такой подход лучше всего работает, если ваши клиенты - владельцы бизнеса, чье время стоит дорого.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=bTEDim2QEaI:5Zmx6ImbCYM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=bTEDim2QEaI:5Zmx6ImbCYM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=bTEDim2QEaI:5Zmx6ImbCYM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=bTEDim2QEaI:5Zmx6ImbCYM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=bTEDim2QEaI:5Zmx6ImbCYM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=bTEDim2QEaI:5Zmx6ImbCYM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/11/27/indeks-schastya-klienta/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/11/27/indeks-schastya-klienta/</feedburner:origLink></item>
		<item>
		<title>Открытое письмо президенту РФ от IT компаний</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/xSh-rehhPfY/</link>
		<comments>http://www.volinrok.com/2010/10/27/otkrytoe-pismo-prezidentu-rf-ot-it-kompanij/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 17:07:35 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=846</guid>
		<description><![CDATA[Если вы небольшая (меньше 50 человек) IT компания, ведущая бизнес в России - вам сюда.]]></description>
			<content:encoded><![CDATA[<p>Если вы небольшая (меньше 50 человек) IT компания, ведущая бизнес в России - вам <a href="http://www.it-esn2011.ru/">сюда</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=xSh-rehhPfY:bFFlVm9gmaY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=xSh-rehhPfY:bFFlVm9gmaY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=xSh-rehhPfY:bFFlVm9gmaY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=xSh-rehhPfY:bFFlVm9gmaY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=xSh-rehhPfY:bFFlVm9gmaY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=xSh-rehhPfY:bFFlVm9gmaY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/10/27/otkrytoe-pismo-prezidentu-rf-ot-it-kompanij/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/10/27/otkrytoe-pismo-prezidentu-rf-ot-it-kompanij/</feedburner:origLink></item>
		<item>
		<title>Kindle</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/MdqpNdBVteY/</link>
		<comments>http://www.volinrok.com/2010/10/16/kindle/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 00:11:38 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[kindle]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=841</guid>
		<description><![CDATA[Купил себе Kindle. Одна читалка в семье уже есть, но официально это подарок жене, а по мере роста детей все чаще возникают ситуации, когда почитать хочется обоим одновременно. Первые впечатления самые положительные. Дешевый (139 долларов), легкий, тонкий, хорошо собран. Создает ощущение продуманности и удобства, почти как у продуктов Apple. Удобно сделаны кнопки листания страниц, с [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.volinrok.com/wp-content/uploads/61BCBN2q9HL.jpg"><img class="aligncenter size-full wp-image-842" style="border: 1px solid black;" title="61BCBN2q9HL" src="http://www.volinrok.com/wp-content/uploads/61BCBN2q9HL.jpg" alt="" width="500" height="333" /></a></p>
<p>Купил себе Kindle. Одна читалка в семье уже есть, но официально это подарок жене, а по мере роста детей все чаще возникают ситуации, когда почитать хочется обоим одновременно.</p>
<p>Первые впечатления самые положительные. Дешевый (139 долларов), легкий, тонкий, хорошо собран. Создает ощущение продуманности и удобства, почти как у продуктов Apple. Удобно сделаны кнопки листания страниц, с обеих сторон экрана. Это то, что меня больше всего напрягает в читалке от Сони.</p>
<p>Встроенная поддержка русского языка, без всяких танцев с бубном. Поддержка множества тектовых форматов, плюс PDF и .mobi. PDF читать все так же неудобно, тут наверное только больший экран поможет, как у Kindle DX. Впрочем для меня это неприоритетно.</p>
<p>Форматы fb2 и epub не поддерживаются, но есть такой замечательный сайт, как <a href="http://www.2epub.com/">2EPUB</a>, который сконвертит вам что угодно во что угодно. К слову, он и из PDF может сделать .mobi, но часть форматирования может потеряться.</p>
<p>Загрузка книг в устройство. Вот тут начинается самое интересное. Kindle поддерживает загрузку файлов через емайл. Просто посылаешь файл на определенный адрес и через минуту он у тебя на устройстве. Само собой он должен быть подключен по WiFi, чтобы получить файл.</p>
<p>Помимо просто удобства это добавляет несколько интересных вариантов использования. Скажем можно подарить Kindle родителям и закачивать им новые книги на устройство без их вмешательства. Можно сделать кнопку в браузере вида 'Read in Kindle', которая сконвертит статью в нужный формат и перешлет ее вам на устройство.</p>
<p>Приятно видеть в каком направлении развивается Амазон. Не имея возможности оставновить повсеместный уход от бумажных книг к электронным, они решили его возглавить и у них получилось.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=MdqpNdBVteY:SAAsIm5Yyf0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=MdqpNdBVteY:SAAsIm5Yyf0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=MdqpNdBVteY:SAAsIm5Yyf0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=MdqpNdBVteY:SAAsIm5Yyf0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=MdqpNdBVteY:SAAsIm5Yyf0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=MdqpNdBVteY:SAAsIm5Yyf0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/10/16/kindle/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/10/16/kindle/</feedburner:origLink></item>
		<item>
		<title>Три статьи</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/rJXVNvo9wi0/</link>
		<comments>http://www.volinrok.com/2010/10/16/tri-stati/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 22:32:44 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Lifestyle]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=839</guid>
		<description><![CDATA[Кто может сказать мне, что объединяет три следующие статьи? Habrahabr: Разработчики софта, давайте зарабатывать больше! Techcrunch: NSFW: Generation Whine – Why I’m Relieved not to be a Millennial Zadolba!li: Активисты голосисты]]></description>
			<content:encoded><![CDATA[<p>Кто может сказать мне, что объединяет три следующие статьи?</p>
<p>Habrahabr: <a href="http://habrahabr.ru/blogs/arbeit/105874/">Разработчики софта, давайте зарабатывать больше!</a></p>
<p>Techcrunch: <a href="http://techcrunch.com/2010/10/10/dont-care-how-i-want-it-now/">NSFW: Generation Whine – Why I’m Relieved not to be a Millennial</a></p>
<p>Zadolba!li: <a href="http://zadolba.li/story/3278">Активисты голосисты</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=rJXVNvo9wi0:nh8awYAbgc0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=rJXVNvo9wi0:nh8awYAbgc0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=rJXVNvo9wi0:nh8awYAbgc0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=rJXVNvo9wi0:nh8awYAbgc0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=rJXVNvo9wi0:nh8awYAbgc0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=rJXVNvo9wi0:nh8awYAbgc0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/10/16/tri-stati/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/10/16/tri-stati/</feedburner:origLink></item>
		<item>
		<title>Генри Форд о предпринимателях и финансистах</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/IKuaRc65x-g/</link>
		<comments>http://www.volinrok.com/2010/10/02/genri-ford-o-predprinimatelyakh-i-finansistakh/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 02:40:25 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[генри форд]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=835</guid>
		<description><![CDATA[Читаю Генри Форда "Моя жизнь, мои достижения". Несмотря на то, что книга была написана в 1922, а события описываются еще более ранние, обилие параллелей с днем сегодняшним потрясает. Вот что говорит Форд о отношении к работе: На мой взгляд, человек иначе и не может, как быть постоянно на работе. Днем он должен думать о ней, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-836" title="henry-ford" src="http://www.volinrok.com/wp-content/uploads/henry-ford.jpg" alt="" width="500" height="407" /></p>
<p>Читаю Генри Форда <a href="http://n-t.ru/ri/fr/mz.htm">"Моя жизнь, мои достижения"</a>. Несмотря на то, что книга была написана в 1922, а события описываются еще более ранние, обилие параллелей с днем сегодняшним потрясает.</p>
<p>Вот что говорит Форд о отношении к работе:</p>
<blockquote><p>На мой взгляд, человек иначе и не может, как быть постоянно на работе. Днем он должен думать о ней, а ночью – она ему сниться. Идея выполнять свою работу в канцелярские часы, приниматься за нее утром и бросать ее вечером – и до следующего утра не возвращаться к ней ни одной мыслью – как будто очень хороша. Ее можно даже осуществить довольно просто, если только мы согласны иметь над собой кого-нибудь целую жизнь, быть служащими, быть может, даже и самостоятельными служащими, всем чем угодно, но только не директорами или ответственными руководителями. Для человека физического труда является даже необходимостью ограничивать свои рабочие часы – иначе он скоро истощит свои силы. Если он намерен всю жизнь оставаться при физическом труде, то должен забывать о своей работе в то мгновение, когда прозвучит фабричный гудок. Но если он хочет идти вперед и чего-нибудь достигнуть, то гудок для него только сигнал поразмыслить над своим трудовым днем и найти, как бы ему делать лучше прежнего.</p></blockquote>
<p>И о финансировании предприятий:</p>
<blockquote><p>Деловые люди думали тогда, что можно сделать с предприятием все, если  его «финансировать». Если с первого раза это не удалось, рецепт гласил:  «финансировать снова». Так называемое «новое финансирование» состояло в  том, что бросали верные деньги вслед за сомнительными. В большинстве  случаев новое финансирование вызывается дурным ведением дела; следствием  его является то, что оплачивают дурных руководителей для того, чтобы  они еще некоторое время продолжали свое дурное хозяйничанье. Судный день  этим только откладывается: новое финансирование есть уловка, выдуманная  спекулянтами. Все их деньги ни к чему, если они не могут поместить их  там, где действительно работают, а удается им поместить лишь там, где  организация дела страдает какими-нибудь недостатками. Спекулянты  воображают, что они с пользой помещают свои деньги. Это заблуждение –  они расточают их.</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=IKuaRc65x-g:RJ7ZvyXjv-k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=IKuaRc65x-g:RJ7ZvyXjv-k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=IKuaRc65x-g:RJ7ZvyXjv-k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=IKuaRc65x-g:RJ7ZvyXjv-k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=IKuaRc65x-g:RJ7ZvyXjv-k:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=IKuaRc65x-g:RJ7ZvyXjv-k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/10/02/genri-ford-o-predprinimatelyakh-i-finansistakh/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/10/02/genri-ford-o-predprinimatelyakh-i-finansistakh/</feedburner:origLink></item>
		<item>
		<title>Клиенты как дети</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/3YPp-j2-QNE/</link>
		<comments>http://www.volinrok.com/2010/09/17/klienty-kak-deti/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 20:22:15 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=825</guid>
		<description><![CDATA[Дети в возрасте 2-4 лет активно шалят, наблюдая при этом за реакцией родителей. Так они узнают, что можно и что нельзя, проверяют границы дозволенного. Психологи считают лучшей стратегией мягко, но настойчиво объяснить ребенку, что его поведение неверно. Здесь важно не переборщить с противостоянием, чтобы не вызывать ответную агрессию. Это азбучные истины, все родители их знают. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-832" style="border: 1px solid black;" title="punishment" src="http://www.volinrok.com/wp-content/uploads/punishment.jpg" alt="" width="500" height="333" /></p>
<p>Дети в возрасте 2-4 лет активно шалят, наблюдая при этом за реакцией родителей. Так они узнают, что можно и что нельзя, проверяют границы дозволенного. Психологи считают лучшей стратегией мягко, но настойчиво объяснить ребенку, что его поведение неверно. Здесь важно не переборщить с противостоянием, чтобы не вызывать ответную агрессию.</p>
<p>Это азбучные истины, все родители их знают. А я все чаще прихожу к мысли, что взаимоотношения с клиентами нужно строить по такой же модели. Важно не только нарисовать границы, но и максимально доходчиво донести их до покупателей.</p>
<p><strong>Пример из жизни<br />
</strong></p>
<p>У нас есть три уровня поддержки: никакой - бесплатно, простой - дешевый, сложный - почасово, дорого. Обращается с вопросом клиент, у которого на данный момент никакой поддержки нет. Вопрос не самый простой, требует написания кода.</p>
<p>Клиент старый, взаимоотношения хорошие, лишних денег брать не хотелось. Предложили купить минимальный уровень поддержки, написали код и отдали ему.</p>
<p>Прошло полгода. Клиент возвращается, говорит, что код на самом деле работает не так, он просто неправильно сформулировал задачу, а надо по-другому. В ответ мы предложили купить более продвинутую поддержку, которая покроет этот случай. Клиент в слезы, считает что мы тогда его обманули. Пришлось объяснять ситуацию и таки делать бесплатно.</p>
<p>Ошибка очевидна. Хочешь сделать исключение из правил - объясни, что это разовая поблажка, скидка по поводу выхода новой версии (дня программиста, солнечного затмения или месячника борьбы с каннибализмом).</p>
<p><strong>Где провести границу</strong></p>
<p>В некоторых сферах границы устанавливаются сами собой. Скажем вы купили  Visual Studio у Майкрософт. Никто не ожидает, что можно будет обратиться  в поддержку свопросом "как сделать форму с двумя кнопками, одна из которых будет  постить в мой твиттер название играемой винампом песни, а другая закроет  форму". В лучшем случае вам посоветуют задать этот вопрос в ньюсгруппах  или купить книжку.</p>
<p>Но это у программистов так, а менее подкованные клиенты могут всерьез  считать, что купленный ими молоток резво пробежится по всему дому  забивая гвозди и развешивая полки. К нам многократно обращались клиенты  с  просьбами помочь в вопросах, не имеющих никакого отношения к нашему  софту. Один друг пишет: " я тут нашел в интернете кусок кода, а он не  работает, помогите". На вопрос, а почему, собственно, он это у нас  спрашивает так и ответил: "Ну я думал, а вдруг вы знаете". Нет, это не  ребенок трех лет, это ведущий програмист  в немаленьком университете.</p>
<p>Итак, необходимость правил очевидна. Сразу возникает вопрос - насколько жесткими должны быть эти границы. Если снова обратиться к терминологии <span style="text-decoration: line-through;">британских ученых</span> детских психологов, то у нас есть такие варианты: вседозволенность, демократия и авторитарность.</p>
<p>Выбор непрост. Более того, он может быть определяющим фактором успеха для бизнеса.</p>
<p><strong>Мы готовы разбиться в лепешку, лишь бы клиент был счастлив (вседозволенность)<br />
</strong></p>
<p>В каких случаях это может сработать:</p>
<p>1. Клиент платит достаточную сумму денег, которая покрывает любые (разумные) капризы. По такому пути, например, идет хостинговая компания Rackspace со слоганом Fanatical support. Аренда сервера будет стоить у них в два раза дороже среднего по планете, но их клиентов это не останавливает.</p>
<p>2. Продукт или сервис достаточно прост, поддержки почти не требуется.</p>
<p>3. Наличие доступа к недорогой рабочей силе (аутсоурсинг поддержки в теплые страны).</p>
<p><strong>Демократия и авторитарность<br />
</strong></p>
<p>Вы подбегаете к супермаркету через пять минут после закрытия. Двери уже закрыты, вы бегаете и просите вас впустить, чтобы вы могли купить бутылку молока больному ребенку. Результат очевиден - вас не пустят, а даже если и пустили бы, то касса не пробьет вам товар. В этом прелесть правил - бизнес работает так, как задумано и сломать его непросто.</p>
<p>Та же ситуация, но теперь это крохотный магазинчик, торгующими собачьим кормом. Хозяин уже поставил магазин на сигнализацию и закрывает дверь. С большой вероятностью он дверь вам откроет и корм продаст, особенно если вы старый клиент. Вообще, от мелкого бизнеса ожидают большей гибкости. Но не стоит путать его с прогибаемостью. Если вы позвоните этому же хозяину в два часа ночи - будете посланы далеко и справедливо.</p>
<p>Какой путь выбрать для своего бизнеса - решать вам. И если вы все еще верите детским психологам, наиболее приспособленные к жизни дети вырастают у авторитарных родителей (<a href="http://mnogodetok.ru/viewtopic.php?f=158&amp;t=22229">Элиум Дон, Элиум Джоан. «Воспитание сына».СПб.,1996.</a>).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=3YPp-j2-QNE:zEMBOcJk9Qo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=3YPp-j2-QNE:zEMBOcJk9Qo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=3YPp-j2-QNE:zEMBOcJk9Qo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=3YPp-j2-QNE:zEMBOcJk9Qo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=3YPp-j2-QNE:zEMBOcJk9Qo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=3YPp-j2-QNE:zEMBOcJk9Qo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/09/17/klienty-kak-deti/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/09/17/klienty-kak-deti/</feedburner:origLink></item>
		<item>
		<title>Скругленные прямоугольники повсюду</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/v0vv2uQkm2o/</link>
		<comments>http://www.volinrok.com/2010/09/07/skruglennye-pryamougolniki-povsyudu/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 02:39:06 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=817</guid>
		<description><![CDATA[Май 1981 года. Билл Аткинсон работал в основном из дома, но каждый раз когда у него получалось что-то особенное он спешил в Apple похвастаться. В этот раз он повяился в офисе в Texaco Towers чтобы показать реализацию рисования овалов, которая использовала очень хитрый алгоритм. Билл добавил новый код к QuickDraw (который в то время все [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-818" style="border: 1px solid black;" title="roundrects" src="http://www.volinrok.com/wp-content/uploads/roundrects.jpg" alt="" width="360" height="269" /></p>
<p>Май 1981 года.</p>
<p>Билл Аткинсон работал в основном из дома, но каждый раз когда у него получалось что-то особенное он спешил в Apple похвастаться. В этот раз он повяился в офисе в Texaco Towers чтобы показать реализацию рисования овалов, которая использовала очень хитрый алгоритм.</p>
<p>Билл добавил новый код к QuickDraw (который в то время все еще назывался LisaGraf), который рисовал окружности и овалы потрясающе быстро. Это не так просто было сделать на Макинтоше, поскольку это требует извлечение большого количества квадратных корней, в то время как 68000 процессор в Lisa и Macinthosh не поддерживал операции с плавающей запятой. Но Биллу удалось найти очень изящное решение, которое использовало только сложение и вычитание. Ему удалось обойтись даже без умножения и деления, что 68000 конечно умел, но делал это не очень быстро.</p>
<p>Его решение строилось на том факте, что сумма последовательных нечетных всегда является квадратом целого числа (например, 1 + 3 = 4, 1 + 3 + 5 = 9, 1 + 3 + 5 + 7 = 16, итд). Таким образом он мог вычислить когда в цикле нужно было увеличить соотвествующую координату. Это позволило QuickDraw рисовать овалы очень быстро.</p>
<p>Билл запустил демо и быстро заполнил экран Lisa овалами разной величины, быстрее чем кто-либо мог себе представить. Однако что-то беспокоило Стива Джобса. "Ладно, окружности и овалы это здорово, но как насчет прямоугольников со скругленными углами? Мы можем сделать это тоже?"</p>
<p>"Нет, это невозможно. Более того, я не думаю, что это вообще нам может когда либо понадобиться". Я думаю, что Билл был слегка растроен, что Стив не был в восторге от его новых алгоритмов и хотел чего-то еще.</p>
<p>Стив внезапно вошел в раж. "Скругленные прямоугольники окружают нас повсюду. Ты только посмотри вокруг себя."  Действительно, он был прав, кругом было полно таких предметов. Затем он показал на улицу. "Посмотри снаружи, там их еще больше, они со всех сторон". Он потащил Билла на улицу и они сделали круг вокруг здания. Стив показывал на каждый скругленный прямоугольник, который встречался им на пути.</p>
<p>Наконец Стив и Билл подошли к знаку "No parking", который тоже обладал скругленными углами. "Ладно, я сдаюсь", сказал Билл. "Я посмотрю, что можно сделать". Он пошел домой и продолжил работу.</p>
<p>Билл вернулся в Texaco Towers на следующий день с большой улыбкой на лице. Он показал демку, которая рисовала прямоугольники с замечательно скругленными углами и делала это потрясающе быстро. Он добавил этот код в LisaGraf, назвав этот примитив "RoundRects". Через несколько месяцев скругленные прямоугольники проникли во все элементы пользовательского интерфейса и стали незаменимы.</p>
<p><em>Оригинал на английском <a href="http://folklore.org/StoryView.py?story=Round_Rects_Are_Everywhere.txt">вот здесь</a>.</em></p>
<p><em>--------------------------------------<br />
</em></p>
<p>От себя добавлю. Прошло почти 30 лет. Microsoft вот-вот добавит поддержку отрисовки скругленных прямоугольников средствами CSS в Internet Explorer 9.<em><br />
</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=v0vv2uQkm2o:pQ8OxUBpkbg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=v0vv2uQkm2o:pQ8OxUBpkbg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=v0vv2uQkm2o:pQ8OxUBpkbg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=v0vv2uQkm2o:pQ8OxUBpkbg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=v0vv2uQkm2o:pQ8OxUBpkbg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=v0vv2uQkm2o:pQ8OxUBpkbg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/09/07/skruglennye-pryamougolniki-povsyudu/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/09/07/skruglennye-pryamougolniki-povsyudu/</feedburner:origLink></item>
		<item>
		<title>Самое первое интервью</title>
		<link>http://feedproxy.google.com/~r/volinrok/~3/XfgDlaZ4SaU/</link>
		<comments>http://www.volinrok.com/2010/07/27/samoe-pervoe-intervyu/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 07:05:50 +0000</pubDate>
		<dc:creator>Сергей Корнилов</dc:creator>
				<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[job interview]]></category>
		<category><![CDATA[интервью]]></category>
		<category><![CDATA[работа]]></category>

		<guid isPermaLink="false">http://www.volinrok.com/?p=811</guid>
		<description />
			<content:encoded><![CDATA[<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/b56eAUCTLok&amp;hl=en_US&amp;fs=1?rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/b56eAUCTLok&amp;hl=en_US&amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/volinrok?a=XfgDlaZ4SaU:jqIz_GOJVLw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=XfgDlaZ4SaU:jqIz_GOJVLw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/volinrok?i=XfgDlaZ4SaU:jqIz_GOJVLw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=XfgDlaZ4SaU:jqIz_GOJVLw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/volinrok?i=XfgDlaZ4SaU:jqIz_GOJVLw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/volinrok?a=XfgDlaZ4SaU:jqIz_GOJVLw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/volinrok?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.volinrok.com/2010/07/27/samoe-pervoe-intervyu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.volinrok.com/2010/07/27/samoe-pervoe-intervyu/</feedburner:origLink></item>
	</channel>
</rss>

