<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Notes of a Developer &#187; Google</title>
	<atom:link href="http://www.developers-life.com/category/google/feed" rel="self" type="application/rss+xml" />
	<link>http://www.developers-life.com</link>
	<description>Develop on Objective-C, UIKit, C, OpenGL for  iPhone, iPad, Mac OS X</description>
	<lastBuildDate>Fri, 03 Feb 2012 11:49:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Chrome deviceorientation event in javascript</title>
		<link>http://www.developers-life.com/chrome-deviceorientation-event-in-javascript.html</link>
		<comments>http://www.developers-life.com/chrome-deviceorientation-event-in-javascript.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 22:01:24 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[deviceorientation]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[window.addEventListener]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=1412</guid>
		<description><![CDATA[Video: 12345678&#60;script language=&#34;javascript&#34;&#62; function onOrientation&#40;event&#41; &#123; &#160; &#160; &#160; &#160; var rotate = 'rotate(' + event.gamma + 'deg)'; &#160; &#160; &#160; &#160; var scale = 'scale(' + &#40;&#40;event.beta/180&#41;*2 + 1&#41; + ')'; &#160; &#160; &#160; &#160; document.getElementById&#40;'testlogo'&#41;.style.webkitTransform = rotate + ' ' + scale; &#125; window.addEventListener&#40;'deviceorientation', onOrientation&#41;; &#60;/script&#62;]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.blog.spoongraphics.co.uk/wp-content/uploads/2011/colourful-logo/18.jpg" id="testlogo" width="150" height="127"><br />
<script language="javascript">function onOrientation(event) {
        var rotate = 'rotate(' + event.gamma + 'deg)';
        var scale = 'scale(' + ((event.beta/180)*2 + 1) + ')';
        document.getElementById('testlogo').style.webkitTransform = rotate + ' ' + scale;
}window.addEventListener('deviceorientation', onOrientation);</script></p>
<p>Video:<br />
<iframe width="480" height="360" src="http://www.youtube.com/embed/509sfdQ4uPg" frameborder="0" allowfullscreen></iframe><br />
<span id="more-1412"></span></p>
<div class="codecolorer-container objc geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;script language<span style="color: #002200;">=</span><span style="color: #bf1d1a;">&quot;javascript&quot;</span>&gt;<br />
function onOrientation<span style="color: #002200;">&#40;</span>event<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var rotate <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">'rotate('</span> <span style="color: #002200;">+</span> event.gamma <span style="color: #002200;">+</span> <span style="color: #bf1d1a;">'deg)'</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; var scale <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">'scale('</span> <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#40;</span>event.beta<span style="color: #002200;">/</span><span style="color: #2400d9;">180</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">*</span><span style="color: #2400d9;">2</span> <span style="color: #002200;">+</span> <span style="color: #2400d9;">1</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">+</span> <span style="color: #bf1d1a;">')'</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; document.getElementById<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">'testlogo'</span><span style="color: #002200;">&#41;</span>.style.webkitTransform <span style="color: #002200;">=</span> rotate <span style="color: #002200;">+</span> <span style="color: #bf1d1a;">' '</span> <span style="color: #002200;">+</span> scale;<br />
<span style="color: #002200;">&#125;</span><br />
window.addEventListener<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">'deviceorientation'</span>, onOrientation<span style="color: #002200;">&#41;</span>;<br />
&lt;<span style="color: #002200;">/</span>script&gt;</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/chrome-deviceorientation-event-in-javascript.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Android SDK first steps</title>
		<link>http://www.developers-life.com/google-android-sdk-first-steps.html</link>
		<comments>http://www.developers-life.com/google-android-sdk-first-steps.html#comments</comments>
		<pubDate>Tue, 03 Nov 2009 00:10:47 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Кодинг]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=625</guid>
		<description><![CDATA[Долгое время я посматривал на Google Android OS и хотел посмотреть, что это такое и вот решился :-). Поставить было довольно просто! Скачал Eclipse Galileo и Android SDK (само sdk было пустое, нужно было по инструкции поставить его), распоковал и поставил по инструкции все как и пологается. Вот! Структура файлов: Сначала начал тыкаться, мыкать, что [...]]]></description>
			<content:encoded><![CDATA[<p>Долгое время я посматривал на Google Android OS и хотел посмотреть, что это такое и вот решился :-). Поставить было довольно просто! Скачал Eclipse Galileo и Android SDK (само sdk было пустое, нужно было по инструкции поставить его), распоковал и поставил по инструкции все как и пологается. Вот!</p>
<p>Структура файлов:</p>
<p><img class="alignnone size-full wp-image-626" title="Screen shot 2009-11-03 at 1.03.04 AM" src="http://www.developers-life.com/wp-content/uploads/2009/11/Screen-shot-2009-11-03-at-1.03.04-AM.png" alt="Screen shot 2009-11-03 at 1.03.04 AM" width="203" height="330" /></p>
<p>Сначала начал тыкаться, мыкать, что куда и как, нашел где находится основной код:<br />
<strong> /src/__package_name__/__project_name__.java</strong></p>
<p>Обнаружил что-то типа интерфейс билдера, далее как IB (что-то типа, потому-что c apple реализацией IB тяжело ему тягаться)<br />
<strong>/res/layout/main.xml</strong> &#8211; его можно править как вручную так и немного автоматизированным путем:<br />
<img class="alignnone size-large wp-image-629" title="Screen shot 2009-11-03 at 1.23.44 AM" src="http://www.developers-life.com/wp-content/uploads/2009/11/Screen-shot-2009-11-03-at-1.23.44-AM-1024x571.jpg" alt="Screen shot 2009-11-03 at 1.23.44 AM" width="484" height="270" /></p>
<p>На картинке и так видно что к чему, но по мелочам распишу: <span id="more-625"></span><br />
1. Дерево фалов которое я привел выше<br />
2.  Сам толком еще не разобрал, но название говорит само за себя &#8211; layouts (слои). На 7 мы видим, что там главный слой LinearLayouts. Думаю, что слои для манипуляций с отображеием объектов, но с этим мы еще разберемся в будущем.<br />
3. Список объектов, тут все просто.<br />
4. Отображается полученный интерфейс при моделировании.<br />
<span style="background-color: #ffffff;">5. Переключатель между видами моделирования, сейчас выбран &#8220;Layout&#8221; а ниже приведен пример main.xml<br />
<img class="alignnone size-full wp-image-630" title="Screen shot 2009-11-03 at 1.43.13 AM" src="http://www.developers-life.com/wp-content/uploads/2009/11/Screen-shot-2009-11-03-at-1.43.13-AM.png" alt="Screen shot 2009-11-03 at 1.43.13 AM" width="338" height="246" /><br />
6. На картинке выбран элемент TextView и в этом окошке 6 отображаются его параметры, которые можно менять  и их довольно таки много!<br />
7. Список объектов. Тут все просто.<br />
</span></p>
<p><span style="background-color: #ffffff;">Немного просмотрев доки нашел как обратиться к кнопке:<br />
В <strong>/src/__package_name__/__project_name__.java </strong>добавим  <strong>import android.widget.Button;</strong></span></p>
<p>после:</p>
<div class="codecolorer-container java geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>вставим код:</p>
<div class="codecolorer-container java geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abutton+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Button</span></a> button <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abutton+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Button</span></a><span style="color: #009900;">&#41;</span>findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">Button01</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>обратите внимание на скриншо чуть выше, там есть кнопка с этим id<br />
и посавим текст:</p>
<div class="codecolorer-container java geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;button.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">string</span>.<span style="color: #006633;">hello</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Незнаю плюс это или минус, но есть хранилище констант (Android Resources)! Думаю всеже это пл<span style="background-color: #ffffff;">юс. В <strong>/res/values/strings.xml </strong>хранятся константы, к примеру текст который в TextView взят из этого хранилища и указан в IB через название константы.</span></p>
<p><img class="alignnone size-medium wp-image-631" title="Screen shot 2009-11-03 at 1.51.57 AM" src="http://www.developers-life.com/wp-content/uploads/2009/11/Screen-shot-2009-11-03-at-1.51.57-AM-300x109.png" alt="Screen shot 2009-11-03 at 1.51.57 AM" width="300" height="109" /><br />
К примеру из кода к этим данным можно обратиться таким образом: <strong>R.string.hello</strong></p>
<p>Наш следующий и заключительный на сегодня файл это: <strong>/gen/__package_name__/R.java<br />
<span style="font-weight: normal;">Как написано в самом файле: &#8220; This class was automatically generated by the aapt tool from the resource data it found.  It should not be modified by hand.&#8221; Другими словами автомаически генераруется спомощью толзы, когда мы редактируем ресурсы и объекты в IB. Благодаря этому коду мы можем работать с объектами в ресурс файле описанном выше. </span></strong></p>
<p>Вот еще немного информации:<br />
<span style="color: #99cc00;"> src/</span><br />
Includes your stub Activity Java file. All other Java files for your application go here.<br />
<span style="background-color: #ffffff;"><em> </em></span></p>
<p><span style="background-color: #ffffff;"><em><span style="color: #99cc00;">&lt;Android Version&gt;</span></em><span style="color: #99cc00;">/ (e.g., Android 1.1/)</span><br />
Includes the android.jar file that your application will build against. This is determined by the build target that you have chosen in the New Project Wizard.</span></p>
<p><span style="background-color: #ffffff;"><span style="color: #99cc00;">gen/</span><br />
This contains the Java files generated by ADT, such as your R.java file and interfaces created from AIDL files.</span></p>
<p><span style="background-color: #ffffff;"><span style="color: #99cc00;">assets/</span><br />
This is empty. You can use it to store raw asset files. See Resources and Assets.</span></p>
<p><span style="background-color: #ffffff;"><span style="color: #99cc00;">res/</span><br />
A folder for your application resources, such as drawable files, layout files, string values, etc. See Resources and Assets.</span></p>
<p><span style="color: #99cc00;"> AndroidManifest.xml</span><br />
The Android Manifest for your project. See The AndroidManifest.xml File.<br />
<span style="color: #99cc00;"> default.properties</span><br />
This file contains project settings, such as the build target. This files is integral to the project, as such, it should be maintained in a Source Revision Control system. It should never be edited manually — to edit project properties, right-click the project folder and select &#8220;Properties&#8221;.</p>
<p><strong> </strong></p>
<p><strong>Вывод: Android SDK меня заинтересовала, вполне гибко все сделано, если попотеть, то можно даже написать свой какой-то мега удобный интерфейс билдер, потипу как у apple, но это преспектива. Пока еще не изучил основные функции, ивенты и прочее, но конструкция R. мне уже чем-то нравится! Можно обратиться к объекту из любого места! Теперь паттерн singleton буду реже использовать. Вцелом будем двигать эту тему!</strong></p>
<p><strong><span style="font-weight: normal;">Спасибо за внимание! Буду рад вопросам и замечаниям!</span></strong></p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/google-android-sdk-first-steps.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome OS</title>
		<link>http://www.developers-life.com/google-chrome-os.html</link>
		<comments>http://www.developers-life.com/google-chrome-os.html#comments</comments>
		<pubDate>Fri, 10 Jul 2009 22:25:57 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Chrome]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=495</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.developers-life.com/wp-content/uploads/2009/07/1268-draft.jpg"><img class="alignnone size-full wp-image-496" title="1268-draft" src="http://www.developers-life.com/wp-content/uploads/2009/07/1268-draft.jpg" alt="" width="490" height="698" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/google-chrome-os.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ukraine!?</title>
		<link>http://www.developers-life.com/ukraine.html</link>
		<comments>http://www.developers-life.com/ukraine.html#comments</comments>
		<pubDate>Tue, 09 Jun 2009 08:29:59 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[others]]></category>
		<category><![CDATA[PayPal]]></category>
		<category><![CDATA[Ukraine]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=464</guid>
		<description><![CDATA[Что у нас за страна!? :( Все крупные компании нас обходят стороной, такие как: Apple, Google, &#8230; Блин я просто в шоке! У Apple мы вообще числимся только в списках&#8230; PayPal это вообще молчу&#8230; :( Правительство у нас &#8220;идет в ногу со временем&#8221;! Может устроить протест? Что мы можем сделать, простые граждани нашей страны? Может [...]]]></description>
			<content:encoded><![CDATA[<p>Что у нас за страна!? :( Все крупные компании нас обходят стороной, такие как: Apple, Google, &#8230;</p>
<p>Блин я просто в шоке! У Apple мы вообще числимся только в списках&#8230;</p>
<p>PayPal это вообще молчу&#8230; :(</p>
<p>Правительство у нас &#8220;идет в ногу со временем&#8221;!</p>
<p>Может устроить протест?<br />
Что мы можем сделать, простые граждани нашей страны?<br />
Может у кого-то есть свои идеи?</p>
<p>Я хоть и  не заядлый патриот, но желания у меня пока нету выехать из страны чтоб пользоваться всеми услугами. Пользоваться под другими данными и достовать все по более приемлемым ценам через десять лиц, меня тоже не радует и порядном поднадоело :(</p>
<p>Буду ресерчить, может уже есть какие движухи?! Если кто из читателей знает отпишите пожалуйста! Если не найду возможно буду организовывать, чисто на общественных началах.</p>
<p>З.Ы.: Это было написано после просмотра WWDC 09, хоть и конференция меня и не впечатлила&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/ukraine.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google developer day 2008 Moscow</title>
		<link>http://www.developers-life.com/google-developer-day-2008-moscow.html</link>
		<comments>http://www.developers-life.com/google-developer-day-2008-moscow.html#comments</comments>
		<pubDate>Wed, 29 Oct 2008 14:44:39 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[others]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=216</guid>
		<description><![CDATA[Google developer Day 2008 Это часть команды Injoit. Я стою в рубашке с левой стороны, на корточках сидит Сорока Олег , далее Филатов Тарас и Булгаков Алексей. Фото сделано после лекции про &#8220;Gears&#8221;, лектор Brad Neuberg. Лекция была очень познавательная, эту лекцию можно будет найти на YouTube. Лекция по App Engine(углубленное изучение), лектор Jon McAlister. [...]]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: center;">Google developer Day 2008</h2>
<p><a href="http://www.developers-life.com/wp-content/uploads/2008/10/dsc02025.jpg"><img class="aligncenter size-medium wp-image-218" title="dsc02025" src="http://www.developers-life.com/wp-content/uploads/2008/10/dsc02025-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Это часть команды <a title="injoit.com" href="http://www.injoit.com">Injoit</a>. Я стою в рубашке с левой стороны, на корточках сидит <a href="http://oleg40a.in.ua/2008/10/google-developer-day-2008/">Сорока Олег</a> , далее Филатов Тарас и <a title="Bulgakov Alex" href="http://www.alexbulgakov.com/2008/11/03/google-developer-day-2008/">Булгаков Алексей</a>. Фото сделано после лекции про &#8220;Gears&#8221;, лектор <a href="http://codinginparadise.org/">Brad Neuberg</a>. Лекция была очень познавательная, эту лекцию можно будет найти на YouTube.</p>
<p><span id="more-216"></span></p>
<p><a href="http://www.developers-life.com/wp-content/uploads/2008/10/dsc02010.jpg"><img class="aligncenter size-medium wp-image-217" title="dsc02010" src="http://www.developers-life.com/wp-content/uploads/2008/10/dsc02010-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Лекция по App Engine(углубленное изучение), лектор Jon McAlister. Перед лекцией Jon McAlister присутствовал на практическом занятии на котором мы поработали с примерами wiki.</p>
<p><a href="http://code.google.com/intl/ru/events/developerday/2008/agenda.html">Залы были названы известными фантастами</a>:Лем, Бредбери, Азимов, Шекли, &#8230;</p>
<p>Всюду царил позитив&#8230; :)</p>
<p>Было приятно принять участие на данной конференции и открыть новые горизонты технологий Google&#8230;</p>
<p><strong><span style="color: #000000;">Огромное спасибо Тарасу Филатову (директор Injoit Team) за организацию поездки на конференцию (</span></strong><strong><span style="color: #000000;">Google Developer Day 2008)</span></strong><strong><span style="color: #000000;"> в Москву!!!</span></strong><span style="text-decoration: underline;"><br />
</span></p>
<p>P.S.: Рекомендую ознакомиться с медиа материалами конференции, которые вскоре появятся на офф. сайте.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/google-developer-day-2008-moscow.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to install Google reviewboard</title>
		<link>http://www.developers-life.com/how-to-install-google-reviewboard.html</link>
		<comments>http://www.developers-life.com/how-to-install-google-reviewboard.html#comments</comments>
		<pubDate>Thu, 02 Oct 2008 13:39:34 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=198</guid>
		<description><![CDATA[В данной статье рассказывается что нужно сделать чтоб настроить reviewboard  на ubuntu Ставим пакеты sudo apt-get install build-essential subversion python-imaging python-flup python-dev memcached libmemcache-dev http://code.google.com/p/reviewboard/ http://demo.review-board.org/account/login/?next_page=/dashboard/ так оно выглядит там не обязательно регится svn co http://code.djangoproject.com/svn/django/trunk django_src слей себе куда нибуть джанго можешь поставить из пакета, я ставил из SVN, если будешь из SVN ставить, [...]]]></description>
			<content:encoded><![CDATA[<p>В данной статье рассказывается что нужно сделать чтоб настроить reviewboard  на ubuntu</p>
<p>Ставим пакеты<br />
sudo apt-get install build-essential subversion python-imaging python-flup python-dev memcached libmemcache-dev</p>
<p>http://code.google.com/p/reviewboard/</p>
<p>http://demo.review-board.org/account/login/?next_page=/dashboard/</p>
<p>так оно выглядит<br />
там не обязательно регится<br />
svn co http://code.djangoproject.com/svn/django/trunk django_src<br />
слей себе куда нибуть джанго</p>
<p>можешь поставить из пакета, я ставил из SVN, если будешь из SVN ставить, тогда выполнишь:<br />
sudo python setup.py install<br />
<span id="more-198"></span><br />
потом нужна вот эта фича http://gijsbert.org/downloads/cmemcache/<br />
cmemcache нужен для кеширования, ставить не обязательно, но с ним будет быстрее, если еще не стоит нужны mysql-server-5.0 python-mysqldb и  python-svn</p>
<p>Далее создаем базу данных в mysql, только не забываем указать кодировку UTF-8, а то коменты русские не будут поддерживаться</p>
<p>http://pygments.org/download/</p>
<p>надо еще эту фичу поставить, ставиться так же как и джанго</p>
<p>потом отчекаутишь в /var/www или как там у тебя настроено, вот это<br />
svn checkout http://reviewboard.googlecode.com/svn/trunk/reviewboard</p>
<p>Изменяем имя файлика settings_local.py.local в settings_local.py или как-то так он называется<br />
теперь в файлике изменяем<br />
DATABASE_ENGINE = &#8216;mysql&#8217;<br />
DATABASE_NAME = &#8216;reviewboard&#8217;<br />
DATABASE_USER = &#8216;username&#8217; #enter user name here<br />
DATABASE_PASSWORD = &#8216;password&#8217; #enter password here<br />
DATABASE_HOST =  # default (localhost)<br />
DATABASE_PORT =  # default</p>
<p>Если ставил cmemcache тогда можешь указать CACHE_BACKED, если установлен на локальной машине<br />
CACHE_BACKED=&#8217;locmem://127.0.0.1:11211/&#8217;</p>
<p>В /usr/lib/python2.5/site-packages/django/conf/global_settings.py изменяем настройки<br />
SEND_REVIEW_MAIL = True<br />
USE_I18N = False<br />
DIFF_SYNTAX_HIGHLIGHTING = True<br />
[14:39:21] … EMAIL_HOST = &#8216;айпи&#8217;<br />
EMAIL_PORT = порт<br />
Выполняем в папке с ривьюбордом ./manage.py syncdb<br />
он создаст таблицы и т. д., на вопрос ответишь да<br />
потом выполнишь ./manage.py runserver, если все ок. можешь его через ctrl+c убить</p>
<p>Останиться только добавить новый хост, делаем запись что-то вроде этого<br />
&lt;VirtualHost *:80&gt;<br />
ServerName example<br />
DocumentRoot /var/www/reviewboard/htdocs</p>
<p># Error handlers<br />
ErrorDocument 500 /errordocs/500.html</p>
<p># Serve django pages<br />
&lt;LocationMatch ^/(.*)$&gt;<br />
PythonPath &#8220;['/usr/lib/python2.5/site-packeges/django'] + ['/var/www'] + ['/var/www/reviewboard'] + sys.path&#8221;<br />
# + ['/var/www/reviewboard/djblets']<br />
SetEnv DJANGO_SETTINGS_MODULE reviewboard.settings<br />
SetHandler mod_python<br />
PythonHandler django.core.handlers.modpython<br />
PythonAutoReload Off<br />
PythonDebug Off<br />
# If you run multiple mod_python sites in the same apache<br />
# instonce, uncomment this line:<br />
# PythonInterpreter reviewboard<br />
&lt;/LocationMatch&gt;</p>
<p># Serve static media without running it through mod_python<br />
# (overrides the above)<br />
&lt;LocationMatch ^(/(media|errordocs))&gt;<br />
SetHandler None<br />
&lt;/LocationMatch&gt;</p>
<p># Alias static media requests to filesystem<br />
Alias /media /var/www/reviewboard/htdocs/media<br />
Alias /errordocs /var/www/reviewboard/htdocs/errordocs<br />
&lt;/VirtualHost&gt;</p>
<p>Сделать доступ на запись в паках media ревьюборда</p>
<p>Может че-то пропустил. немного про оптимизацию рассказано сдесь</p>
<p>http://code.google.com/p/reviewboard/w/list</p>
<p>Будут вопросы пишите&#8230; :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/how-to-install-google-reviewboard.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Как создать динамический XML-файл Google Sitemap?</title>
		<link>http://www.developers-life.com/how-to-create-a-dynamic-xml-file-google-sitemap.html</link>
		<comments>http://www.developers-life.com/how-to-create-a-dynamic-xml-file-google-sitemap.html#comments</comments>
		<pubDate>Fri, 12 Sep 2008 10:00:12 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Sitemap]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.developers-life.com/?p=137</guid>
		<description><![CDATA[Если Ваш сайт состоит из 1000 страниц и более, то создавать Google Sitemap вручную будет слишком долго, муторно и неудобно. К счастью, Google предоставляет собственный скрипт, называемый Sitemap Generator, позволяющий очень быстро сгенерировать необходимый файл. Этот скрипт написан на языке Python, он создаёт Sitemap для Вашего сайта, используя Sitemap Protocol. Этот скрипт может создавать Sitemaps [...]]]></description>
			<content:encoded><![CDATA[<p>Если Ваш сайт состоит из 1000 страниц и более, то создавать Google Sitemap вручную будет слишком долго, муторно и неудобно.</p>
<p>К счастью, Google предоставляет собственный скрипт, называемый <a title="Google Sitemap Generator" href="https://www.google.com/webmasters/tools/docs/en/sitemap-generator.html" target="_blank">Sitemap Generator</a>, позволяющий очень быстро сгенерировать необходимый файл. Этот скрипт написан на языке Python, он создаёт Sitemap для Вашего сайта, используя <strong>Sitemap Protocol</strong>. Этот скрипт может создавать Sitemaps из списка <acronym title="Uniform Resource Locator">URL</acronym>, директорий веб-сервера или из логов доступа.</p>
<p><span id="more-137"></span></p>
<p><strong>Узнать больше информации относительно инструментов, предоставляемых Google’ом для веб-мастеров Вы можете тут:</strong> <a href="https://www.google.com/webmasters/sitemaps/login" target="_blank">https://www.google.com/webmasters/sitemaps/login</a></p>
<h4>Инструменты для генерации файла Google Sitemap от сторонних производителей</h4>
<p>Google также предоставляет информацию о других sitemap-генераторах.</p>
<p>Например я использую бесплатный sitemap-генератор. Он лёгок в применении, и он быстро генерирует необходимый <acronym title="eXtensible Markup Language">XML</acronym>-код для сайта.</p>
<h4><strong>Ниже я привожу пошаговый план создания Google Sitemap при помощи одного из множества бесплатных Sitemap-генераторов:</strong></h4>
<ol>
<li>Зайдите на сайт <a title="Sitemap Generator" href="http://www.sitemapspal.com/" target="_blank">http://www.sitemapspal.com</a> и введите адрес Вашего сайта в форму, находящуюся в самом верху страницы сайта</li>
<li>Нажмите Submit</li>
<li>Скопируйте сгенерированный для Вашего сайта код и вставьте его в чистый текстовый файл блокнота (notepad)</li>
<li>Сохраните этот текстовый файл под именем <strong>sitemap.xml</strong></li>
<li>Загрузите этот файл в корневую директорию Вашего сайта (туда, где находится домашняя страница сайта)</li>
<li>В адресной строке браузера наберите полный путь к сгенерированному файлу, например http://www.yoursite.com/sitemap.xml. Если Вы всё сделали правильно, то Вы увидите список URL’ов и никаких ошибок</li>
<li>Теперь откройте свой <a title="Google Sitemap аккаунт" href="https://www.google.com/webmasters/sitemaps/login" target="_blank">Google Sitemap аккаунт</a> и добавьте этот путь (из пункта 6) в соответствующую графу в аккаунте</li>
<li>Проделывайте эти шаги применительно к каждому своему сайту.</li>
</ol>
<h4>Резюме</h4>
<p>Google является крупнейшей и популярнейшей поисковой машиной во всём Интернете. Каждый год миллионы веб-сайтов попадают в индекс Google, что естественным образом усложняет задачу нахождения Вашего сайта в результатах поисковой выдачи (SERP). Поэтому создайте и начинайте использовать <strong>Google Sitemap</strong> прямо сейчас.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/how-to-create-a-dynamic-xml-file-google-sitemap.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Новый взгляд на браузер</title>
		<link>http://www.developers-life.com/new-look-at-browser.html</link>
		<comments>http://www.developers-life.com/new-look-at-browser.html#comments</comments>
		<pubDate>Wed, 03 Sep 2008 23:07:34 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Chrome]]></category>

		<guid isPermaLink="false">http://developers-life.com/?p=76</guid>
		<description><![CDATA[Сундар Пичай, Вице-президент по продуктам, Линус Упсон, Директор по разработкам Работая в Google, мы проводим большую часть своего рабочего времени в окне браузера. Мы ищем, общаемся и вместе работаем над документами &#8211; в браузере. И, как и все вы, в свободное время мы делаем покупки, читаем новости и переписываемся с друзьями &#8211; тоже в браузере. [...]]]></description>
			<content:encoded><![CDATA[<p>Сундар Пичай, Вице-президент по продуктам,<br />
Линус Упсон, Директор по разработкам</p>
<p>Работая в Google, мы проводим большую часть своего рабочего времени в окне браузера. Мы ищем, общаемся и вместе работаем над документами &#8211; в браузере. И, как и все вы, в свободное время мы делаем покупки, читаем новости и переписываемся с друзьями &#8211; тоже в браузере. Люди всё больше времени проводят в Интернете, и делают там такие вещи, о которых даже не мечтали во время его появления 15 лет назад.</p>
<p>Проводя столько времени онлайн, мы всерьёз задумались о том, как должен выглядеть браузер, если создать его с нуля из всего самого лучшего. Мы понимаем, что Интернет эволюционирует &#8211; он прошёл путь от простых текстовых страниц до многофункциональных интерактивных приложений. А значит, нужно кардинально переосмыслить и суть браузера. Нам хотелось получить не просто браузер, а современную платформу для веб-страниц и приложений, и мы решили взяться за создание именно такой платформы.</p>
<p>Поэтому сегодня мы выпускаем бета-версию нового браузера с открытым исходным кодом: Google Chrome.<br />
<span id="more-76"></span><br />
Мы спроектировали внешний вид браузера таким образом, чтобы окно было максимально простым и удобным. Большинство людей интересует не браузер. Он лишь инструмент для выполнения важных задач &#8211; отображения страниц, сайтов и приложений, из которых состоит всемирная паутина. Как и классическая страница поиска Google, браузер Google Chrome прост и быстр. Он помогает попасть туда, куда нужно, не отвлекая вас.</p>
<p>Если заглянуть &#8220;под капот&#8221;, можно увидеть, что мы сумели создать ядро браузера, выполняющего современные сложные веб-приложения намного лучше. Выделяя каждой вкладке свою изолированную среду, мы не даём одной зависшей вкладке подвесить остальные, а также обеспечиваем дополнительную защиту от вредоносных сайтов. Мы улучшили общую скорость работы и отклик на команды. Мы также создали V8, усовершенствованный движок Javascript &#8211; он будет лежать в основе следующего поколения веб-приложений, которые невозможны в существующих сегодня браузерах.</p>
<p>И это только начало. Мы выпустили эту бета-версию для Windows, чтобы как можно скорее услышать ваши мнения и предложения. Мы работаем над созданием версий для Mac и Linux, и будем стремиться к тому, чтобы Google Chrome становился всё быстрее и надёжнее.</p>
<p>Мы многим обязаны различным проектам open source, и собираемся придерживаться этого курса. Мы использовали, среди прочих, компоненты Apple WebKit и Mozilla Firefox и тоже открываем наш исходный код. Мы надеемся, что наше сотрудничество со всем Интернет-сообществом поможет и дальше развивать Интернет.</p>
<p>Новые изобретения обогащают Интернет.  Google Chrome &#8211; ещё один инструмент, и мы надеемся, что Интернет с ним станет ещё лучше.</p>
<p>Но хватит рассказов.  Лучше просто попробуйте Google Chrome сами.<br />
Скачайте его на <a href="http://www.google.com/chrome/?utm_campaign=ru&amp;utm_source=ru-blog-grb&amp;utm_medium=blog&amp;brand=CHMP">www.google.com/chrome</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/new-look-at-browser.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Правильное использование&#8221; Google maps</title>
		<link>http://www.developers-life.com/google-maps.html</link>
		<comments>http://www.developers-life.com/google-maps.html#comments</comments>
		<pubDate>Wed, 03 Sep 2008 22:00:29 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://developers-life.com/?p=15</guid>
		<description><![CDATA[Доброго времени! Сейчас я напишу пост об этой технологии. Не нашли реально разумный подход для решения отображения маркеров на карте и о том, что нам понадобилось для этого в просторах интернета Первым делом сам google map, я не буду комментить коды, т.к. про все можно прочитать на офф сайте или  найти в интернете. Проект над [...]]]></description>
			<content:encoded><![CDATA[<p>Доброго времени!</p>
<p>Сейчас я напишу пост об этой технологии. Не нашли реально разумный подход для решения отображения маркеров на карте и о том, что нам понадобилось для этого в просторах интернета</p>
<p>Первым делом сам google map, я не буду комментить коды, т.к. про все можно прочитать на офф сайте или  найти в интернете.</p>
<p>Проект над которым я вел работы http://frantsia.ru/nedvigimost/</p>
<p>Заказчик у нас человек разумный! Он сразу предложил разбиение страны на зоны, а зоны на регионы, чтоб не отображать тучу маркеров сразу на всей карте и естественно отображать маркеры только в видимой области, что способствует к ускорению работы карты. При определенном зуме маркеры меняются на зоны/регионы/недвижимость. Каждый, раз когда человек двигает карту, происходит обращение на сервер за новыми данными. Организация передачи данных производится слега переписанным framework Sajax.</p>
<p>Почему Sajax? -  маленький и быстрый!</p>
<p><span id="more-15"></span></p>
<p>Некие моменты! Можно добавить перелистывание объектов на карте, к примеру по 100 штук. Собственно как и поступили все мне известные проект связанные с картами. С одной стороны это удобно, но есть свои но&#8230; Читал статью на хабре, как одна команда решала задачу с маркерами. Они такие велосипеды изобретали&#8230;. :)</p>
<p>Карта и все элементы поиска прослушываются на evets, что делает ее более юзабельной. В google API есть свой GEvent который очень прост в использовании, к примеру:</p>
<div class="codecolorer-container javascript geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">GEvent.<span style="color: #660066;">addListener</span><span style="color: #009900;">&#40;</span>map<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;moveend&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>map.<span style="color: #660066;">getZoom</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #CC0000;">12</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #339933;">!</span>click<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get_real<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>click<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get_zones<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setTimeout<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> click <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">4000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Продолжу писать пост как появится время :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/google-maps.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google API AJAX Translate, переводим на своем сайте</title>
		<link>http://www.developers-life.com/google-api-ajax-translate-to-translate-its-website.html</link>
		<comments>http://www.developers-life.com/google-api-ajax-translate-to-translate-its-website.html#comments</comments>
		<pubDate>Wed, 03 Sep 2008 17:06:23 +0000</pubDate>
		<dc:creator>Vladimir Boychentsov</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://developers-life.com/?p=13</guid>
		<description><![CDATA[Гуг открыл свой API по переводу! Думаю многие сразу его заюзали! Вот пример который я реализовал 1234567891011121314151617&#60;script type=&#34;text/javascript&#34; src=&#34;http://www.google.com/jsapi&#34;&#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34;&#62; google.load&#40;&#34;language&#34;, &#34;1&#34;&#41;; function transl&#40;sour,lang&#41; &#123; &#160; &#160; &#160; text = document.getElementById&#40;&#34;text&#34;&#41;; &#160; &#160; &#160; google.language.translate&#40;text.value, sour, lang, function&#40;result&#41; &#160; &#160; &#160; &#123; &#160; &#160; &#160; &#160; &#160;if &#40;!result.error&#41; &#160; &#160; &#160; &#160; &#160;&#123; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Гуг открыл свой API по переводу! Думаю многие сразу его заюзали!</p>
<p>Вот пример который я реализовал</p>
<div class="codecolorer-container javascript geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.google.com/jsapi&quot;&gt;&lt;/script&gt;<br />
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
google.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;language&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #003366; font-weight: bold;">function</span> transl<span style="color: #009900;">&#40;</span>sour<span style="color: #339933;">,</span>lang<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; text <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;text&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; google.<span style="color: #660066;">language</span>.<span style="color: #660066;">translate</span><span style="color: #009900;">&#40;</span>text.<span style="color: #660066;">value</span><span style="color: #339933;">,</span> sour<span style="color: #339933;">,</span> lang<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>result.<span style="color: #660066;">error</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> container <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;translation&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; container.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> result.<span style="color: #660066;">translation</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p><span id="more-13"></span></p>
<div class="codecolorer-container html4strict geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/label.html"><span style="color: #000000; font-weight: bold;">label</span></a> <span style="color: #000066;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span>&gt;</span>Введите текст для перевода:<span style="color: #009900;">&lt;;<span style="color: #66cc66;">/</span>label&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">textarea</span></a> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:400px;height:150px;&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/textarea.html"><span style="color: #000000; font-weight: bold;">textarea</span></a>&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;width:400px;height:150px;&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;translation&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Перевод на English&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;transl('ru','en');&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Перевод на Русский&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;transl('en','ru');&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Пример определения языка:</p>
<div class="codecolorer-container javascript geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:810px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> text <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Перевести&quot;</span><span style="color: #339933;">;</span><br />
google.<span style="color: #660066;">language</span>.<span style="color: #660066;">detect</span><span style="color: #009900;">&#40;</span>text<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>result.<span style="color: #660066;">error</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #003366; font-weight: bold;">var</span> language <span style="color: #339933;">=</span> <span style="color: #3366CC;">'unknown'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>l <span style="color: #000066; font-weight: bold;">in</span> google.<span style="color: #660066;">language</span>.<span style="color: #660066;">Languages</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>google.<span style="color: #660066;">language</span>.<span style="color: #660066;">Languages</span><span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> result.<span style="color: #660066;">language</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;language <span style="color: #339933;">=</span> l<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> container <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;detection&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; container.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> text <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; is: &quot;</span> <span style="color: #339933;">+</span> language <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Очень удобный AJAX! Я его заюзал уже на нескольких сайтах, к примеру http://uslugi.net/ там используется в панели юзера при добавлении объявления!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.developers-life.com/google-api-ajax-translate-to-translate-its-website.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

