<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>/etc/reflections</title>
	<atom:link href="http://wi11son.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://wi11son.wordpress.com</link>
	<description>Yet another weblog about hacking &#38; programming</description>
	<lastBuildDate>Tue, 17 Jun 2008 09:59:52 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='wi11son.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>/etc/reflections</title>
		<link>http://wi11son.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://wi11son.wordpress.com/osd.xml" title="/etc/reflections" />
	<atom:link rel='hub' href='http://wi11son.wordpress.com/?pushpress=hub'/>
		<item>
		<title>всем всем всем</title>
		<link>http://wi11son.wordpress.com/2008/06/17/%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc/</link>
		<comments>http://wi11son.wordpress.com/2008/06/17/%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 09:59:52 +0000</pubDate>
		<dc:creator>wi11son</dc:creator>
				<category><![CDATA[main]]></category>
		<category><![CDATA[жульвернизм]]></category>

		<guid isPermaLink="false">http://wi11son.wordpress.com/?p=19</guid>
		<description><![CDATA[дорогие друзья, я наконец-то перебрался на платный хостинг, и домен естественно тоже сменил буду рад вас приветствовать на новом своем новом сайте http://willson.ru поскольку сессия близится к концу, а у меня уже куча набросков &#8211; скоро будет просто шквал новых &#8230; <a href="http://wi11son.wordpress.com/2008/06/17/%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc/">Читать далее <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=19&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>дорогие друзья, я наконец-то перебрался на платный хостинг, и домен естественно тоже сменил</p>
<p>буду рад вас приветствовать на новом своем новом сайте http://willson.ru</p>
<p>поскольку сессия близится к концу, а у меня уже куча набросков &#8211; скоро будет просто шквал новых и интересных статей ;-) увидимся там!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wi11son.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wi11son.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wi11son.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wi11son.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wi11son.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wi11son.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wi11son.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wi11son.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wi11son.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wi11son.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wi11son.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wi11son.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wi11son.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wi11son.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wi11son.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wi11son.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=19&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wi11son.wordpress.com/2008/06/17/%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc-%d0%b2%d1%81%d0%b5%d0%bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">wi11son</media:title>
		</media:content>
	</item>
		<item>
		<title>Ну ведь это так просто!</title>
		<link>http://wi11son.wordpress.com/2008/06/10/use_js/</link>
		<comments>http://wi11son.wordpress.com/2008/06/10/use_js/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 20:53:11 +0000</pubDate>
		<dc:creator>wi11son</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[есть идея!]]></category>
		<category><![CDATA[программинг]]></category>

		<guid isPermaLink="false">http://wi11son.wordpress.com/?p=18</guid>
		<description><![CDATA[Вот я опять пишу потому, что меня нечто задевает и не дает смотреть сквозь пальцы. Причем это нечто вполне само себе разумеющееся, логичное и самодоказательное. Скажите, ведь многие привыкли отправлять сообщения по Ctrl+Enter в аське? Ну почему бы не сделать &#8230; <a href="http://wi11son.wordpress.com/2008/06/10/use_js/">Читать далее <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=18&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Вот я опять пишу потому, что меня нечто задевает и не дает смотреть сквозь пальцы. Причем это нечто вполне само себе разумеющееся, логичное и самодоказательное.</p>
<p>Скажите, ведь многие привыкли отправлять сообщения по Ctrl+Enter в аське?</p>
<p>Ну почему бы не сделать в форумных движках отправку сообщений по Ctrl+Enter ведь это так легко!<br />
<code> </code></p>
<pre><code><span class="tag">&lt;<span class="keyword">script</span><span class="attribute"> type=<span class="value">"text/javascript"</span></span>&gt;</span><span class="javascript">
<span class="function"><span class="keyword">function</span> <span class="title">ctrlEnter</span><span class="params">(event, formElem)</span>
    {</span>
    <span class="keyword">if</span>((event.ctrlKey) &amp;&amp; ((event.keyCode == <span class="number">0xA</span>)||(event.keyCode == <span class="number">0xD</span>)))
        {
        formElem.submit.click();
        }
    }
</span><span class="tag">&lt;/<span class="keyword">script</span>&gt;</span>
<span class="tag">&lt;<span class="keyword">form</span><span class="attribute"> action=<span class="value">"send.php"</span></span><span class="attribute"> method=<span class="value">"post"</span></span><span class="attribute"> onkeypress=<span class="value">"ctrlEnter(event, this);"</span></span>&gt;</span>...<span class="tag">&lt;/<span class="keyword">form</span>&gt;

</span>
</code></pre>
<p>И даже на этом расчудесном блогерском двиге, чтобы отправить комментарий, нужно взять в руки мышку и ткнуть в кнопку. Ребята, давайте создавать разумные интерфейсы, использовать руки, голову. Сейчас полезу поэксперементирую на локальной машине со встраиванием в код.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wi11son.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wi11son.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wi11son.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wi11son.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wi11son.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wi11son.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wi11son.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wi11son.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wi11son.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wi11son.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wi11son.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wi11son.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wi11son.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wi11son.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wi11son.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wi11son.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=18&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wi11son.wordpress.com/2008/06/10/use_js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">wi11son</media:title>
		</media:content>
	</item>
		<item>
		<title>Мысли в веб! Часть 2.</title>
		<link>http://wi11son.wordpress.com/2008/05/23/dream-on-web-part2/</link>
		<comments>http://wi11son.wordpress.com/2008/05/23/dream-on-web-part2/#comments</comments>
		<pubDate>Fri, 23 May 2008 13:18:04 +0000</pubDate>
		<dc:creator>wi11son</dc:creator>
				<category><![CDATA[размышлизмы]]></category>
		<category><![CDATA[вебдваноль]]></category>
		<category><![CDATA[жульвернизм]]></category>
		<category><![CDATA[мысли]]></category>

		<guid isPermaLink="false">http://wi11son.wordpress.com/?p=14</guid>
		<description><![CDATA[(это продолжение&#8230; изволите читать начало?) О каких факторах может идти речь? Что может помешать народу перебраться на веб-аналоги и эти программы будут основными? В поисках ответов на эти вопросы я провел 2 дня, и тут представлен результат размышлений. Почему то &#8230; <a href="http://wi11son.wordpress.com/2008/05/23/dream-on-web-part2/">Читать далее <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=14&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(это продолжение&#8230; <a href="http://wi11son.wordpress.com/2008/05/21/dream-on-web-part1/" target="_blank">изволите читать начало?</a>)</p>
<p style="margin-bottom:0;" align="justify">О каких факторах может идти речь? Что может помешать народу перебраться на веб-аналоги и эти программы будут основными? В поисках ответов на эти вопросы я провел 2 дня, и тут представлен результат размышлений. Почему то аналогия возникла с уровневой моделью OSI.<span id="more-14"></span></p>
<p style="margin-bottom:0;" align="justify">Без решения вопросов на каждом из уровней, достижение полного перехода на новый уровень веб, по моему мнению, невозможно. К сожалению, у меня не получилось абстрагировать каждый вопрос и привязать по конкретному уровню. Но все же это не докторская диссертация и не научная работа, а всего лишь мысли, которыми я делюсь с вами, дорогие читатели ;) Итак, представлю эту модель: она состоит из 6 уровней.</p>
<table style="height:183px;text-align:center;" border="1" width="119">
<tbody>
<tr>
<td>Экономический</td>
</tr>
<tr>
<td>Политический</td>
</tr>
<tr>
<td>Социальный</td>
</tr>
<tr>
<td>Прикладной</td>
</tr>
<tr>
<td>Технический</td>
</tr>
<tr>
<td>Физический</td>
</tr>
</tbody>
</table>
<p><strong>Физический уровень</strong></p>
<p>До боли простые и понятные вопросы: канал передачи данных, хватит ли на полностью используемого канала витой пары? Массово переходить на оптоволокно пока что непозволительная роскошь. Возникают сложности в поддержке, в обслуживании. Этот вопрос в принципе должен будет найти решение в любом случае. Возникают в голове мысли по поподу передачи информации через электрические провода и черпать интернет из розетки. Честно говоря, я не слишком компетентен в вопросе предельных нагрузок на этом уровне, но понятно что объемы передаваемой информации постоянно возрастают.</p>
<p><strong>Технический уровень</strong></p>
<p>Вот это уже интереснее. К техническому уровню я отнес  вопросы стандартизации.  Для того чтобы программы работали одинаково в различных броузерах и различных операционных системах нужно придерживаться единых стандартов в используемых протоколах, используемых инструментах при разработке. Скажем, тот же W3C формирует стандарты &laquo;качества&raquo;, но до сих пор не все броузеры поддерживают эти стандарты в полной мере, а некоторые игнорируют их. Поскольку полной стандартизации добиться вряд ли смогут, то разработчики и дальше будут иметь головную боль, создавая свои приложения 5in1 под разные броузеры.</p>
<p><strong>Прикладной уровень</strong></p>
<p>Ну конечно, броузеры &#8211; это программки которые мы открываем, чтоб просматривать интернет странички. Предполагается, что все программки будут доступны на некоторых сайтах, но тут возникает вопрос: является ли протокол http самым удачным при формировании нового поколения веб? Возможно, что нет. Гипертекстовая разметка статична. Без JavaScript не создать динамический сайт, не использующий перегрузки всей странички. Будем использовать Ajax.</p>
<p>Что же касается серверной части программ, то не смотря на растущие мощности процессоров, программы должны быть оптимизированны под сервер, иначе не достичь такой динамики как при использовании персональных программ. Почему при всех своих масштабах google выдает потрясающие скоростные характеристики? Потому что они написали свой веб-сервер, используют С при написании своих приложений, что не может не сказаться на быстродействии.</p>
<p><strong>Социальный уровень</strong></p>
<p>Самый странный, и непонятный мне уровень. Но это не значит что он отсутсвует. Здесь я выделил людей, которые привыкли к стереотипу коробки и налички, и не понимают виртуальных денежных переводов и программ которые можно скачать и купить, не ощущая физически их в руках. Численность таких людей несомненно уменьшается, но нельзя забывать о них. Возможно тут есть и еще вопросы, но я не углублялся в обдумывание этой темы.</p>
<p><strong>Политический уровень</strong></p>
<p>Вообщем, к политическому уровню я отнес политическую безопасность. Невозможно ненарушение конституционных прав человека, когда владельцы сервисов могут содействовать криминалитетам и/или правительственным организациям.</p>
<p><strong>Экономический уровень</strong></p>
<p>Во-первых, должны появить большие сервисы, каждый из которых предлагает использование своих программ, но при этом берет ни плату за продукт целиком, а за предоставленное место, месяц обслуживания, использование базы (этаких хостинг выходит), и мы начинаем пользоваться сервисом, каждый месяц при этом отчисляя денежку.</p>
<p>Хм. А ведь это не так уж и плохо: хочешь сохранить людей &#8211; обновляй сервис, добавляй новые возможности; не хочешь &#8211; полно бесплатных сервисов ничуть не хуже. Вспоминается, что раньше (а может и сейчас есть такое?) были платные электронные почты.</p>
<p>Ну хорошо, пусть это вовсе не проблема, Но тогда у каждого человека не возникает особой необходимости апгрейдить компьютер. Ему нужно гигов 10 оперативы, средненький проц, клава и моник, геймерам добавим видеокарточку. Получаем типичный терминал. В чем смысл покупать новое железо?</p>
<p>Скажите, было интересно? Я вот перечитал все, что написал, и понял, что мои измышления надуманны. Ширина канал и так растет постоянно. Процессоры развиваются, приложения нетеряют свою скорость. Программисты и так пишут приложения под 3(минимально) разных броузера. Люди всё больше привыкают к электронным платежам (терминалы на каждом углу). Уровень безопасности никто никогда не гарантировал (кроме майкрософта конечно же).</p>
<p>И получается, что таскать с собой брелочек, с установленной на нем системой и всеми необходимыми программами &#8211; вот выход. Я не говорю, что веб обречен. Это неправда!  Просто качественные сервисы с обычными нетяжелыми программами создавать бессмысленно, и такую роскошь могут позволить большие корпорации (вот например гугл предлагает попользоваться его екселем, хотя он и не полнофункционален, или адоб дает посмотреть на его обрезок фотошопа, выполненый на флеше).</p>
<p>Возможно придет смена http, какой-нибудь  xmtp и будет удобнее строить интерфейсы, добавлять динамику программе. А более проблем и нету. Вот-так. ;)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wi11son.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wi11son.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wi11son.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wi11son.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wi11son.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wi11son.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wi11son.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wi11son.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wi11son.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wi11son.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wi11son.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wi11son.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wi11son.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wi11son.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wi11son.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wi11son.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=14&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wi11son.wordpress.com/2008/05/23/dream-on-web-part2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">wi11son</media:title>
		</media:content>
	</item>
		<item>
		<title>Мысли в веб! Часть 1.</title>
		<link>http://wi11son.wordpress.com/2008/05/21/dream-on-web-part1/</link>
		<comments>http://wi11son.wordpress.com/2008/05/21/dream-on-web-part1/#comments</comments>
		<pubDate>Wed, 21 May 2008 17:22:55 +0000</pubDate>
		<dc:creator>wi11son</dc:creator>
				<category><![CDATA[размышлизмы]]></category>
		<category><![CDATA[вебдваноль]]></category>
		<category><![CDATA[мысли]]></category>

		<guid isPermaLink="false">http://wi11son.wordpress.com/?p=13</guid>
		<description><![CDATA[Думал отойти от решения этаких масштабных теоретических проблем, а в итоге сегодня пишу об еще более глобальных проблемах. Нет, вовсе не о мировом потеплении или озоновых дырах. На написание сего мини-труда меня вдохновила статья Raz0r&#8217;a (http://raz0r.name/mysli/udalennoe-administrirovanie-sajtom/). Всем читать обязательно :) &#8230; <a href="http://wi11son.wordpress.com/2008/05/21/dream-on-web-part1/">Читать далее <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=13&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;">Думал отойти от решения этаких масштабных теоретических проблем, а в итоге сегодня пишу об еще более глобальных проблемах. Нет, вовсе не о мировом потеплении или озоновых дырах. На написание сего мини-труда меня вдохновила статья Raz0r&#8217;a (<a href="http://raz0r.name/mysli/udalennoe-administrirovanie-sajtom/">http://raz0r.name/mysli/udalennoe-administrirovanie-sajtom/</a>). Всем читать обязательно :)</p>
<p style="margin-bottom:0;" align="justify">«Как Microsoft проиграла войну API» &#8211; вот так громогласно кричало название статьи Джоэла (<a href="http://joelonsoftware.com/">http://www.joelonsoftware.com/articles/APIWar.html</a>) от 13го июня 2004 года. Эта почти 15 страничная статья довольно подробно разбирает тонкости и упущения мелкомягких. <span id="more-13"></span></p>
<p style="margin-bottom:0;" align="justify">В кратце: Джоэл делится своими мыслями по поводу новой объявленной MS версии API WinFX, заточенной под Longhorn с Avalon, которая по сути должна была зачеркнуть опыт работы с win32, и можно было бы забыть об обратной совместимости. Ну как мы знаем, проект Vista видимо претендовал на возведения себя в Longhorn, ведь он как раз таки «работает» с 3д, может даже на авалоновском двиге. Быть может я путаюсь в терминах, что впрочем не важно, ибо на лицо сырой продукт, к которому пока аудитория не совсем готова. А знаете почему? На то есть ряд объективных причин. Не думайте что я «виста»-ненавистник. Я рад что майкрософт выпускает новый продукт, они дают очень много для компьютерного мира, на них ориентируются. Просто жаль что этот продукт на 90% удачен со стороны маркетинга силиконовой долины, и только на 10% со стороны пользователей.</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify">Итак, к чему же мы приходим? Либо мы радостно скупаем «крутые» компы, ставим на них висту, оборудуем систему новым софтом, либо сидим тихо смирно на XP и ждем, что произойдет. А происходит следующее, что из-за неразберихи с апи программисты замечают, что интернет приложения выполняющиеся на сервере вовсе не требовательны к платформе клиента. Они одинаково хорошо исполняются как на виндах так и на  всевозможных линуксах, бзд, солярисах и маках. «Вот оно!» &#8211; потирая ладошки, обрадовались программисты и начали мигрировать на написание программ для веб. Появляется некто «веб.два.ноль», грозят новой эпохой интернетов!</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify">Вот они «за и против», отмеченные Джоэлом, с точки зрения разработчиков.</p>
<p style="margin-bottom:0;" align="justify">Развертывать веб-приложения у пользователя проще, потому что отсутствует процедура инсталляции. Установка веб-приложения заключается в том, чтобы ввести URL в окне адреса броузера. Сегодня я установил новое почтовое приложение google, нажав Alt+D, gmail, ctrl+Enter. Также заначительно меньше проблем совместимости и совместного сущестования с другими приложениями. У всех пользователей вашего продукта оказывается  одна и та же его версия, потому не приходится заботиться о поддержке букета прежних версий. Годится любая программная среда, потому что функционировать она должна только на сервере. Ваше приложение автоматически становится доступным практически для любого компьютера на всей планете. Данные ваших клиентов тоже автоматически становятся доступными практически на каждом компьютере.</p>
<p style="margin-bottom:0;" align="justify">Но за это приходится расплачиваться гладкостью интерфейса пользователя. Вот несколько примеров того, что плохо получится в веб-приложении:</p>
<ol>
<li>
<p style="margin-bottom:0;" align="justify">Создать 	быструю программу рисования.</p>
</li>
<li>
<p style="margin-bottom:0;" align="justify">Организовать 	проверку орфографии в реальном времени 	с подчеркиванием красной волнистой 	линией.</p>
</li>
<li>
<p style="margin-bottom:0;" align="justify">Предупредить 	пользователей о том, что результаты их 	работы будут потеряны, если они щелкнут 	по кнопке завершения работы броузера.</p>
</li>
<li>
<p style="margin-bottom:0;" align="justify">Обновить 	малую часть экрана, модифицированную 	пользователем без полного цикла 	обращения к серверу.</p>
</li>
<li>
<p style="margin-bottom:0;" align="justify">Создать 	быстрый управляемый клавишами интерфейс, 	не требующий мыши.</p>
</li>
<li>
<p style="margin-bottom:0;" align="justify">Позволить 	продолжить работу в отсутствии соединения 	с интернетом.</p>
</li>
</ol>
<p style="margin-bottom:0;" align="justify">«Ха! Ну это же смешно! Какие это проблемы» — скажете вы и будете правы. Все эти проблемы уже давно решены. Тогда почему же нету кучи сервисов, которые могли бы помочь  рядовому пользователю работать откуда и где ему угодно, предостовляя полноценные аналоги персональных программ. И тут же мы спотыкаемся об ряд не столь заметных на первый взгляд факторов. (продолжение следует&#8230;)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wi11son.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wi11son.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wi11son.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wi11son.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wi11son.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wi11son.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wi11son.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wi11son.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wi11son.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wi11son.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wi11son.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wi11son.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wi11son.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wi11son.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wi11son.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wi11son.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=13&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wi11son.wordpress.com/2008/05/21/dream-on-web-part1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">wi11son</media:title>
		</media:content>
	</item>
		<item>
		<title>Шлемиль, нелинейный код и тенденции.</title>
		<link>http://wi11son.wordpress.com/2008/05/19/shlemil/</link>
		<comments>http://wi11son.wordpress.com/2008/05/19/shlemil/#comments</comments>
		<pubDate>Mon, 19 May 2008 19:24:55 +0000</pubDate>
		<dc:creator>wi11son</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[размышлизмы]]></category>
		<category><![CDATA[мысли]]></category>
		<category><![CDATA[программинг]]></category>

		<guid isPermaLink="false">http://wi11son.wordpress.com/?p=10</guid>
		<description><![CDATA[Собственно иногда хочется поговорить о том, что крутится в голове. Когда там возникают противоречия между двумя решениями, и незнаешь чему отдать предпочтение (хотя вернее было бы, выделить из каждого решения верную мысль). Вот вам примерчик. Начну конечно с лирического отступления. &#8230; <a href="http://wi11son.wordpress.com/2008/05/19/shlemil/">Читать далее <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=10&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Собственно иногда хочется поговорить о том, что крутится в голове. Когда там возникают противоречия между двумя решениями, и незнаешь чему отдать предпочтение (хотя вернее было бы, выделить из каждого решения верную мысль).  Вот  вам примерчик. Начну конечно с лирического отступления.</p>
<blockquote><p>Шлемиль устроился на работу маляром, и должен был наносить разметку посредине дорог. В первый день он взял бочку краски и разметил 300 метров дороги. &laquo;Неплохо! &#8211; сказал босс. Ты быстро работаешь!&raquo; и заплатил ему за день.  На следующий день Шлемиль осилил только 150 метров. &raquo; Ну что ж, не так здорово, как вчера, но ты все равно быстро работаешь. 150 метров &#8211; это не мало&raquo;, &#8211; сказал босс и заплатил ему денежку. Еще через день Шлемиль расчертил 30 метров дороги.  &laquo;Всего 30 метров!&raquo; &#8211; рассвирепел босс. &#8211; Это никуда не годится. В первый день ты сделал в десять раз больше. Что случилось?&raquo;</p>
<p><span id="more-10"></span></p></blockquote>
<blockquote><p>&laquo;Ничего не могу поделать, &#8211; говорит Шлемиль. &#8211; С каждым днем приходится все дальше и дальше уходить от бочки с краской&raquo;.</p></blockquote>
<p>Красочный анекдот. Но вы даже не подозреваете, что ежедневно сталкиваетесь с таким кодом, и мало того такой код пишете! Не верите? А я докажу :-) <code> </code></p>
<pre>void strcat(char* dest, char* src)
{
     while(*dest) dest++;
     while(*dest++ = *src++);
}
</pre>
<p>Собственно этот код, код strcat, который можно легко найти в книге Кернигана и Ритчи &laquo;Язык программирования С&raquo;, одобренный отцами С, имеет крайне досадную ошибку. При конкатенации двух строк эта функция проходится полностью по исходной строке в поисках ее окончания, а после уже копирует в свой конец вторую строку. Понимаете к чему клоню? Если мы будем соединять 10 строк по десять символов, то каждый раз функции придется пробегать на 10 символов больше. А если таких строк миллион? Невооруженным взглядом видно, что время выполнения функции возрастает. Умные и хитрые программисты сделали так: <code> </code></p>
<pre>char* mystrcat(char* dest, char* src)
{
      while(*dest) dest++;
      while(*dest++ = *src++);
      return --dest;
}
</pre>
<p>Таким образом функция возвращает обратно позицию последнего символа (не нуля) и с этого места будет продолжать соединение строк. Ура у нас получилось. Решение найдено и количество строк нас больше пугать не будет. Ну кто-то может возразить: &laquo;Погнал тут тему! Да С настолько низкоуровнев, что его часто с асмом сравнивают, да и в скомпилированном виде он будет работать в сотни раз быстрее чем любой из интерпретируемых скриптовых языков.&raquo;  Это правда, но подобный код встречается на каждом шагу. Пусть имеется таблица данных в XML формате:</p>
<pre>&lt;?xml tic-tac&gt;
&lt;mylib&gt;
     &lt;book&gt;
          &lt;title&gt;Язык программирования С.&lt;/title&gt;
          &lt;author&gt;Керниган &amp; Ритчи&lt;/author&gt;
     &lt;/book&gt;
     &lt;book&gt;
          &lt;title&gt;Искусство программирования для UNIX&lt;/title&gt;
          &lt;author&gt;Рэймонд&lt;/author&gt;
     &lt;/book&gt;
&lt;/mylib&gt;</pre>
<p>Вопрос следующий: Как перемещаться от одной записи к другой? Собственно нужно быстренько воспользоваться функциями, которые предоставляет DOM, проанализировать xml файл, ссоздать дерево в памяти, с которым можно будет легко и быстро работать. С парой оговорок: во-первых, большие базы в xml держать не станешь, потому что предполагается. что памяти хватит на всю структуру; во-вторых, именно синтаксический и лексический анализ самого xml-файла будут составлять крайне медленную, если не самую медленную, часть при генерации страницы. Вообщем не задумываясь над &laquo;мелочами&raquo; мы ваяем свой код, который не есть оптимизированный.</p>
<p>Оппозицией всего выше сказанного служит экономическая оценка. Несмотря на нелинейный код, возрастающее время выполнения простейших действий, наш железный друг (нет, не автомобиль) обрастает колосальными возможностями, а серверные их вариации вообще ни с чем в сравнение не идут. Добавить ко всему этому возможность получить бОльшие деньги за быстронаписанный проект, и размышления о таких мелочах как время выполнения операций остаются позади, тем более что человеком это будет практически неощутимо.</p>
<p>Подытожив свои размышления, замечу, что все же было бы правильнее копаться дотошно в своем коде. И устраивать разбор полётов, хотя бы для того, чтобы знать как это все работает. Делать это лучше в свободное время, когда голова не занята проблемой денег и мыслится хорошо. Надо воспитывать в себе грамотного хорошего программиста и спеца. В конце концов, именно любознательность выделяет хакера из простых смертных.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wi11son.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wi11son.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wi11son.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wi11son.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wi11son.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wi11son.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wi11son.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wi11son.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wi11son.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wi11son.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wi11son.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wi11son.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wi11son.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wi11son.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wi11son.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wi11son.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=10&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wi11son.wordpress.com/2008/05/19/shlemil/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">wi11son</media:title>
		</media:content>
	</item>
		<item>
		<title>Базы данных. Транзакции.</title>
		<link>http://wi11son.wordpress.com/2008/05/18/db-transactions/</link>
		<comments>http://wi11son.wordpress.com/2008/05/18/db-transactions/#comments</comments>
		<pubDate>Sun, 18 May 2008 22:46:38 +0000</pubDate>
		<dc:creator>wi11son</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[базы данных]]></category>
		<category><![CDATA[есть идея!]]></category>
		<category><![CDATA[программинг]]></category>

		<guid isPermaLink="false">http://wi11son.wordpress.com/?p=8</guid>
		<description><![CDATA[Каждый начинающий программист, в начале своего тернистого (но крайне увлекательного) пути сталкивается с необходимостью писать базовые классы. Эти классы со временем совершенствуются, изменяются, в них добавляется новый функционал. Так и я начал писать свой повторяемый набор классов. Т.к. ни один &#8230; <a href="http://wi11son.wordpress.com/2008/05/18/db-transactions/">Читать далее <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=8&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Каждый начинающий программист, в начале своего тернистого (но крайне увлекательного) пути сталкивается с необходимостью писать базовые классы. Эти классы со временем совершенствуются, изменяются, в них добавляется новый функционал. Так и я начал писать свой повторяемый набор классов.</p>
<p>Т.к. ни один проект не обходится без данных, первоначально было задуманно писать класс баз данных. Обычно при работе именно с базами возникают фатальные ошибки, которые могут привести ко взлому всего портала. В таком деле торопиться нельзя, и нужно его тщательно обдумать :-) Но эта статья вовсе не о защите от взлома, а скорее собрание мыслей и интересные ходы, которые я почерпнул листая книжки.</p>
<p><span id="more-8"></span></p>
<p><strong>1. Шаблон проектирования Singleton (одиночка). </strong></p>
<p>Как правило открытие соединения с базой данных требует гораздо больше ресурсов, чем любые, даже самые сложные, запросы. Поскольку язык php не поддерживает многопоточность своих приложений, и каждый запрос на страницу предполагает связь лишь с одной базой данных, то и нерационально тратить ресурсы и пользоваться больше чем одним соединением с базой данных.</p>
<p>Шаблон <em>Singleton</em> как раз таки гарантирует, что некоторый класс может иметь только один экземпляр, и предоставляет глобальную точку доступа к нему.<br />
<code> </code></p>
<pre>&lt;?php
class DataBase {
private function __construct($dsn = null) {
     this-&gt;conn = DB::connect($dsn);
}
static public function instance() {
     static $objDB;
     if(!isset($objDB)) {
         $objDB = new DataBase();
     }
     return $objDB;}
}
?&gt;</pre>
<p>В кратце поясню этот наглядный пример. Путем объявления функции <em>__construct()</em> &#8211; private, мы закрываем доступ к ней извне класса. Единственный способ которым можно создать объект этого класса является статический вызов функции <em>DataBase::instance()</em>, которая в свое время проверит, существует ли объект этого класса, и если несуществует, то создаст новый. Открыл для себя маленький хак :-)</p>
<p><strong>2. Транзакции</strong></p>
<p>Первым делом глядим в википедию, на предмет того, что же собой представляет транзакция.<em> </em></p>
<blockquote><p>Транза́кция (<a title="Английский язык" href="http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA">англ.</a> <em><span>transaction</span></em>) — в <a title="Информатика" href="http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0">информатике</a>, группа последовательных операций, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена целиком либо успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта.</p></blockquote>
<p>А зачем использовать транзакции? Вижу в этом несколько плюсов:</p>
<ol>
<li>Будем использовать тогда, когда нам крайне важно, чтобы нынешние изменения базы были успешно выполнены, иначе предыдущие изменения не имеют смысла или же даже опасны. Как пример: если в рамках одной функции вносятся изменения в несколько таблиц, то использование транзакции не позволит нарушиться целостности ссылок.</li>
<li>Удобно создавать этакие сэйвпоинты, а потом одним махом делать подтверждение или же откат до какой-либо из точек сохранения;</li>
<li>И конечно же важное: принцип невмешательства. Если вы все же намудрили при редактировании баз, то это никак не отразится на других пользователях системы, которые работают с этой базой данных, до тех пор пока вы не подтвердите свои ошибочные действия.</li>
</ol>
<p>Современные версии популярных СУБД такие как MySQL, PostgreSQL, Oracle, MSSQL Server поддерживают транзакции.</p>
<p>Если вы учтёте эти два свойства при проектировании своего класса работы с базами данных, то получится удобный в использовании и грамотный класс, который можно будет легко использовать и в последующих проектах без особых изменений.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/wi11son.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/wi11son.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/wi11son.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/wi11son.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/wi11son.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/wi11son.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/wi11son.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/wi11son.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/wi11son.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/wi11son.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/wi11son.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/wi11son.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/wi11son.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/wi11son.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/wi11son.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/wi11son.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=wi11son.wordpress.com&amp;blog=3752208&amp;post=8&amp;subd=wi11son&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://wi11son.wordpress.com/2008/05/18/db-transactions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">wi11son</media:title>
		</media:content>
	</item>
	</channel>
</rss>
