<?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>ялабуми™</title>
	<atom:link href="http://ashvetsov.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ashvetsov.wordpress.com</link>
	<description>Разработчик. Всесторонний.</description>
	<lastBuildDate>Sun, 24 Oct 2010 11:46:07 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ashvetsov.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>ялабуми™</title>
		<link>http://ashvetsov.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ashvetsov.wordpress.com/osd.xml" title="ялабуми™" />
	<atom:link rel='hub' href='http://ashvetsov.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Цветной консольный Git</title>
		<link>http://ashvetsov.wordpress.com/2010/03/21/%d1%86%d0%b2%d0%b5%d1%82%d0%bd%d0%be%d0%b9-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-git/</link>
		<comments>http://ashvetsov.wordpress.com/2010/03/21/%d1%86%d0%b2%d0%b5%d1%82%d0%bd%d0%be%d0%b9-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-git/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 19:11:16 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=178</guid>
		<description><![CDATA[В Windows так же необходимо выставить переменные окружения: Это так же можно сделать через Advanced System Configuration. Filed under: Methodology<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=178&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><pre class="brush: python;">
git config --global color.ui &quot;auto&quot;
</pre></p>
<p>В Windows так же необходимо выставить переменные окружения:<br />
<pre class="brush: python;">
set LESS=FRSX
set TERM=cygwin
</pre><br />
Это так же можно сделать через Advanced System Configuration.</p>
<br />Filed under: <a href='http://ashvetsov.wordpress.com/category/methodology/'>Methodology</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/178/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/178/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/178/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=178&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2010/03/21/%d1%86%d0%b2%d0%b5%d1%82%d0%bd%d0%be%d0%b9-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>Базы с полной поддержкой UTF-8 в MySQL</title>
		<link>http://ashvetsov.wordpress.com/2010/02/24/%d0%b1%d0%b0%d0%b7%d1%8b-%d1%81-%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d0%b9-%d0%bf%d0%be%d0%b4%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%be%d0%b9-utf-8-%d0%b2-mysql/</link>
		<comments>http://ashvetsov.wordpress.com/2010/02/24/%d0%b1%d0%b0%d0%b7%d1%8b-%d1%81-%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d0%b9-%d0%bf%d0%be%d0%b4%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%be%d0%b9-utf-8-%d0%b2-mysql/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 17:54:44 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=173</guid>
		<description><![CDATA[Очень трудно переключаться между разными типами баз данных. То что в Sql Management Studio можно сделать в несколько кликов, в открытых проектах иногда не столь очевидно. Filed under: Programming<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=173&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Очень трудно переключаться между разными типами баз данных. То что в Sql Management Studio можно сделать в несколько кликов, в открытых проектах иногда не столь очевидно.<br />
<pre class="brush: sql;">
CREATE DATABASE database CHARACTER SET utf8 COLLATE utf8_general_ci;
</pre></p>
<br />Filed under: <a href='http://ashvetsov.wordpress.com/category/programming/'>Programming</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/173/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=173&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2010/02/24/%d0%b1%d0%b0%d0%b7%d1%8b-%d1%81-%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d0%b9-%d0%bf%d0%be%d0%b4%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%be%d0%b9-utf-8-%d0%b2-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>Учиться надо!</title>
		<link>http://ashvetsov.wordpress.com/2010/01/24/%d1%83%d1%87%d0%b8%d1%82%d1%8c%d1%81%d1%8f-%d0%bd%d0%b0%d0%b4%d0%be/</link>
		<comments>http://ashvetsov.wordpress.com/2010/01/24/%d1%83%d1%87%d0%b8%d1%82%d1%8c%d1%81%d1%8f-%d0%bd%d0%b0%d0%b4%d0%be/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 16:42:39 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=167</guid>
		<description><![CDATA[Хорошая вещь &#8211; RSS. Даже пробежаться по сотне заголовков новых постов с десятка разнообразных ресурсов &#8211; и информационный голод утален. Так уж получилось, что я подписан на Хабрахабр &#8211; вроде ИТ, вроде как промелькивают интересные анонсы. Но сегодняшние посты меня ужасно расстроили. Ни для кого не секрет, что в ИТ очень много людей не окончивших [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=167&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Хорошая вещь &#8211; RSS. Даже пробежаться по сотне заголовков новых постов с десятка разнообразных ресурсов &#8211; и информационный голод утален. Так уж получилось, что я подписан на Хабрахабр &#8211; вроде ИТ, вроде как промелькивают интересные анонсы. Но сегодняшние посты меня ужасно расстроили.<br />
Ни для кого не секрет, что в ИТ очень много людей не окончивших высшее образование, не говоря уже о защитивших диссертации. В действительности, могу сказать с полной уверенностью &#8211; карьерному росту мешает не столько отсутствие образования, сколько нежелание его получать.</p>
<p><span id="more-167"></span><br />
Впервые я официально устроился на работу в 18 лет, после первого семестра. Устроился с плавающим графиком, поскольку хоть и посещал институт крайне редко, но лабораторные работы и некоторые семинары были обязательными. Примерно в одно со мной время пришел еще один сотрудник на схожую со мной позицию. Он не учился, отчислился в первую сессию и не хотел восстанавливаться &#8211; считал что у него все и без этого в жизни сложится. Через полгода, когда я полностью освоился на первом новом месте, пришла аттестация. В таблице грейдов одной из основных характеристик было поле &laquo;Образование и опыт работы&raquo;. Для первого грейда было &laquo;Студент старших курсов, без опыта работы&raquo;, второго &#8211; &laquo;Высшее образование, 2-5 лет опыта в области ИТ&raquo;. Я получил второй грейд, а мой коллега &#8211; первый.<br />
Я ушел из этой компании через 2 с небольшим года, достигнув 3 грейда. Мой коллега так и остался на первом.</p>
<br />Posted in Methodology  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=167&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2010/01/24/%d1%83%d1%87%d0%b8%d1%82%d1%8c%d1%81%d1%8f-%d0%bd%d0%b0%d0%b4%d0%be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>JavaScript и replaceall</title>
		<link>http://ashvetsov.wordpress.com/2009/10/20/javascript-%d0%b8-replaceall/</link>
		<comments>http://ashvetsov.wordpress.com/2009/10/20/javascript-%d0%b8-replaceall/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 14:32:52 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=164</guid>
		<description><![CDATA[Как ни странно, но конструкция вида: получит на выходе &#171;found this and find that&#187;. Но не надо никаких циклов, что бы сделать правильно, достаточно простого регекспа (точнее модификатора &#8216;g&#8217;): и в итоге &#8211; все нашли &#8211; &#171;found this and found that&#187;. Posted in JavaScript, Programming<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=164&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Как ни странно, но конструкция вида:<br />
<pre class="brush: jscript;">
var string = &quot;find this and find that&quot;.replace(&quot;find&quot;, &quot;found&quot;);
</pre><br />
получит на выходе &laquo;found this and find that&raquo;. Но не надо никаких циклов, что бы сделать правильно, достаточно простого регекспа (точнее модификатора &#8216;g&#8217;):<br />
<pre class="brush: jscript;">
var string = &quot;find this and find that&quot;.replace(/find/g, &quot;found&quot;);
</pre><br />
и в итоге &#8211; все нашли &#8211; &laquo;found this and found that&raquo;.</p>
<br />Posted in JavaScript, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=164&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2009/10/20/javascript-%d0%b8-replaceall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>Немного об Objective-C и Cocoa</title>
		<link>http://ashvetsov.wordpress.com/2009/10/09/%d0%bd%d0%b5%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%be%d0%b1-objective-c-%d0%b8-cocoa/</link>
		<comments>http://ashvetsov.wordpress.com/2009/10/09/%d0%bd%d0%b5%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%be%d0%b1-objective-c-%d0%b8-cocoa/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 17:31:35 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=136</guid>
		<description><![CDATA[Так получилось, что хоть я и сторонник технологий Microsoft, последние два-три года я являюсь Mac-пользователем, а последний год &#8211; Mac является моим основным рабочим ноутбуком. Для .Net я разрабатываю в виртуальной машине, а Python, Mono, впрочем как и много чего другого &#8211; нативно. Но заинтересовался я и Objective-C, надо же заниматься саморазвитием +) Итак начну [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=136&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Так получилось, что хоть я и сторонник технологий Microsoft, последние два-три года я являюсь Mac-пользователем, а последний год &#8211; Mac является моим основным рабочим ноутбуком. Для .Net я разрабатываю в виртуальной машине, а Python, Mono, впрочем как и много чего другого &#8211; нативно.<br />
Но заинтересовался я и Objective-C, надо же заниматься саморазвитием +) Итак начну по порядку, первым делом я пошел на официальный сайт и вошел в Developer&#8217;s Zone, где нашел статью какраз для меня &#8211; <a href="http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjCTutorial/01Introduction/01Introduction.html">Introduction to Cocoa</a>, пролистал и, откровенно говоря, объема статьи для понимания мне абсолютно не хватило. В итоге открыл Google, Xcode и начал писать&#8230;<br />
<span id="more-136"></span>Objective-C &#8211; объектно-ориентированный язык, похож на Smalltalk, и в корне отличается от всего с чем я имел дело раньше. Главное отличие &#8211; сообщения. В Objective-C мы не вызываем метод, а шлем объекту сообщение. Как же это выглядит? Примерно так:<br />
<pre class="brush: java;">
[ialubimii learnNewProgrammingLang:@&quot;Objective-C&quot; toLevel:5];
</pre><br />
Здесь <em>ialubimii</em> &#8211; объект, то есть я, и мне отправляется сообщение учить Objective-C до уровня 5. Но изучить язык я пока не могу, а что бы я мог обработать такое сообщение, я должен иметь для него селектор, который сможет получить и обработать это сообщение. Но для начала нам надо создать меня, экземпляр класса CProgrammer &#8211; наследника CHuman.<br />
Классы в Objective-C определяются в двух файлах &#8211; .h и .m, первый &#8211; заголовок в котором прописывается <em>@interface</em>, второй &#8211; имплементация.</p>
<blockquote><p>
<strong>CHuman.h</strong><br />
<pre class="brush: java;">
// Импортируем главный заголовочный файл Cocoa:
#import &lt;Cocoa/Cocoa.h&gt;

// Объявляем класс и наследуем его от NSObject, базового объекта Cocoa:
@interface CHuman : NSObject {
    // Объявляем защищенные переменные:
    //   1. Ссылка на экземпляр строки NSString;
    NSString *name;
    //   2. Переменная NSInteger.
    NSInteger age;
}
// Объявляем публичные свойства нашего класса:
//   1. readwrite определяет тип доступ;
//   2. retain говорит о том, что тип ссылочный и нам
//       нужно удалять ссылки при удалении самого
//       объекта.
@property (readwrite, retain) NSString *name;
@property (readwrite) NSInteger age;

@end
</pre><br />
<strong>CHuman.m</strong><br />
<pre class="brush: java;">
// Импортируем наш заголовок:
#import &quot;CHuman.h&quot;

// Объявляем имплементацию класса:
@implementation CHuman
// Говорим компилятору, что хотим синтезировать
// код для свойств name и age:
@synthesize name, age;
@end
</pre>
</p></blockquote>
<p>Теперь определим класс-наследник <em>CHuman</em> &#8211; <em> CProgrammer </em>, который будет определять программиста, именно класс <em>CProgrammer</em> будет уметь принимать сообщения <em>learnNewProgrammingLang:toLevel</em>, а заодно иметь словарь своих знаний:</p>
<blockquote><p>
<strong>CProgrammer.h</strong><br />
<pre class="brush: java;">
#import &lt;Cocoa/Cocoa.h&gt;
// Импортируем заголовок класса CHuman для наследования:
#import &lt;CHuman.h&gt;

@interface CMan : CProgrammer {
    // Определяем словарь знаний нашего программиста:
    NSMutableDictionary *programmingSkills;
    // NSMutableDictionary является динамическим аналогом
    // NSDictionary.
}
@property (readwrite, retain) NSMutableDictionary *programmingSkills;

// Определяем заголовок селектора для сообщения:
-(void)learnNewProgrammingLang:(NSString*)name toLevel:(NSInteger)level;

@end
</pre><br />
<strong>CProgrammer.m</strong><br />
<pre class="brush: java;">
#import &quot;CProgrammer.h&quot;

@implementation CProgrammer
@synthesize programmingSkills;
// Реализуем конструктор и деструктор, это необходимо
// для инициализации и уничтожения нашего словаря.
-(id)init {
    // Вызываем супер-конструктор.
    self = [super init];
    // Выделяем память и создаем словарь на 20 записей:
    programmingSkills = [[NSMutableDictionary alloc] initWithCapacity:20];
    // Здесь используется вложенное сообщение, то есть
    // сначала мы выделяем память под NSMutableDictionary
    // с помощью сообщения alloc, а затем инициализируем
    // экземпляр с помощью конструктора init.
    return self;
}
-(void)dealloc {
    // Удаляем наш словарь:
    // Вызываем супер-деструктор:
    [super dealloc];
}

// Реализуем объявленный в заголовке селектор:
-(void)learnNewProgrammingLang:(NSString*)name toLevel:(NSInteger)level {
    // Сохраняем сообщение в словарь знаний,
    // таким образом наш программист теперь
    // сможет запоминать то что он учит:
    [programmingSkills setValue:level forKey:name];
}
@end
</pre>
</p></blockquote>
<p>Теперь необходимые классы готовы и мы можем использовать их в нашем приложении:<br />
<pre class="brush: java;">
// Создаем экземпляр программиста-меня:
CProgrammer *ialubimii = [[CProgrammer alloc] init];
// А теперь мы можем послать сообщение, которое
// я смогу получить и обработать, выучив Objective-C.
[ialubimii learnNewProgrammingLang:@&quot;Objective-C&quot; toLevel:5];
</pre></p>
<p>А скоро я расскажу о своем небольшом проекте, разрабатываемом на Objective-C, а так же об XCode, Interface Builder&#8230; Вообщем о том, как создаются приложения под Mac на Cocoa.</p>
<br />Posted in Cocoa, Objective-C, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/136/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=136&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2009/10/09/%d0%bd%d0%b5%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%be%d0%b1-objective-c-%d0%b8-cocoa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>ExpandoObject или &#171;Зачем из C# делают динамически типизированный язык?&#187;</title>
		<link>http://ashvetsov.wordpress.com/2009/10/06/expandoobject-%d0%b8%d0%bb%d0%b8-%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%b8%d0%b7-c-%d0%b4%d0%b5%d0%bb%d0%b0%d1%8e%d1%82-%d0%b4%d0%b8%d0%bd%d0%b0%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8-%d1%82%d0%b8/</link>
		<comments>http://ashvetsov.wordpress.com/2009/10/06/expandoobject-%d0%b8%d0%bb%d0%b8-%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%b8%d0%b7-c-%d0%b4%d0%b5%d0%bb%d0%b0%d1%8e%d1%82-%d0%b4%d0%b8%d0%bd%d0%b0%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8-%d1%82%d0%b8/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 11:51:53 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=128</guid>
		<description><![CDATA[Сейчас в Visual C# Highlights последним постом висит &#171;Introducing the Expando Object&#187;. Это, наверное, третий или четвертый пост про DLR (Dynamic Language Runtime), но лично для меня самый пугающий. Посмотрим на пример (кстати, не так давно я описывал &#171;Enumerator в Python&#187;): Выглядит вполне невинно. Тем более что по сути своей это не многим больше чем [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=128&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Сейчас в Visual C# Highlights последним постом висит <a href="http://blogs.msdn.com/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx">&laquo;Introducing the Expando Object&raquo;</a>. Это, наверное, третий или четвертый пост про DLR (Dynamic Language Runtime), но лично для меня самый пугающий.<br />
Посмотрим на пример (кстати, не так давно я описывал <a href="/2009/07/30/enumerator-в-python/">&laquo;Enumerator в Python&raquo;</a>):<br />
<pre class="brush: csharp;">
dynamic contact = new ExpandoObject();
contact.Name = &quot;Alexander Shvetsov&quot;;
contact.Location = &quot;Moscow, Russian Federation&quot;;
</pre><br />
<span id="more-128"></span>Выглядит вполне невинно. Тем более что по сути своей это не многим больше чем оболочка для:<br />
<pre class="brush: csharp;">
Dictionary&lt;string, object&gt; contact = new Dictionary&lt;string, object&gt;();
contact.Add(&quot;Name&quot;, &quot;Alexander Shvetsov&quot;);
contact.Add(&quot;Location&quot;, &quot;Moscow, Russian Federation&quot;);
</pre><br />
Но к чему это может привести? По мнению MS:</p>
<ul>
<li>Более тесной интеграции с динамически типизированными языками;</li>
<li>Простоте использования.</li>
</ul>
<p>Трудно с чем-либо поспорить, но вот от себя очень хотелось бы добавить:</p>
<ul>
<li>Снижению и без того низкой планки вхождения до уровня Python&#8217;а;</li>
<li>Значительному уменьшению стабильности кода;</li>
<li>Появлению противников со стороны сообщества.</li>
</ul>
<p>Кстати один противник в лице меня уже появился. Но ведь можно его (DLR) просто не использовать +)</p>
<br />Posted in C#, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=128&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2009/10/06/expandoobject-%d0%b8%d0%bb%d0%b8-%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%b8%d0%b7-c-%d0%b4%d0%b5%d0%bb%d0%b0%d1%8e%d1%82-%d0%b4%d0%b8%d0%bd%d0%b0%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8-%d1%82%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>Уменьшение лога транзакций (Shrink transaction log) в MSSQL</title>
		<link>http://ashvetsov.wordpress.com/2009/09/23/%d1%83%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bb%d0%be%d0%b3%d0%b0-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b9-shrink-transaction-log-%d0%b2-mssql/</link>
		<comments>http://ashvetsov.wordpress.com/2009/09/23/%d1%83%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bb%d0%be%d0%b3%d0%b0-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b9-shrink-transaction-log-%d0%b2-mssql/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 13:30:28 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=124</guid>
		<description><![CDATA[Иногда случается что большие транзакции могут зависнуть (эксепшны, аварийный выход), в таком случае Transaction Log может вырастать до неимоверных размеров &#8211; иногда соизмеримыми с объемом данных. Если лог все же не нужен, уменьшить его объем можно простой командой SHRINKFILE: В гугле почему-то очень трудно найти внятный пример использования. Апдейт для MSSQL 2008: В MSSQL 2008 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=124&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Иногда случается что большие транзакции могут зависнуть (эксепшны, аварийный выход), в таком случае Transaction Log может вырастать до неимоверных размеров &#8211; иногда соизмеримыми с объемом данных. Если лог все же не нужен, уменьшить его объем можно простой командой SHRINKFILE:<br />
<pre class="brush: sql;">
USE [MyDatabase];
BACKUP LOG [MyDatabase] WITH TRUNCATE_ONLY;
DBCC SHRINKFILE(MyDatabase_Log, 10)
GO
</pre><br />
В гугле почему-то очень трудно найти внятный пример использования.</p>
<p><strong>Апдейт для MSSQL 2008:</strong><br />
В MSSQL 2008 была введена новая модель восстановления, поэтому метод используемый для 2000-2005 в нем не работает.<br />
Самый простой способ уменьшить лог &#8211; переключить его на Simple, сделать SHRINKFILE и вернуть к Full:<br />
<pre class="brush: sql;">
USE [MyDatabase]
ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE 
DBCC SHRINKFILE (MyDatabase_Log, 10); 
ALTER DATABASE [MyDatabase] SET RECOVERY FULL
</pre></p>
<br />Posted in Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=124&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2009/09/23/%d1%83%d0%bc%d0%b5%d0%bd%d1%8c%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bb%d0%be%d0%b3%d0%b0-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b9-shrink-transaction-log-%d0%b2-mssql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>Задача на внимательность</title>
		<link>http://ashvetsov.wordpress.com/2009/09/01/%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-%d0%bd%d0%b0-%d0%b2%d0%bd%d0%b8%d0%bc%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d1%8c/</link>
		<comments>http://ashvetsov.wordpress.com/2009/09/01/%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-%d0%bd%d0%b0-%d0%b2%d0%bd%d0%b8%d0%bc%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d1%8c/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 06:17:27 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[Logic]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=117</guid>
		<description><![CDATA[Если задача об идентификаторах была скорее на логику, то вот небольшая задача на внимательность. Как будет работать такая конструкция в C#? Одним словом, что делает такая стрелочка? Posted in Logic, Programming<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=117&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Если <a href="http://ashvetsov.wordpress.com/2009/08/04/задача-на-собеседование/">задача об идентификаторах</a> была скорее на логику, то вот небольшая задача на внимательность.</p>
<blockquote><p>
Как будет работать такая конструкция в C#?<br />
<pre class="brush: csharp;">
while (value --&gt; 0)
{
    ...
}
</pre>
</p></blockquote>
<p>Одним словом, что делает такая стрелочка?</p>
<br />Posted in Logic, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/117/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=117&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2009/09/01/%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-%d0%bd%d0%b0-%d0%b2%d0%bd%d0%b8%d0%bc%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d1%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>Разные модификаторы для get и set в C#</title>
		<link>http://ashvetsov.wordpress.com/2009/08/25/%d1%80%d0%b0%d0%b7%d0%bd%d1%8b%d0%b5-%d0%bc%d0%be%d0%b4%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-get-%d0%b8-set-%d0%b2-c/</link>
		<comments>http://ashvetsov.wordpress.com/2009/08/25/%d1%80%d0%b0%d0%b7%d0%bd%d1%8b%d0%b5-%d0%bc%d0%be%d0%b4%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-get-%d0%b8-set-%d0%b2-c/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 06:17:21 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=114</guid>
		<description><![CDATA[Отнють нетривиальным можно назвать возможность выставлять различные модификаторы доступа для get и set в свойствах. Все очень просто, а между тем и очень полезно. Update: Жаль, нельзя так же определять свойства в интерфейсах. Posted in C#, Programming<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=114&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Отнють нетривиальным можно назвать возможность выставлять различные модификаторы доступа для get и set в свойствах. Все очень просто, а между тем и очень полезно.<br />
<pre class="brush: csharp;">
public string Name
{
    get { return this.name; }
    internal set { this.name = value; }
}
</pre><br />
<strong>Update:</strong> Жаль, нельзя так же определять свойства в интерфейсах.</p>
<br />Posted in C#, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=114&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2009/08/25/%d1%80%d0%b0%d0%b7%d0%bd%d1%8b%d0%b5-%d0%bc%d0%be%d0%b4%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-get-%d0%b8-set-%d0%b2-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
		<item>
		<title>Url Routing в ASP.NET</title>
		<link>http://ashvetsov.wordpress.com/2009/08/10/url-routing-%d0%b2-asp-net/</link>
		<comments>http://ashvetsov.wordpress.com/2009/08/10/url-routing-%d0%b2-asp-net/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 11:27:24 +0000</pubDate>
		<dc:creator>Alexander Shvetsov</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://ashvetsov.wordpress.com/?p=91</guid>
		<description><![CDATA[Сейчас достаточно популярен фреймворк ASP.NET MVC. Сам по себе &#171;паттерн&#187; MVC достаточно интересен, но не всегда применим. Конечно же он накладывает множество ограничений и на разработчика, и на приложение. Но ведь иногда можно почерпнуть отдельную часть, без ущерба для кого-либо, в данном случае это механизм URL роутинга, который всемте с .Net 3.5 SP1 вошел во [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=91&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Сейчас достаточно популярен фреймворк ASP.NET MVC. Сам по себе &laquo;паттерн&raquo; MVC достаточно интересен, но не всегда применим. Конечно же он накладывает множество ограничений и на разработчика, и на приложение. Но ведь иногда можно почерпнуть отдельную часть, без ущерба для кого-либо, в данном случае это механизм URL роутинга, который всемте с .Net 3.5 SP1 вошел во фрэймворк в виде неймспейса <strong>System.Web.Routing</strong>.<br />
<span id="more-91"></span>Итак по порядку, для начала проставим все необходимые референсы и параметры в web.config:<br />
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;configuration&gt;
    ...
    &lt;system.web&gt;
        &lt;compilation debug=&quot;true&quot;&gt;
            &lt;assemblies&gt;
                ...
                &lt;add assembly=&quot;System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;/&gt;
                &lt;add assembly=&quot;System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;/&gt;
            &lt;/assemblies&gt;
        &lt;/compilation&gt;
        ...
        &lt;httpModules&gt;
            &lt;add name=&quot;UrlRoutingModule&quot; type=&quot;System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;/&gt;
            ...
        &lt;/httpModules&gt;
    &lt;/system.web&gt;
    ...
    &lt;system.webServer&gt;
        &lt;modules runAllManagedModulesForAllRequests=&quot;true&quot;&gt;
            &lt;add name=&quot;UrlRoutingModule&quot; type=&quot;System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;/&gt;
        &lt;/modules&gt;
        ...
    &lt;/system.webServer&gt;
&lt;/configuration&gt;
</pre><br />
Здесь мы сделали следующее:</p>
<ol>
<li>Добавили референс на <strong>System.Web.Routing</strong> в compilation/assemblies;</li>
<li>Добавили модуль <strong>UrlRoutingModule</strong> в system.web/httpModules (для поддержки ASP.NET Development Server) и в system.webServer/modules (для корректной работы IIS7);</li>
<li>Проставили значение аргумента <strong>runAllManagedModulesForAllRequests</strong> который так же необходим для корректной работы IIS7, без него мы бы получали 404 на все запросы к неизвестным типам файлов, то есть мы бы смогли роутить только запросы оканчивающиеся на *.aspx, которые IIS направляет приложению.</li>
</ol>
<p>К сожалению, установка <strong>runAllManagedModulesForAllRequests</strong> может сказаться на скорости выдачи IIS статического контента. Это вызвано тем, что IIS будет загружать все управляемые модули для всех запросов, то есть при каждом обращении к файлу изображения, будет инициализироваться <strong>ScriptModule</strong>. Поэтому на высоконагруженных системах лучше выделять отдельную сущность сайта в IIS для обработки запросов к статическому содержимому приложения.<br />
Далее нам нужен класс <strong>RouteHandler</strong>, который будет обрабатывать наши роутинги, для этого он должен реализовывать интерфейст <strong>IRouteHandler</strong>, то есть метод <strong>GetHttpHandler()</strong>, возвращающий <strong>IHttpHandler</strong>, обработающий запрос:<br />
<pre class="brush: csharp;">
using System;
using System.Web;
using System.Web.Compilation;
using System.Web.Routing;
using System.Web.UI;

/// &lt;summary&gt;
/// Represents common route handler.
/// &lt;/summary&gt;
public class RouteHandler : IRouteHandler
{
    private string path = &quot;&quot;;

    /// &lt;summary&gt;
    /// Creates and instance of route handler by
    /// virtual path.
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;VirtualPath&quot;&gt;Handler virtual path.&lt;/param&gt;
    public RouteHandler(string virtualPath)
    {
        this.path = virtualPath;
    }

    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        // Copying route data to context.
        foreach (var value in requestContext.RouteData.Values)
        {
            requestContext.HttpContext.Items[value.Key] = value.Value;
        }

        return BuildManager.CreateInstanceFromVirtualPath(this.path, typeof(Page)) as Page;
    }
}
</pre><br />
Здесь так же присутствует узкое место, а именно вызов <strong>CreateInstanceFromVirtualPath</strong>. Впрочем, оценить производительность <strong>BuildManager</strong> мне не удалось, и данное утверждение по сути является лишь предположением.<br />
Последний шаг настройки &#8211; добавление роутинга в <strong>RouteTable</strong>, для этого легче всего использовать <strong>Global.asax</strong>:<br />
<pre class="brush: csharp;">
protected void Application_Start(object sender, EventArgs e)
{
    System.Web.Routing.RouteTable.Routes.Add(
        new System.Web.Routing.Route(&quot;Users/{UserName}&quot;, new RouteHandler(&quot;~/Users.aspx&quot;)));
}
</pre><br />
Вот и все, сама же <strong>Users.aspx</strong> может выглядеть примерно так (допустим наш запрос содержив себе так же и GET параметр &laquo;/Users/ashvetsov/?Action=Test&raquo;):<br />
<pre class="brush: csharp;">
using ...;

public partial class _Users : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Context.Items[&quot;UserName&quot;] != null) // &quot;ashvetsov&quot;
        { }

        if (Request[&quot;Action&quot;] != null) // &quot;Test&quot;
        { }
    }
}
</pre></p>
<br />Posted in C#, Programming  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ashvetsov.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ashvetsov.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ashvetsov.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ashvetsov.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ashvetsov.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ashvetsov.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ashvetsov.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ashvetsov.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ashvetsov.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ashvetsov.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ashvetsov.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ashvetsov.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ashvetsov.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ashvetsov.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ashvetsov.wordpress.com&amp;blog=2498109&amp;post=91&amp;subd=ashvetsov&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ashvetsov.wordpress.com/2009/08/10/url-routing-%d0%b2-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4039ff2233ed516c98f40b2259f05de3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ialubimii</media:title>
		</media:content>
	</item>
	</channel>
</rss>
