<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>graywolf&#039;s lair &#187; Переклади</title>
	<atom:link href="http://graywolf.org.ua/category/blog/translation/feed/" rel="self" type="application/rss+xml" />
	<link>http://graywolf.org.ua</link>
	<description>Inhuman being&#039;s diary...</description>
	<lastBuildDate>Thu, 02 Sep 2010 14:11:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Культурний зсув</title>
		<link>http://graywolf.org.ua/2010/09/02/cultural-shift-ua/</link>
		<comments>http://graywolf.org.ua/2010/09/02/cultural-shift-ua/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 08:41:04 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Webcomics]]></category>
		<category><![CDATA[calamities of nature]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[webcomic]]></category>
		<category><![CDATA[переклад]]></category>
		<category><![CDATA[Переклади]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=1515</guid>
		<description><![CDATA[Давно щось я &#8220;Природних лих&#8221; не перекладав, а там час від часу все-таки чудові перли бувають. Сьогодні у мене гарний настрій і пара хвилин вільного часу &#8211; виправляюсь Оригінал тут.]]></description>
			<content:encoded><![CDATA[<p>Давно щось я &#8220;Природних лих&#8221; не перекладав, а там час від часу все-таки чудові перли бувають. Сьогодні у мене гарний настрій і пара хвилин вільного часу &#8211; виправляюсь <img src='http://graywolf.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p><a href="http://graywolf.org.ua/wp-content/uploads/2010/09/con-421.png"><img src="http://graywolf.org.ua/wp-content/uploads/2010/09/con-421.png" alt="" title="Лиха природи - Культурний зсув" width="600" class="aligncenter size-full wp-image-1516" /></a></p>
<p>Оригінал <a href="http://www.calamitiesofnature.com/archive/?c=421">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2010/09/02/cultural-shift-ua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/09/con-421-150x150.png" />
		<media:content url="http://graywolf.org.ua/wp-content/uploads/2010/09/con-421.png" medium="image">
			<media:title type="html">Лиха природи &#8211; Культурний шок</media:title>
			<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/09/con-421-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>Щасливий атеїст (&#8220;Природні лиха&#8221;)</title>
		<link>http://graywolf.org.ua/2010/04/08/the-happy-atheist-calamities-of-nature/</link>
		<comments>http://graywolf.org.ua/2010/04/08/the-happy-atheist-calamities-of-nature/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 08:27:17 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Webcomics]]></category>
		<category><![CDATA[calamities of nature]]></category>
		<category><![CDATA[comics]]></category>
		<category><![CDATA[god]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[religion]]></category>
		<category><![CDATA[webcomic]]></category>
		<category><![CDATA[релігія]]></category>
		<category><![CDATA[філософія]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=1381</guid>
		<description><![CDATA[Ще один переклад &#8220;Лих природи&#8221;. Тут, правда, я не зміг гарно перекласти сенс. Все-таки прямі переклади слів &#8220;unsettling&#8221; та &#8220;empowering&#8221; це трохи не те, про що малося на увазі (на мою думку, звісно). оригінал]]></description>
			<content:encoded><![CDATA[<p>Ще один переклад &#8220;Лих природи&#8221;. Тут, правда, я не зміг гарно перекласти сенс. Все-таки прямі переклади слів &#8220;unsettling&#8221; та &#8220;empowering&#8221; це трохи не те, про що малося на увазі (на мою думку, звісно).</p>
<p><a href="http://graywolf.org.ua/wp-content/uploads/2010/04/con-358.png"><img src="http://graywolf.org.ua/wp-content/uploads/2010/04/con-358.png" alt="Calamities of Nature - The Happy Atheist (ukrainian)" title="Calamities of Nature - The Happy Atheist (ukrainian)" width="600" class="aligncenter size-full wp-image-1382" /></a></p>
<p><a href="http://www.calamitiesofnature.com/archive/?c=358">оригінал</a></p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2010/04/08/the-happy-atheist-calamities-of-nature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/04/con-358-150x150.png" />
		<media:content url="http://graywolf.org.ua/wp-content/uploads/2010/04/con-358.png" medium="image">
			<media:title type="html">Calamities of Nature &#8211; The Happy Atheist (ukrainian)</media:title>
			<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/04/con-358-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>Свобода (xkcd)</title>
		<link>http://graywolf.org.ua/2010/02/24/freedom-xkcd-ukrainian/</link>
		<comments>http://graywolf.org.ua/2010/02/24/freedom-xkcd-ukrainian/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 08:44:21 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Webcomics]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[webcomic]]></category>
		<category><![CDATA[xkcd]]></category>
		<category><![CDATA[свобода]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=1359</guid>
		<description><![CDATA[оригінал P.S. Хоч комікс трохи не про це, але написане в третій частині коміксу &#8211; дуже влучне насправді. Мну в певному сенсі відчув це коли відпочивав у Лисячій бухті, коли за три дні проникся духом свободи настільки, що якби захотів міг вільно стягнути плавки на &#8220;цивільному&#8221; пляжі біля найближчого до бухти санаторію, який ми проходили [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://graywolf.org.ua/wp-content/uploads/2010/02/xkcd-freedom.png"><img src="http://graywolf.org.ua/wp-content/uploads/2010/02/xkcd-freedom.png" alt="Freedom (xkcd українською)" title="Інколи мене просто лякає скільки можливостей мають інші люди." width="600" class="size-full wp-image-1360" /></a></p>
<p><a href="http://xkcd.com/706/">оригінал</a></p>
<p><small>P.S. Хоч комікс трохи не про це, але написане в третій частині коміксу &#8211; дуже влучне насправді. Мну в певному сенсі відчув це коли відпочивав у Лисячій бухті, коли за три дні проникся духом свободи настільки, що якби захотів міг вільно стягнути плавки на &#8220;цивільному&#8221; пляжі біля найближчого до бухти санаторію, який ми проходили по дорозі з ринку. Це відчуття: &#8220;от захочу &#8211; і зроблю, і пофіг на них всих&#8221; насправді одне з найприємніших станів душі, які я колись відчував.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2010/02/24/freedom-xkcd-ukrainian/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/02/xkcd-freedom-150x150.png" />
		<media:content url="http://graywolf.org.ua/wp-content/uploads/2010/02/xkcd-freedom.png" medium="image">
			<media:title type="html">Freedom (xkcd українською)</media:title>
			<media:description type="html">Інколи мене просто лякає скільки можливостей мають інші люди.</media:description>
			<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/02/xkcd-freedom-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>Пристрасні переконання (&#8220;Природні лиха&#8221;)</title>
		<link>http://graywolf.org.ua/2010/02/15/passionate-beliefs-calamities-of-nature/</link>
		<comments>http://graywolf.org.ua/2010/02/15/passionate-beliefs-calamities-of-nature/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 09:06:48 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Webcomics]]></category>
		<category><![CDATA[calamities of nature]]></category>
		<category><![CDATA[god]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[religion]]></category>
		<category><![CDATA[webcomic]]></category>
		<category><![CDATA[релігія]]></category>
		<category><![CDATA[філософія]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=1355</guid>
		<description><![CDATA[оригінал]]></description>
			<content:encoded><![CDATA[<p><a href="http://graywolf.org.ua/wp-content/uploads/2010/02/con-3.png"><img src="http://graywolf.org.ua/wp-content/uploads/2010/02/con-3.png" alt="Calamities of Nature - Passionate Beliefs (ukrainian)" title="Calamities of Nature - Passionate Beliefs (ukrainian)" width="600" class="alignnone size-full wp-image-1356" /></a></p>
<p><a href="http://www.calamitiesofnature.com/archive/?c=338">оригінал</a></p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2010/02/15/passionate-beliefs-calamities-of-nature/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/02/con-3-150x150.png" />
		<media:content url="http://graywolf.org.ua/wp-content/uploads/2010/02/con-3.png" medium="image">
			<media:title type="html">Calamities of Nature &#8211; Passionate Beliefs (ukrainian)</media:title>
			<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/02/con-3-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>Вебкомікс &#8220;Природні лиха&#8221;</title>
		<link>http://graywolf.org.ua/2010/01/30/calamities-of-nature-webcomic/</link>
		<comments>http://graywolf.org.ua/2010/01/30/calamities-of-nature-webcomic/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 23:49:29 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Webcomics]]></category>
		<category><![CDATA[calamities of nature]]></category>
		<category><![CDATA[comics]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[geek and poke]]></category>
		<category><![CDATA[nemi]]></category>
		<category><![CDATA[webcomic]]></category>
		<category><![CDATA[xkcd]]></category>
		<category><![CDATA[українською]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=1333</guid>
		<description><![CDATA[Нещодавно давно наштовхнувся на сабж: Calamities of Nature, додав до свого списку із xkcd, Geek and Poke та Немі. Судячи по останнім стріпам, місцями досить непоганий. Ось для прикладу: оригінал оригінал Деякі найбільш цікаві речі, якщо буде не геть вже ліньки, і надалі перекладатиму&#8230;]]></description>
			<content:encoded><![CDATA[<p>Нещодавно давно наштовхнувся на сабж: <a href="http://www.calamitiesofnature.com/">Calamities of Nature</a>, додав до свого списку із <a href="http://xkcd.com/">xkcd</a>, <a href="http://geekandpoke.typepad.com/">Geek and Poke</a> та <a href="http://community.livejournal.com/ru_nemi/">Немі</a>. Судячи по останнім стріпам, місцями досить непоганий. Ось для прикладу:</p>
<p><a href="http://graywolf.org.ua/wp-content/uploads/2010/01/con-1.png"><img src="http://graywolf.org.ua/wp-content/uploads/2010/01/con-1.png" alt="Calamities of Nature: 325 (українською)" title="Calamities of Nature: 325 (українською)" width="600" class="alignnone size-full wp-image-1334" /></a></p>
<p><a href="http://www.calamitiesofnature.com/archive/?c=325">оригінал</a></p>
<p><a href="http://graywolf.org.ua/wp-content/uploads/2010/01/con-2.png"><img src="http://graywolf.org.ua/wp-content/uploads/2010/01/con-2.png" alt="Calamities of Nature: 323 (українською)" title="Calamities of Nature: 323 (українською)" width="600" class="alignnone size-full wp-image-1335" /></a></p>
<p><a href="http://www.calamitiesofnature.com/archive/?c=323">оригінал</a></p>
<p>Деякі найбільш цікаві речі, якщо буде не геть вже ліньки, і надалі перекладатиму&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2010/01/30/calamities-of-nature-webcomic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/01/con-1-150x150.png" />
		<media:content url="http://graywolf.org.ua/wp-content/uploads/2010/01/con-1.png" medium="image">
			<media:title type="html">Calamities of Nature: 325 (українською)</media:title>
			<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/01/con-1-150x150.png" />
		</media:content>
		<media:content url="http://graywolf.org.ua/wp-content/uploads/2010/01/con-2.png" medium="image">
			<media:title type="html">Calamities of Nature: 323 (українською)</media:title>
			<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2010/01/con-2-150x150.png" />
		</media:content>
	</item>
		<item>
		<title>Правильне використання просторів імен</title>
		<link>http://graywolf.org.ua/2009/05/09/using-namespaces-properly/</link>
		<comments>http://graywolf.org.ua/2009/05/09/using-namespaces-properly/#comments</comments>
		<pubDate>Sat, 09 May 2009 11:51:10 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Мережі та ІТ]]></category>
		<category><![CDATA[Переклади]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[с++]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=1001</guid>
		<description><![CDATA[Переклад статті Using Namespaces Properly від Dejan Jelovic Простори імен – дуже потужна особливість мови C++. Ця стаття не вчитиме синтаксису просторів імен, вона просто покаже як їх варто використовувати. Простори імен лише обгортають всі імена, що в нього входять в якесь інше ім&#8217;я. Наприклад: namespace net { class Socket { ... }; } ... [...]]]></description>
			<content:encoded><![CDATA[<p align="right">Переклад статті <a href="http://jelovic.com/articles/using_namespaces.htm">Using Namespaces Properly</a> від <a href="http://www.jelovic.com">Dejan Jelovic</a></p>
<p>Простори імен – дуже потужна особливість мови C++. Ця стаття не вчитиме синтаксису просторів імен, вона просто покаже як їх варто використовувати.</p>
<p>Простори імен лише обгортають всі імена, що в нього входять в якесь інше ім&#8217;я. Наприклад:</p>
<pre class="brush: cpp;">namespace net {
    class Socket {
        ...
    };
}

...

net::Socket socket;</pre>
<p>Завдяки цьому ми впевнюємося, що якщо дві бібліотеки матимуть свої реалізації класу <em>Socket</em>, то якщо вони назвуть свої простори імен по-різному, ваша програма зможе їх використовувати без яких би то не було конфліктів.</p>
<p>Але це викликає ще одне питання: якщо дві незалежні компанії вирішать писати мережеві бібліотеки, то який шанс, що вони будуть робити реалізацію класу з назвою Socket? Я так думаю, що вірогідність цього відсотків 100.</p>
<p>Нам також подобається, коли простори імен легко набираються, що означає, що вони мають бути довжиною в 2-4 символи. З урахуванням цього, який шанс, що обидві компанії назвуть свій простір імен “Net”? 5 відсотків? 10 відсотків?</p>
<p>Як би там не було, це показує, що простори імен не вирішують цю проблему повністю – вони просто зменшують вірогідність її виникнення.<br />
<span id="more-1001"></span></p>
<h4>Рішення промислового рівня</h4>
<p>Розв&#8217;язком цієї проблеми є використання довгих, унікальних назв простору імен, а потім їх включення в програму під коротким псевдонімом (<em>alias</em>).</p>
<p>Тож компанія, що розробляє мережеву бібліотеку напише щось типу:</p>
<pre class="brush: cpp;">namespace net_33843894 {
    class Socket {
        ...
    };
}</pre>
<p>де номер після “net_” має бути згенеровано генератором випадкових чисел. Нехай цей код розміщено в файлі заголовків з назвою.</p>
<p>Далі бібліотека продається клієнту, який вирішує використати її в проекті. Клієнт тоді описує свій власний спеціалізований для проекту файл заголовків з назвою типу і наступним вмістом:</p>
<pre class="brush: cpp;">#include &lt;netlib&gt;

namespace net = net_33843894;
</pre>
<p>Щойно ми створили власний псевдонім для простору імен для бібліотеки, який діє лише в межах нашого проекту. Якби простір імен “net” вже було зайнято іншою бібліотекою, то ми могли б обрати інше ім&#8217;я: net2, sock, чи ще щось. Тоді не виникало б ніяких конфліктів імен.</p>
<h4>Спрощуючи все</h4>
<p>Розумним було б зробити з бібліотекою щось таке, щоб вона стала простішою для користувача. В ідеалі він мав би клацнути двічі на інсталяційному файлі і бібліотека негайно стала б доступною у його середовищі розробки (IDE). Далі він просто набирав би <em>“#include &lt;yourlib&gt;”</em> і використовував її, щоб створити щось корисне.</p>
<p>Але якщо користувачу доведеться створювати свій заголовок для кожного заголовку вашої бібліотеки, то доведеться постійно страждати, використовуючи її. Не кожному це буде до смаку.</p>
<p>Розв&#8217;язком цієї проблеми є забезпечення розумних значень по замовчуванню, але дозволивши йому можливість змінити їх, якщо вони не підійдуть. Це можна зробити за допомогою макродиректив в файлі заголовків:</p>
<pre class="brush: cpp;">namespace net_33843894 {
    class Socket {
        ...
    };
}

#ifndef NO_NET_33843894_ALIAS
    namespace net = net_33843894;
#endif
</pre>
<p>Таким способом можна надати логічне значення по замовчуванню для простору імен, а якщо воно вже зайняте, то користувач зможе введенням макросу NO_NET_33843894_ALIAS уникнути створення псевдоніму “net”.</p>
<h4>Сучасні компілятори</h4>
<p>Повідомлення про помилки це справжній кошмар при використанні шаблонів. З довгими назвами просторів імен ми зробимо їх ще жахливішими.</p>
<p>На жаль, жоден з компіляторів, якими я користуюсь, недостатньо розумний, щоб використовувати найкоротший з доступних псевдонімів у повідомленнях про помилки. Тобто навіть коли ви використовуєте аліас “net”, то повідомлення про помилку при використанні класу Socket буде посилатись на net_33843894::Socket. Що не дуже то читабельно.</p>
<p>Тому я зазвичай йду на маленьку хитрість. Вона працює лише в заголовках, що містять виключно inline-функції (оскільки вона діє лиш на актуальні імена, що використовуються лінковщиком), але в мене їх достобіса. Якщо макрос NO_NET_33843894_ALIAS не визначено, то я використовую коротке ім&#8217;я як ім&#8217;я простору імен, а довге – як псевдонім:</p>
<pre class="brush: cpp;">#ifdef NO_NET_33843894_ALIAS
namespace net_33843894 {
#else
namespace net {
#endif
    class Socket {
        ...
    };
}

#ifndef NO_NET_33843894_ALIAS
    namespace net_33843894 = net;
#endif
</pre>
<p>І повідомлення про помилки стають більш зрозумілими.</p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2009/05/09/using-namespaces-properly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
	</item>
		<item>
		<title>CДурнеІм&#8217;яКласу</title>
		<link>http://graywolf.org.ua/2009/05/09/cstupidclassname/</link>
		<comments>http://graywolf.org.ua/2009/05/09/cstupidclassname/#comments</comments>
		<pubDate>Sat, 09 May 2009 11:34:26 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Мережі та ІТ]]></category>
		<category><![CDATA[Переклади]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[naming]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=975</guid>
		<description><![CDATA[Вирішив на всяк випадок зібрати свої переклади кількарічної давнини на цьому блозі, щоб не загубились якщо що. Нижче &#8211; перша ластівка &#8211; переклад статті &#8220;CStupidClassName&#8221; від Dejan Jelovic. За пару годин ще пару перепощу &#8211; може комусь стане в нагоді. Я занадто часто зустрічаю класи, ім&#8217;я яких починається з великої літери &#8216;C&#8217;. CMainWindow. CParameters. CSecurity. [...]]]></description>
			<content:encoded><![CDATA[<p>Вирішив на всяк випадок зібрати свої переклади кількарічної давнини на цьому блозі, щоб не загубились якщо що. Нижче &#8211; перша ластівка &#8211; переклад статті <a href="http://www.jelovic.com/articles/stupid_naming.htm">&#8220;CStupidClassName&#8221;</a> від <a href="http://www.jelovic.com/">Dejan Jelovic</a>. За пару годин ще пару перепощу &#8211; може комусь стане в нагоді.<br />
<span id="more-975"></span></p>
<div style="margin-left: 1em; padding-left: 1em; border-left: solid silver 2px;">Я занадто часто зустрічаю класи, ім&#8217;я яких починається з великої літери &#8216;C&#8217;. CMainWindow. CParameters. CSecurity. CThis. CThat. Це безумство потрібно припиняти!</p>
<p>А розпочалося все з легкої руки компанії Borland. Вони тільки-но додали об&#8217;єкти до свого компілятора Turbo Pascal і хотіли постачати його з великою бібліотекою класів.</p>
<p>Зараз менеджери Borland можуть бути повними йолопами, але їхні інженери свого часу були дуже навіть нічого. Вони знали про можливі перешкоди на шляху до впровадження. В той час як вони постачали б велику бібліотеку класів зі звичайними іменами типу Time чи String, деякі з їх клієнтів могли вже використовувати записи (record, паскалевський аналог структур мови Сі) з іменами Time та String і таким чином вони не змогли б скомпілювати свої програми новою версією компілятора. Але коли ви зайнятий розробник ПЗ і дедлайн вже на носі, то вам не до того, аби витрачати цілий день на пошук та усунення проблем з новим компілятором. Ви просто плюнете на все і повернетесь до старого.</p>
<p>Інженери Borland знайшли як розв&#8217;язати цю проблему: вони дописали до кожного класу велику літеру &#8216;T&#8217;. От так ми отримали TWindow, TTime, TString і таке інше.</p>
<p>Звісно, в Borland очікували, що люди продовжать користуватись звичайними іменами класів без великої літери &#8216;T&#8217;. Або, у випадку інших постачальників бібліотек, використовуватимуться інші великі літери. Це зменшило б шанс колізій, коли дві бібліотеки використовували б одну й ту саму велику літеру і одне й те саме ім&#8217;я класу.</p>
<p>Але ж програмісти &#8211; народ зайнятий. Вони часто приймають нововведення своїх постачальників софту за нове віяння. Тож коли вони побачили, що Borland використовує велику &#8216;T&#8217; для іменування своїх класів, то вирішили, що цьому була якась поважна причина і то є добре. Інакше розумні програмісти в Borland цього не зробили б, правда ж?</p>
<p>Це, звісно, і звело нанівець всі зусилля. Так, Borland змогла постачати першу версію своєї бібліотеки не викликавши помилок компіляції існуючих вихідних кодів, але як тільки поширилась практика використання великої літери &#8216;T&#8217; кожна нова версія бібліотеки таки стикалась з цими проблемами.</p>
<p>Тож в довгостроковій перспективі додавання великої &#8216;T&#8217; не принесло нічого доброго.</p>
<h4>Microsoft вступає в бій</h4>
<p>Далі йде Microsoft. Оскільки вони мали на озброєнні лише компілятор C, то почали швидко поступатись своїми позиціями на ринку Borland C++ і змушені були розробити свій компілятор C++ і свою бібліотеку класів. Їх спіткала та ж сама проблема, що і Borland пару років тому: якщо вони постачатимуть новий компілятор і C++ він не зможе компілювати існуючий C-код своїх покупців, то в них будуть великі проблеми.</p>
<p>І що ж вони зробили? Вони додали велику літеру &#8216;C&#8217; до імені кожного класу, який вони постачали зі своїм компілятором.</p>
<p>І знову реакція користувачів не забарилась: вони почали додавати велику &#8216;C&#8217; до імені кожного класу і знову ж ця хитрість була переможена.</p>
<p>От і живемо ми у світі класів з великої літери &#8216;C&#8217;.</p>
<h4>Що нам робити?</h4>
<p>По-перше, здоровий глузд підказує, що варто відмовитись від використання великої &#8216;C&#8217; для ваших імен класів. Оскільки всі використовують її, то таким чином ви зменшите шанс конфлікту імен.</p>
<p>По-друге, ознайомтесь з просторами імен (namespaces) і починайте правильно їх використовувати.</p>
<p>А хіба велика &#8216;C&#8217; не корисна для розрізнення класів?</p>
<p>А хіба різниця між класом та структурою настільки важлива для людини, яка їх використовує? Ви можете знайти хоч один приклад, коли варто враховувати цю різницю?</p>
<p>В C++ коді корисним буде розрізняти тільки дві речі:</p>
<ul>
<li>Чи є ім&#8217;я типом даних, чи функцією?</li>
<li>Є змінна змінною класу, або змінною функції?</li>
</ul>
<p>Перше розрізнення корисне, коли ви дивитесь код з оголошеннями, наприклад:</p>
<pre class="brush: plain;">something (2); // це функція, чи тимчасова змінна?</pre>
<p>Друге необхідне для того, щоб уникати неправильного використання змінних в функції.</p>
<h4>Так що мені використовувати?</h4>
<p>Використовуйте принцип бритви Оккама. Наприклад, багато людей з комітету стандартизації C++ використовують наступні узгодження імен: </p>
<ul>
<li>назви типів даних починаються з великої літери</li>
<li>імена змінних та функцій починаються з літер в нижньому регістрі</li>
<li>імена змінних класу закінчуються символом підкреслення</li>
</ul>
<p>Наприклад:</p>
<pre class="brush: cpp;">
class MyClass {
public:
    MyClass (int numYears) {
        numYears_ = numYears;
    }

    void setYears (int numYears) {
        numYears_ = numYears;
    }

    int getYears () {
        return numYears_;
    }

private:
    int numYears_;
};
</pre>
<p>Альтернативою правила №3 може бути використання узгодження притаманного Microsoft, яке полягає у додаванні префіксу &#8220;m_&#8221; до змінних &#8211; членів класу. Таким чином змінна в прикладі вище називатиметься не numYears_, а m_numYears. Обидва варіанти є гарними.</p>
<h4>Відгук</h4>
<p>Декілька днів тому я отримав повідомлення від Ернесто Гуісадо (Ernesto Guisado), який повідомляв мене про те, що я помилявся, коли думав, що Borland була першою широковідомою компанією, яка почала використовувати велику &#8216;T&#8217;. Ось його електронне повідомлення:</p>
<pre>
From: Ernesto Guisado < ######@acm.org>
To: "Dejan Jelovic" < ########@sezampro.yu>

Добридень,

Я саме прочитав вашу статтю (http://www.jelovic.com/articles/stupid_naming.htm).

Я погоджуюсь з гарно висловленими вами думками у статті,
але маю вказати на помилку:

"А розпочалося все з легкої руки компанії Borland"

Знайдіть на http://developer.apple.com/tools/macapp/macapp_advantages.html
наступні рядки:

"Версії MacApp 1 та 2 були написані на Object Pascal. На початку
90-х MacApp було портовано на C++ і результат мав версію 3.0."

MacApp був переповнений TApplication, TWindow, ...

А це було ще в 1986-му.

Borland'івський OWL було створено спільнотою Whitewater, яка
також створила мову Actor. Actor нагадує Smalltalk із синтаксисом
Pascal/C, тож там могли теж бути посилання на TFoo.

Дивіться також:

http://www.applefritter.com/lisa/texts/Lisa_ToolKit_3_0_Sources.pdf

Він був створений для Apple Lisa (написаної на Clascal) і вже
використовував TByte, TOctet, ...

Цей "Apple Lisa Toolkit 3.0 Source Code Listing" (29/1012) має цікавий рядок:

TByte = -128..127; {Ці T-імена потрібні для того, щоб програмісти МОГЛИ
використовувати UObject, НЕ МОГЛИ використовувати UClascal,
і використовувати "Byte"}

Це може бути підтвердженням вашої теорії!

З повагою,
Ернесто.
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2009/05/09/cstupidclassname/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Мрії (xkcd)</title>
		<link>http://graywolf.org.ua/2009/04/14/dreams-and-internet-xkcd/</link>
		<comments>http://graywolf.org.ua/2009/04/14/dreams-and-internet-xkcd/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 19:51:06 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Webcomics]]></category>
		<category><![CDATA[comic]]></category>
		<category><![CDATA[dreams]]></category>
		<category><![CDATA[xkcd]]></category>
		<category><![CDATA[мрії]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/?p=918</guid>
		<description><![CDATA[Колись давно я згадував один гарний малюнок з відомого гікам вебкоміксу xkcd і навіть думав його перекласти, але все ліньки було. А сьогодні вирішив таки зробити переклад, адже він ідеально підходив у якості ілюстрації моєї позиції в одному обговоренні стосовно блогів. За допомогу в перекладі величезна подяка Мінус-одному &#8211; його варіант мені сподобався більше, аніж [...]]]></description>
			<content:encoded><![CDATA[<p>Колись давно я <a href="http://graywolf.org.ua/2008/04/17/інтернет-параноїкам-присвячується/">згадував</a> один гарний малюнок з відомого гікам вебкоміксу <a href="http://xkcd.com/">xkcd</a> і навіть думав його перекласти, але все ліньки було. А сьогодні вирішив таки зробити переклад, адже він ідеально підходив у якості ілюстрації моєї позиції в <a href="http://electric.org.ua/my/blohomoda.html">одному обговоренні стосовно блогів</a>. За допомогу в перекладі величезна подяка <a href="http://kilesa.org.ua">Мінус-одному</a> &#8211; його варіант мені сподобався більше, аніж власний. Ну а сам комікс під катом. Обережно, матюки, але з пісні слів не викинеш, от.</p>
<p><a href="http://graywolf.org.ua/wp-content/uploads/2009/04/xkcd-fuck-that-shit.gif"><img src="http://graywolf.org.ua/wp-content/uploads/2009/04/xkcd-fuck-that-shit.gif" alt="xkcd - Dreams (Мрії)" title="Друга теза Коннора твердить, що &#039;Не існує долі іншої, аніж ми собі створюємо&#039;. Це рутина руйнує наші творчі здібності, чи навпаки втративши їх ми починаємося займатись рутиною? Як би то не було, хто готовий для мандрівки!" width="550" height="757" class="size-full wp-image-919" /></a></p>
<p>Оригінал: <a href="http://xkcd.com/137/">http://xkcd.com/137/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2009/04/14/dreams-and-internet-xkcd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2009/04/xkcd-fuck-that-shit-150x150.gif" />
		<media:content url="http://graywolf.org.ua/wp-content/uploads/2009/04/xkcd-fuck-that-shit.gif" medium="image">
			<media:title type="html">Друга теза Коннора твердить, що &#8216;Не існує долі іншої, аніж ми собі створюємо&#8217;. Це рутина руйнує наші творчі здібності, чи навпаки втративши їх ми починаємося займатись рутиною. Як би то не було, хто готовий для мандрівки!</media:title>
			<media:description type="html">xkcd - Dreams (Мрії)</media:description>
			<media:thumbnail url="http://graywolf.org.ua/wp-content/uploads/2009/04/xkcd-fuck-that-shit-150x150.gif" />
		</media:content>
	</item>
		<item>
		<title>Від опери до перекладу :)</title>
		<link>http://graywolf.org.ua/2007/12/24/%d0%b2%d1%96%d0%b4-%d0%be%d0%bf%d0%b5%d1%80%d0%b8-%d0%b4%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d1%83/</link>
		<comments>http://graywolf.org.ua/2007/12/24/%d0%b2%d1%96%d0%b4-%d0%be%d0%bf%d0%b5%d1%80%d0%b8-%d0%b4%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d1%83/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 23:39:42 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Музика]]></category>
		<category><![CDATA[Переклади]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/2007/12/24/%d0%b2%d1%96%d0%b4-%d0%be%d0%bf%d0%b5%d1%80%d0%b8-%d0%b4%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d1%83/</guid>
		<description><![CDATA[Щось потягнуло мене під вечір послухати неметалюжних оперних співачок. Слухав оце я Хейлі Вестенра (більш схоже на Сару Брайтман чи &#8220;неметалеві&#8221; сайд-проекти Тар&#8217;ї Турунен) та Чечілія Бартолі (100% опера) і захоплюючись голосом розумів, що ним одним я ситий не буду. Особливо це проявлялось на Чечілії, оскільки там музичне аранжування було, здається, більше для понту. Слухав, [...]]]></description>
			<content:encoded><![CDATA[<p>Щось потягнуло мене під вечір послухати неметалюжних оперних співачок. Слухав оце я <a href="http://en.wikipedia.org/wiki/Hayley_Westenra">Хейлі Вестенра</a> (більш схоже на Сару Брайтман чи &#8220;неметалеві&#8221; сайд-проекти Тар&#8217;ї Турунен) та <a href="http://uk.wikipedia.org/wiki/Бартолі">Чечілія Бартолі</a> (100% опера) і захоплюючись голосом розумів, що ним одним я ситий не буду. Особливо це проявлялось на Чечілії, оскільки там музичне аранжування було, здається, більше для понту. Слухав, і згадалось мені як ходив на &#8220;Ріголетто&#8221; Верді, і як не раз в деяких муз. фрагментах мені покою не давали думки типу: &#8220;а отут би гітарками акцент поставити&#8221;. Нічого з собою поробити не міг &#8211; настільки вже звик до мішанини класичних інструментів з електрогітарами, що звичайні оперні оркестрові партії видаються прісними <img src='http://graywolf.org.ua/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Музика видається &#8220;розрідженою&#8221;, а оцю &#8220;розрідженість&#8221; дуже в тему заповнили б типове звучання важкої музики. Вони б не руйнували, а навпаки органічно доповнювали б одне одного утворюючи щось нове. Це ж навіть якось символічно: класика символізує щось величне, а метал &#8211; навпаки. Ну типу як ангели і демони <img src='http://graywolf.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Кароч послухав-послухав і для порівняння включив трек &#8220;The Divine Conspiracy&#8221; з однойменного альбому гурту Epica. Ну просто бальзам на вуха. Нескладні (навіть примітивні) гітарні рифи як скелет витвору + гарна мелодія класичних інструментів та синтезатора як потужні м&#8217;язи та шкіра. Потім пробило подивтись кліпи Епіки &#8211; заліз на Ютюб. Проглянув ранню творчість і&#8230; не довго думаючи сів за переклад пісні &#8220;Feint&#8221; з їх першого альбому &#8220;The Phantom Agony&#8221;. Поповнилась <a href="http://graywolf.org.ua/translations/lyrics/">моя колекція перекадів</a> зі збереженням мелодії ^_^ Під катом текст оригіналу, переклад (трохи кострубатий як завжди, але все ж) та кліп з Ютюба <img src='http://graywolf.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <span id="more-183"></span></p>
<table border=0>
<tr>
<td colspan=2 align=center><object width="425" height="373"><param name="movie" value="http://www.youtube.com/v/qBLlomNmIy4&#038;rel=0&#038;border=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/qBLlomNmIy4&#038;rel=0&#038;border=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="373"></embed></object></td>
</tr>
<tr>
<td>
<blockquote><p><strong>Epica &#8211; Feint</strong></p>
<p>The very brightest candle of all has been extinguished<br />
Smothered by those who could not bear to face reality</p>
<p><strong>[Chorus:]</strong><br />
Every beat of your heart tore the lies all apart<br />
Made foundations quiver<br />
Every wave in the lake caused the porcelain to break<br />
And I shiver&#8230;</p>
<p>The leftover tallow just doesn&#8217;t contain<br />
All the right answers<br />
Under a sea of dust lies a vast wealth of wisdom</p>
<p>An untuched snow turns red<br />
Innocence dies</p>
<p>This black page in history is not colourfast, will stain the next<br />
All that remains is just a feint of what was meant to be<br />
This black page in history is not colourfast, will stain the next<br />
And nothing seems in life, in dreams like what was meant to be</p></blockquote>
</td>
<td>
<blockquote><p><strong>Епіка &#8211; Обман</strong></p>
<p>Ті саму яскраву зі свічок усіх навік згасили<br />
Кому забракло цей світ осягнути сили</p>
<p><strong>[Приспів:]</strong><br />
Стукіт серця твого розіб&#8217;є брехні скло<br />
Похитне всі основи<br />
Там де хвилі води камінь точать завжди<br />
Я &#8211; уламок&#8230;</p>
<p>Та навіть в уламках мені не знайти<br />
Вірних відповідей<br />
Мудрості скарб віднайти [можна] лиш на дні моря брехні</p>
<p>Чистий сніг тут кровить<br />
Невинність вмира</p>
<p>Ця сторінка історії ще не списана &#8211; вже брудним нову<br />
Зосталася всього лиш тінь від нашої мети<br />
Ця сторінка історії ще не списана &#8211; вже брудним нову<br />
Нічого більш як у сні тоді не збудеться в житті</p></blockquote>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2007/12/24/%d0%b2%d1%96%d0%b4-%d0%be%d0%bf%d0%b5%d1%80%d0%b8-%d0%b4%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d1%83/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
	</item>
		<item>
		<title>Про переклади</title>
		<link>http://graywolf.org.ua/2007/11/27/%d0%bf%d1%80%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8/</link>
		<comments>http://graywolf.org.ua/2007/11/27/%d0%bf%d1%80%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 12:42:37 +0000</pubDate>
		<dc:creator>graywolf</dc:creator>
				<category><![CDATA[Аніме]]></category>
		<category><![CDATA[Переклади]]></category>

		<guid isPermaLink="false">http://graywolf.org.ua/2007/11/27/%d0%bf%d1%80%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8/</guid>
		<description><![CDATA[З великим скрипом був дороблений переклад третьої серії Бамбукового Клинка та виправлена пара дрібниць в перших двох (результат: переклад 1-3 серії). Крім того Мірра повернулась з відпустки і з&#8217;явилась відповідна сторінка на uanime.org.ua. На цей тиждень в планах добити 13-ту серію &#8220;Вовчого Дощу&#8220;, бо я її вже тягну зо два тижні (у зв&#8217;язку з початком [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://uanime.org.ua/img/anime/bamboo.jpg" alt="Bamboo Blade" align="left" style="padding-right: 1em; padding-bottom: 1em;" />З великим скрипом був дороблений переклад третьої серії <a href="http://anidb.net/perl-bin/animedb.pl?show=anime&#038;aid=5356">Бамбукового Клинка</a> та виправлена пара дрібниць в перших двох (результат: <a href="http://graywolf.org.ua/download/5/">переклад 1-3 серії</a>). Крім того Мірра повернулась з відпустки і <a href="http://uanime.org.ua/anime/83.html">з&#8217;явилась відповідна сторінка на uanime.org.ua</a>.</p>
<p>На цей тиждень в планах добити 13-ту серію &#8220;<a href="http://anidb.net/perl-bin/animedb.pl?show=anime&#038;aid=449">Вовчого Дощу</a>&#8220;, бо я її вже тягну зо два тижні (у зв&#8217;язку з початком перекладу &#8220;Клинка&#8221; він трошки &#8220;засаспендився&#8221; <img src='http://graywolf.org.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) та хоча б дві &#8220;Клинка&#8221;, щоб до кінця року наздогнати сабами релізи останнього. &#8220;Дощ&#8221; відповідно йтиме повільніше, оскільки над його перекладом я працюю більш старанно (як не як, а найулюбленіша річ з усього баченого мною кінематографа та анімації), намагаюсь якомого точніше передати зміст &#8211; в три-п&#8217;ять проходів + корекція Рейдера та волонтерів, якщо такі знаходяться. Bamboo Blade перекладаєьться набагато простіше &#8211; я дозволяю собі досить вільні трактування фраз і робиться воно в два-три проходи.</p>
]]></content:encoded>
			<wfw:commentRss>http://graywolf.org.ua/2007/11/27/%d0%bf%d1%80%d0%be-%d0%bf%d0%b5%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://uanime.org.ua/img/anime/bamboo.jpg" />
		<media:content url="http://uanime.org.ua/img/anime/bamboo.jpg" medium="image">
			<media:title type="html">Bamboo Blade</media:title>
			<media:thumbnail url="http://uanime.org.ua/img/anime/bamboo.jpg" />
		</media:content>
	</item>
	</channel>
</rss>
