<?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>Web development</title>
	<atom:link href="http://lugovoy.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://lugovoy.net</link>
	<description>шизофрения - не порок</description>
	<lastBuildDate>Thu, 02 Feb 2012 20:16:41 +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>Более плотное знакомство с VIM</title>
		<link>http://lugovoy.net/post/%d0%b1%d0%be%d0%bb%d0%b5%d0%b5-%d0%bf%d0%bb%d0%be%d1%82%d0%bd%d0%be%d0%b5-%d0%b7%d0%bd%d0%b0%d0%ba%d0%be%d0%bc%d1%81%d1%82%d0%b2%d0%be-%d1%81-vim/</link>
		<comments>http://lugovoy.net/post/%d0%b1%d0%be%d0%bb%d0%b5%d0%b5-%d0%bf%d0%bb%d0%be%d1%82%d0%bd%d0%be%d0%b5-%d0%b7%d0%bd%d0%b0%d0%ba%d0%be%d0%bc%d1%81%d1%82%d0%b2%d0%be-%d1%81-vim/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 20:14:39 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[text editor]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=431</guid>
		<description><![CDATA[С недавних пор я начал набирать текст слепым десятипальцевым методом и здорово ощутил, как неудобно порой убирать кисть правой руки то на мышку, то на &#171;стрелочки&#187; клавиатуры для навигации по [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lugovoy.net/wp-content/uploads/2012/02/vim_gloss_512.png"><img class="alignleft  wp-image-432" style="margin: 4px; border: 0px none; float: left;" title="vim_gloss_512" src="http://lugovoy.net/wp-content/uploads/2012/02/vim_gloss_512-150x150.png" alt="" width="90" height="90" /></a>С недавних пор я начал набирать текст слепым десятипальцевым методом и здорово ощутил, как неудобно порой убирать кисть правой руки то на мышку, то на &#171;стрелочки&#187; клавиатуры для навигации по тексту, именно эта проблема заставила меня основательно попробовать текстовый редактор VIM. В двух словах VIM &#8212; это очень древний редактор, последователь редактора VI, основная идея которого в том, что есть несколько режимов при работе с текстом. Если не учитвать visual и replace режимы, то в VIM два режима рыботы.  В обычном (normal или как его ещё называют command) режиме текст с клавиатуры не вводят, а осуществляют различные манипуляции над текстом, к примеру, чтобы удалить слово достаточно переместить курсор в начало этого слова и нажать на клавиатуре d, а затем w. Второй режим(insert mode) &#8212; это режим ввода текста, как раз в нём и происходит вставка текста, а нажав клавишу Esc можно опять вернуться в нормальный режим.<span id="more-431"></span></p>
<p>По ощущениям &#8212; как и печатать десятипальцевым методом, сначала неудобно, но когда дело доходит до автоматизма, то даже не задумываешься &#8212; просто делаешь то, что должен, полный автоматизм. Нужно перейти в начало файла &#8212; жмём gg и вуаля, в конец &#8212; жмём G и мы в конце файла.  Скажу, что это не первая моя попытка &#171;осилить&#187; VIM. Раньше мне разбивка режимов казалось жутко неудобной, а сейчас, когда я приловчился печатать слепым методом, лучшей альтернативы не сыскать. Если Вам захочется попробовать этот замечательный редактор, пройдите vimtutor(достаточно набрать в консоли vimtutor), чтобы понять основную идею редактора, также могу посоветовать хорошую <a rel="nofollow" href="http://www.amazon.com/Hacking-Vim-7-2-Kim-Schulz/dp/1849510504">книгу</a>, она расскажет как &#171;готовить vim&#187;.</p>
<p>По долгу службы я занимаюсь веб-программированием на rails, так вот при помощи готовых наборов скриптов от<a href="https://github.com/akitaonrails/vimfiles" rel="nofollow"> akita</a> или же <a rel="nofollow" href="https://github.com/scrooloose/vimfiles">scrooloose</a> можно превратить VIM в IDE с автодоплненим, быстрым переходом к файлам, сниппетами и т.д. VIM -  <a href="http://vimdoc.sourceforge.net/htmldoc/uganda.html#license">свободнораспространяемое</a>, кросплатформенное ПО. До этого я опробовал rubymine, gedit и sublime text 2 и всё таки пришел к VIM.</p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/%d0%b1%d0%be%d0%bb%d0%b5%d0%b5-%d0%bf%d0%bb%d0%be%d1%82%d0%bd%d0%be%d0%b5-%d0%b7%d0%bd%d0%b0%d0%ba%d0%be%d0%bc%d1%81%d1%82%d0%b2%d0%be-%d1%81-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Чиним регулирование яркости в Ubuntu</title>
		<link>http://lugovoy.net/post/%d1%87%d0%b8%d0%bd%d0%b8%d0%bc-%d1%80%d0%b5%d0%b3%d1%83%d0%bb%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%8f%d1%80%d0%ba%d0%be%d1%81%d1%82%d0%b8-%d0%b2-ubuntu/</link>
		<comments>http://lugovoy.net/post/%d1%87%d0%b8%d0%bd%d0%b8%d0%bc-%d1%80%d0%b5%d0%b3%d1%83%d0%bb%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%8f%d1%80%d0%ba%d0%be%d1%81%d1%82%d0%b8-%d0%b2-ubuntu/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 18:01:44 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Brightness Control]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=392</guid>
		<description><![CDATA[После обновления с Ubuntu 11.04 к версии 11.10 перестала регулироваться яркость, пошарив в инете, я нашел статьи по добвалению опции в файл /etc/defaul/grub, но это мне не помогло, решение удалось [...]]]></description>
			<content:encoded><![CDATA[<p>После обновления с <strong>Ubuntu</strong> 11.04 к версии <strong>11.10 перестала регулироваться яркость</strong>, пошарив в инете, я нашел статьи по добвалению опции в файл /etc/defaul/grub, но это мне не помогло, решение удалось найти на официальном форуме Ubuntu, итак, решение для карт Nvidia</p>
<p>Редактируем конфигурационный файл X.org :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">  <span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>X11<span style="color: #000000; font-weight: bold;">/</span>xorg.conf</pre></div></div>

<p>Следующим образом:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Section <span style="color: #ff0000;">&quot;Device&quot;</span>
  Identifier <span style="color: #ff0000;">&quot;nvidia&quot;</span>
  Driver <span style="color: #ff0000;">&quot;nvidia&quot;</span>
  Option <span style="color: #ff0000;">&quot;NoLogo&quot;</span> <span style="color: #ff0000;">&quot;True&quot;</span> 
  Option <span style="color: #ff0000;">&quot;RegistryDwords&quot;</span> <span style="color: #ff0000;">&quot;EnableBrightnessControl=1&quot;</span> 
EndSection</pre></div></div>

<p>После перезагрузки яркость должна регулироваться</p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/%d1%87%d0%b8%d0%bd%d0%b8%d0%bc-%d1%80%d0%b5%d0%b3%d1%83%d0%bb%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%8f%d1%80%d0%ba%d0%be%d1%81%d1%82%d0%b8-%d0%b2-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Установка Ruby on Rails в Ubuntu</title>
		<link>http://lugovoy.net/post/ustanovka-ruby-on-rails-v-ubuntu/</link>
		<comments>http://lugovoy.net/post/ustanovka-ruby-on-rails-v-ubuntu/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 12:44:02 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[RVM]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=337</guid>
		<description><![CDATA[С недавних пор мне приходится заниматься разработкой на рельсах, и, хотя я ещё очень &#171;зелёный&#187;, но рельсы ставить уже научился. Будем ставить Ruby при помощи RMV (Ruby Version Manager). Для [...]]]></description>
			<content:encoded><![CDATA[<p>С недавних пор мне приходится заниматься разработкой на рельсах, и, хотя я ещё очень &#171;зелёный&#187;, но рельсы ставить уже научился.</p>
<p>Будем ставить Ruby при помощи RMV (Ruby Version Manager). Для тех, кто не в теме, о RVM можно почитать на их официальном сайте. Для этого идём на сайт google.com, тыцкаем в поле ввода, пишем туда &#171;RVM&#187; и переходим по первой же странице в выдаче.</p>
<p>Ладно, шутки в сторону, приступим.<span id="more-337"></span></p>
<p>1. Если в системе присутствуют уже установленные пакеты ruby, то перед установкой RVM удаляем их, также рекомендую обновить систему. Для установки RVM нам понядобяться git и curl, установим их:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #c20cb9; font-weight: bold;">git</span> curl</pre></div></div>

<p>2 Далее устанавливем сам RVM</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~ <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">bash</span> <span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>curl <span style="color: #660033;">-s</span> https:<span style="color: #000000; font-weight: bold;">//</span>rvm.beginrescueend.com<span style="color: #000000; font-weight: bold;">/</span>install<span style="color: #000000; font-weight: bold;">/</span>rvm<span style="color: #7a0874; font-weight: bold;">&#41;</span>;</pre></div></div>

<p>и добавляем необходимые переменные окружения:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'[[ -s &quot;$HOME/.rvm/scripts/rvm&quot; ]] &amp;&amp; source &quot;$HOME/.rvm/scripts/rvm&quot;'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bashrc;</pre></div></div>

<p>3. Мы почти готовы к установке Ruby, добавим необходимые пакеты, чтобы всё у нас собралось без проблем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential <span style="color: #c20cb9; font-weight: bold;">bison</span> openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-<span style="color: #000000;">0</span> libsqlite3-dev sqlite3 libxml2-dev libxslt-dev <span style="color: #c20cb9; font-weight: bold;">autoconf</span>;</pre></div></div>

<p>4. Всё готово, можно поставить Ruby, используя RVM, будем ставить версию 1.9.2 :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rvm <span style="color: #c20cb9; font-weight: bold;">install</span> 1.9.2</pre></div></div>

<p><em>для установки какой-либо другой версии, просто меняем номер версии, например, для 1.8.7:</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rvm <span style="color: #c20cb9; font-weight: bold;">install</span> 1.8.7</pre></div></div>

<p><em>Если у вас установлено несколько версий, то необходимо &#171;сказать&#187; RVM какую использовать по умолчанию:</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rvm <span style="color: #660033;">--default</span> use 1.9.2</pre></div></div>

<p>5. RVM позволяет создавать и использовать разные наборы джемов (gem), что довольно удобно при разработке, когда необходимо на одной мшине держать проэкты, работающие под разными версиями ruby и под разными наборами джемов.<br />
Создадим набор джемов с именем myset :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rvm gemset create myset</pre></div></div>

<p>и &#171;скажем&#187;, что мы будем использовать набор myset:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rvm gemset use myset</pre></div></div>

<p>Для просмотра списка созданных джемсетов набираем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rvm gemset list</pre></div></div>

<p>Для просмотра текущего джемсета:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rvm gemset name</pre></div></div>

<p>6. Вот и всё, можем поставить рельсы:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gem <span style="color: #c20cb9; font-weight: bold;">install</span> rails</pre></div></div>

<p>для определенной версии, укажем её:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gem <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #660033;">-v</span>=3.0.1 rails</pre></div></div>

<p>7. Ну и, конечно же, проверим, что всё работает:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>railsprojects <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>railsprojects</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rails new test-project
<span style="color: #7a0874; font-weight: bold;">cd</span> test-project</pre></div></div>

<p>Запустим сервер WebRick:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rails server</pre></div></div>

<p>Отрываем браузер, переходим по адресу http://localhost:3000</p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/ustanovka-ruby-on-rails-v-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка xdebug в Ubuntu для NetBeans</title>
		<link>http://lugovoy.net/post/nastrojka-xdebug-v-ubuntu-dlya-netbeans/</link>
		<comments>http://lugovoy.net/post/nastrojka-xdebug-v-ubuntu-dlya-netbeans/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 11:45:24 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[xdebug]]></category>
		<category><![CDATA[отладка]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=315</guid>
		<description><![CDATA[Для тех, кто любит отлаживать php код дебаггером, выкладывают интсрукцию, как завести x-debug для php в среде Netbeans под операционной системой Ubuntu Надеюсь, что вы уже установили Ubuntu и NetBeans. [...]]]></description>
			<content:encoded><![CDATA[<p>Для тех, кто любит отлаживать <strong>php</strong> код <strong>дебаггером</strong>, выкладывают интсрукцию, как завести <strong>x-debug</strong> для php в среде <strong>Netbeans</strong> под операционной системой <strong>Ubuntu</strong></p>
<p>Надеюсь, что вы уже установили Ubuntu и NetBeans. Для начала установим x-debug :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php5-xdebug</pre></div></div>

<p>Далее редактируем конфигурационный файл php.ini (/etc/php5/apache2/php.ini), добавив туда соответсвующие строки :</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>debug<span style="">&#93;</span></span>
xdebug.remote_enable<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">1</span>
xdebug.remote_handler<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">dbgp</span>
xdebug.remote_mode<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">req</span>
xdebug.remote_host<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">127.0.0.1</span>
xdebug.remote_port<span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">9000</span></pre></div></div>

<p><span id="more-315"></span><br />
<em>для более детальной настройки можно посмотреть опции на сайте xdebug<br />
</em></p>
<p>и перезапускаем apache :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre></div></div>

<p>после этого получаем в выводе phpinfo() что-то вроде:</p>
<p><a href="http://lugovoy.net/wp-content/uploads/2011/09/Untitled.jpg"><img class="alignleft size-full wp-image-329" title="Untitled" src="http://lugovoy.net/wp-content/uploads/2011/09/Untitled.jpg" alt="" width="545" height="147" /></a></p>
<p>Всё, xdebug настроен. Теперь можно &#171;сходить&#187; в <em>Propertes &#8212; Run configuration</em> проэкта в <strong>NetBeans</strong> и настроить дебаг, а после этого ставить точки прерывания, вотчи и другие приятные вещи отлдачика.</p>
<p>Также можно выставить браузер для отладки, для этого &#171;идём&#187; в <em>Tools &#8212; Options &#8212; General</em> .</p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/nastrojka-xdebug-v-ubuntu-dlya-netbeans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка оформления NetBeans в Ubuntu</title>
		<link>http://lugovoy.net/post/nastrojka-oformleniya-netbeans-v-ubuntu/</link>
		<comments>http://lugovoy.net/post/nastrojka-oformleniya-netbeans-v-ubuntu/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 18:15:06 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=307</guid>
		<description><![CDATA[Речь в данном посте пойдёт о том, как превратить такой NetBeans: В такой NetBeans: Для этого дописываем в netbeans_default_options конфигурационного файла netbeans.conf следующие опции: --laf javax.swing.plaf.metal.MetalLookAndFeel -J-Dswing.aatext=true -J-Dswing.metalTheme=ocean Т.е. меняем [...]]]></description>
			<content:encoded><![CDATA[<p>Речь в данном посте пойдёт о том, как превратить такой NetBeans:</p>
<p><a href="http://lugovoy.net/wp-content/uploads/2011/09/Screenshot-sugar-NetBeans-IDE-7.0.1-1.png"><img title="Screenshot-sugar - NetBeans IDE 7.0.1-1" src="http://lugovoy.net/wp-content/uploads/2011/09/Screenshot-sugar-NetBeans-IDE-7.0.1-1.png" alt="" width="695" height="459" /></a></p>
<p>В такой NetBeans:</p>
<p><a href="http://lugovoy.net/wp-content/uploads/2011/09/Screenshot-sugar-NetBeans-IDE-7.0.1.png"><img class="alignleft size-full wp-image-309" title="Screenshot-sugar - NetBeans IDE 7.0.1" src="http://lugovoy.net/wp-content/uploads/2011/09/Screenshot-sugar-NetBeans-IDE-7.0.1.png" alt="" width="695" height="459" /></a></p>
<p>Для этого дописываем в netbeans_default_options конфигурационного файла netbeans.conf следующие опции:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">--laf</span> javax.swing.plaf.metal.MetalLookAndFeel -J-Dswing.aatext=<span style="color: #c20cb9; font-weight: bold;">true</span>
 -J-Dswing.metalTheme=ocean</pre></div></div>

<p>Т.е. меняем оформление и включаем сглаживание. Кстати, если говорить о сглаживании, то некоторые Java приложения в linux не хватают такое сглаживание, как в системе, виной тому библиотека Swing. Надеюсь, когда-нибудь этот баг пофиксят. Если нужно такое сглаживание, как в системе, то лучшей альтернативой NetBeans будет Eclipse</p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/nastrojka-oformleniya-netbeans-v-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка соединения интернет Kyivstar L2TP в Debian или Ubuntu</title>
		<link>http://lugovoy.net/post/nastrojka-soedineniya-internet-kyivstar-l2tp-v-debian-ili-ubuntu/</link>
		<comments>http://lugovoy.net/post/nastrojka-soedineniya-internet-kyivstar-l2tp-v-debian-ili-ubuntu/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 14:28:05 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Kyivstar]]></category>
		<category><![CDATA[L2TP]]></category>
		<category><![CDATA[setting up]]></category>
		<category><![CDATA[Tuning]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[XL2TP]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=213</guid>
		<description><![CDATA[Речь пойдёт о поднятии интернет-соединения L2TP в Debian или Ubuntu, все настройки актуальны для провайдера Kyivstar кабель в городе Харьков. Для пользователей, которые любят графический интерфейс, очень рекомендую пакет VPNPPTP , [...]]]></description>
			<content:encoded><![CDATA[<p>Речь пойдёт о поднятии интернет-соединения <strong>L2TP</strong> в<strong> Debian </strong>или<strong> Ubuntu</strong>, все настройки актуальны для провайдера <strong>Kyivstar</strong> кабель в городе Харьков.</p>
<p>Для пользователей, которые любят графический интерфейс, очень рекомендую пакет <a rel="nofollow" href="http://code.google.com/p/vpnpptp/">VPNPPTP</a> , на ноутбуке под Ubuntu 10.10 у меня всё завелось, сам процесс поднятия соединения с графики интуитивно понятен и я не стану описывать его.</p>
<p>Речь пойдёт о настройке соединения в системе Debian Lenny с последующей раздачей интернета в локальную сеть. Подразумевается, что пользователь знаком с основами Linux, описываю настройку пошагово.<span id="more-213"></span></p>
<p>1.  Для начала необходимо установить пакет <strong>ppp</strong> (<em>Point to point protocol</em>). Этот пакет присутствует на установочном диске Debian и качать из внешних источнико его не нужно, поэтому вставляем диск в привод и пишем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ppp</pre></div></div>

<p>2. Теперь нам понадобится пакет <strong>xl2tpd</strong>, который можно скачать <a rel="nofollow" href="http://packages.debian.org/lenny/xl2tpd"></a><a rel="nofollow" href="http://packages.debian.org/lenny/xl2tpd">с официального сайта debian</a>.</p>
<p>Устанавливаем скачанный пакет:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">dpkg</span> -i xl2tpd_1.2.0+dfsg-<span style="color: #000000;">1</span>_i386.deb</pre></div></div>

<p>Если у Вас в системе уже есть существующее подключение к интернету, то все предыдущие действия шага 1, 2 делать не нужно, просто пишем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> xl2tpd</pre></div></div>

<p>3. Теперь настраиваем непосредственно само подключение, для начала отредактируем  <strong>/etc/xl2tpd/xl2tpd.conf</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>global<span style="color: #7a0874; font-weight: bold;">&#93;</span>
access control = <span style="color: #c20cb9; font-weight: bold;">yes</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>lac kyivstar<span style="color: #7a0874; font-weight: bold;">&#93;</span>
lns = tp.beeline.ua
redial = <span style="color: #c20cb9; font-weight: bold;">yes</span>
redial timeout = <span style="color: #000000;">1</span>
require chap = <span style="color: #c20cb9; font-weight: bold;">yes</span>
require authentication = no
name = ВАШ_НОМЕР_ДОГОВОРА
ppp debug = <span style="color: #c20cb9; font-weight: bold;">yes</span>
pppoptfile = <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ppp<span style="color: #000000; font-weight: bold;">/</span>options.xl2tpd
require pap = no
autodial = <span style="color: #c20cb9; font-weight: bold;">yes</span></pre></div></div>

<p>4. Редактируем <strong>/etc/ppp/options.xl2tpd</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">unit <span style="color: #000000;">0</span>
name ВАШ_НОМЕР_ДОГОВОРА
connect <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">true</span>
mru <span style="color: #000000;">1460</span>
mtu <span style="color: #000000;">1460</span>
persist
nodeflate
nobsdcomp
nopcomp
noaccomp
noauth
defaultroute
replacedefaultroute</pre></div></div>

<p>5. Теперь необходимо отредактировать <strong>/etc/ppp/chap-secrets</strong> , вписав туда Ваши номер договра и пароль для доступа к интернет:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Secrets for authentication using CHAP</span>
<span style="color: #666666; font-style: italic;"># client        server      secret                  IP addresses</span>
НОМЕР_ДОГОВОРА      <span style="color: #000000; font-weight: bold;">*</span>       ПАРОЛЬ</pre></div></div>

<p>6. Всё готово к использованию, перезапускаем xl2tpd:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>xl2tpd restart</pre></div></div>

<p>И проверям, произошло ли подключение к интернету:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ifconfig</span></pre></div></div>

<p>Должен был появиться интерфейс <strong>ppp0</strong> и в выводе получаем что-то вроде этого:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ppp0      Link encap:Point-to-Point Protocol
          inet addr:xxx.xxx.xxx.xxx  P-t-P:xxx.xxx.xxx.xxx
          Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST
          MTU:<span style="color: #000000;">1460</span>  Metric:<span style="color: #000000;">1</span>
          RX packets:<span style="color: #000000;">2824</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> frame:<span style="color: #000000;">0</span>
          TX packets:<span style="color: #000000;">4071</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> carrier:<span style="color: #000000;">0</span>
          collisions:<span style="color: #000000;">0</span> txqueuelen:<span style="color: #000000;">3</span>
          RX bytes:<span style="color: #000000;">428009</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">417.9</span> KiB<span style="color: #7a0874; font-weight: bold;">&#41;</span>  TX bytes:<span style="color: #000000;">1582287</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1.5</span> MiB<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>Теперь есть соединение с интернет, все работает, но когда я раздал интернет в локальную сеть машинам, то половина сайтов не открывалась, а https сайты жестоко лагали, благо, есть умные люди и на форуме OpenNet я нашел решение, которое исправило ситуацию, итак, чтобы правильно раздать интернет L2TP в локальную сеть делаем следующее:</p>
<p>7. Дописываем в конец файла <strong>/etc/network/interfaces</strong> правила iptables, которые будут срабатывать при поднятии интерфейсов:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">up iptables <span style="color: #660033;">-t</span> nat <span style="color: #660033;">-A</span> POSTROUTING <span style="color: #660033;">-o</span> ppp0 <span style="color: #660033;">-j</span> MASQUERADE
up iptables <span style="color: #660033;">-I</span> FORWARD <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">-m</span> tcp <span style="color: #660033;">--tcp-flags</span> SYN,RST SYN <span style="color: #660033;">-j</span> TCPMSS <span style="color: #660033;">--clamp-mss-to-pmtu</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/nastrojka-soedineniya-internet-kyivstar-l2tp-v-debian-ili-ubuntu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Сессии в jQuery</title>
		<link>http://lugovoy.net/post/sessii-v-jquery/</link>
		<comments>http://lugovoy.net/post/sessii-v-jquery/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 23:53:59 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=196</guid>
		<description><![CDATA[Иногда в javascript требуется хранить состояния определенных элементов при серфинге по сайту.  К примеру &#8212; это могут быть какие-либо флаги, либо же состояния слоя (показывать\скрыть).  Т.е. фактически нужна поддержка сессий [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда в<strong> javascript</strong> требуется хранить состояния определенных элементов при серфинге по сайту.  К примеру &#8212; это могут быть какие-либо флаги, либо же состояния слоя (показывать\скрыть).  Т.е. фактически нужна поддержка <strong>сессий</strong> в <strong>javascript</strong>. Для библиотеки jQuery существует довольно таки неплохой плагин, и называется он<strong> jQuery Session. </strong>Принцип работы плагина достаточно прост. <span id="more-196"></span>Для хранения состояний пользовательксих переменных плагин использует свойство <strong>window.name</strong>, соответственно, нетрудно догадаться, что состояние переменных не сохраняется при переходе в новое окно &#8212; это можно отнести к минусам плагина. Вопрос безопасности решен меньше, чем частично, так что лучше не хранить серьезные данные, используя <strong>jquery.session.</strong></p>
<p>Работа с плагином достаточно проста:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//Пишем в сессию</span>
$.<span style="color: #660066;">session</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;username&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Jonh Doe&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//Читаем из сессии</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">session</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;username&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Плагин можно забрать <a href="http://lugovoy.net/wp-content/themes/scruffy/js/jquery.session.js" target="_blank">тут</a></p>
<p><strong>Выводы: </strong>плагин достаточно просто позволяет хранить пользовательские данные javascript при серфинге сайта, однако не стоит использовать его для хранения важных данных.  Если необходима секьюрность, то лучше забирать данные из сессий php используя Ajax.</p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/sessii-v-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Простейший pppoe интернет шлюз на Debian/GNU Linux</title>
		<link>http://lugovoy.net/post/prostejshij-pppoe-internet-shlyuz-na-debiangnu-linux/</link>
		<comments>http://lugovoy.net/post/prostejshij-pppoe-internet-shlyuz-na-debiangnu-linux/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 15:53:47 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Debian GNU/Linux]]></category>
		<category><![CDATA[Internet gateway]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=144</guid>
		<description><![CDATA[Для организации простейшего домашнего шлюза интернет на базе Debian понадобится 5 минут времени. Допустим, что у нас следующая конфигурация &#8212; наш сервер(шлюз) имеет две сетевые карты eth0, eth1. eth0 смотрит [...]]]></description>
			<content:encoded><![CDATA[<p>Для организации простейшего домашнего шлюза интернет на базе Debian понадобится 5 минут времени.</p>
<p>Допустим, что у нас следующая конфигурация &#8212; наш сервер(шлюз) имеет две сетевые карты eth0, eth1. eth0 смотрит в интернет и получает все настройки по dhcp, а eth1 смотрит в локальную сеть. Задача &#8212; поднять интернет на нашем шлюзе и раздать его в локальную сеть.</p>
<p><span id="more-144"></span>Для начала настроим сетевые интерфейсы:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Internet interface</span>
auto eth0
iface eth0 inet dhcp
&nbsp;
<span style="color: #666666; font-style: italic;">#Lan interface</span>
auto eth1
iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0</pre></div></div>

<p>Интернет будем поднимать с помощью пакета pppoeconf.</p>
<p>Ставим pppoeconf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> pppoeconf</pre></div></div>

<p>Начнётся процесс поиска интерфейсов, определения интерфейсов для подключения pppoe, ввод логина и пароля. Всё происходит в режиме диалоговых окон.</p>
<p>После того, как вписаны логин и пароль для доступа к интернет, выведется диалоговое окно с вопросом, стоит ли запускать интернет-соединение при старте системы.</p>
<p>Если всё прошло успешно,  можно поднимать\останавливать интернет-соденинение командами:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pon dsl-provider
&nbsp;
poff dsl-provider</pre></div></div>

<p>Всё хорошо, интернет &#171;поднять&#187; получилось.</p>
<p>Можно даже &#171;пингануть яшу&#187;, чтобы ему веселее жилось =)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ping</span> <span style="color: #660033;">-c</span> <span style="color: #000000;">1</span> ya.ru</pre></div></div>

<p>Теперь нужно раздать интернет в локальную сеть. В интернете масса уроков и примеров по настройке iptables, настройке squid для раздачи инета в локальную сеть. Но у нас то шлюз простейший, поэтому ставим пакет ipmasq</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ipmasq</pre></div></div>

<p>Указываем ip-адрес нашего шлюза (192.168.1.1) на машинах локальной сети.<br />
Вот и всё, дело сделано <img src='http://lugovoy.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/prostejshij-pppoe-internet-shlyuz-na-debiangnu-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Привязка событий в jQuery на содержимое, загруженное Ajax</title>
		<link>http://lugovoy.net/post/privyazka-sobytij-v-jquery-na-soderzhimoe-zagruzhennoe-ajax/</link>
		<comments>http://lugovoy.net/post/privyazka-sobytij-v-jquery-na-soderzhimoe-zagruzhennoe-ajax/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 14:49:54 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Event binding]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=145</guid>
		<description><![CDATA[Недавно пришлось поработать на jQuery c Ajax. После подгрузки содержимого методом load() в какой-нибудь слой, не срабатывают события для подгруженного содержимого.  Проблема была в том, что я определял события в [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно пришлось поработать на <strong>jQuery</strong> c <strong>Ajax</strong>. После подгрузки содержимого методом <strong>load()</strong> в какой-нибудь слой, не срабатывают события для подгруженного содержимого.  Проблема была в том, что я определял события в $(document).ready() и, собственно, контента, на который я вешал event-ы, ещё &#171;не было в природе, как такогово&#187;. Лечится эта беда довольно просто.<span id="more-145"></span> Нужно &#171;поймать&#187; событие завершения асинхронной загрузки контента и тогда уже определять свои event-ы. Поскольку используется<strong> jQuery</strong>, &#171;ловить&#187; руками ничего не прийдется,  всё намного проще. Если заглянуть в доку по<strong> jQuery</strong>, а, именно, по интересующему методу <strong>.load()</strong>, то можно увидеть следующее:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span>
  url<span style="color: #339933;">,</span>
  <span style="color: #009900;">&#91;</span> data <span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
  <span style="color: #009900;">&#91;</span> complete<span style="color: #009900;">&#40;</span>responseText<span style="color: #339933;">,</span> textStatus<span style="color: #339933;">,</span> XMLHttpRequest<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>И описание:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">url <span style="color: #339933;">-</span> A string containing the URL to which the request <span style="color: #000066; font-weight: bold;">is</span> sent.
&nbsp;
<span style="color: #660066;">data</span> <span style="color: #339933;">-</span> A map or string that <span style="color: #000066; font-weight: bold;">is</span> sent to the server <span style="color: #000066; font-weight: bold;">with</span>
the request.
&nbsp;
<span style="color: #660066;">complete</span><span style="color: #009900;">&#40;</span>responseText<span style="color: #339933;">,</span> textStatus<span style="color: #339933;">,</span> XMLHttpRequest<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span>
A callback <span style="color: #003366; font-weight: bold;">function</span> that <span style="color: #000066; font-weight: bold;">is</span> executed when the request completes.</pre></div></div>

<p>Нас интересует callback, который вызывается после подгрузки контента. Допустим, у нас есть слой c идентификатором <span style="color: #008000;">my_div</span>, в который мы скриптом ajax_load.php подгрузим слой с идентификатором <span style="color: #008000;">loaded_div</span>, и, на клик  <span style="color: #008000;">loaded_div</span> повесим <span style="color: #0000ff;">alert</span>(<span style="color: #993366;">&#171;Event binding works! jQuery rocks!&#187;</span>). :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#my_div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ajax_load.php&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>
  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#loaded_div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Event binding works! jQuery rocks!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Всё просто и легко. Вывод можно сделать следуюший &#8212; нет лучше источника, чем официальная дока по библиотеке <img src='http://lugovoy.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/privyazka-sobytij-v-jquery-na-soderzhimoe-zagruzhennoe-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Парсинг &#8212; это просто!</title>
		<link>http://lugovoy.net/post/parsing-eto-prosto/</link>
		<comments>http://lugovoy.net/post/parsing-eto-prosto/#comments</comments>
		<pubDate>Sat, 29 May 2010 18:55:46 +0000</pubDate>
		<dc:creator>Arthur</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[parser]]></category>

		<guid isPermaLink="false">http://lugovoy.net/?p=66</guid>
		<description><![CDATA[Довольно часто мне приходится парсить сайты, разнообразные rss фиды, xml файлы. Для парсинга html я обычно использовал curl + regexp. Когда-то надоедает делать одно и то же, в очередной раз [...]]]></description>
			<content:encoded><![CDATA[<p>Довольно часто мне приходится парсить сайты, разнообразные rss фиды, xml файлы. Для парсинга html я обычно использовал curl + regexp. Когда-то надоедает делать одно и то же, в очередной раз мне понадобился парсинг, причём, парсер должен был быть универсальным, т.е. можно было бы задавать много сайтов и тянуть оттуда инфу. Безусловно, под каждый сайт писать регулярные выражения(т.е. отдельный парсер) было бы глупо, а велосипед изобретать не хотелось, я сходил в Google, к моему удивлению, я нашел довольно неплохой  инструмент &#8212; <strong>Html Simple Dom Parser.<span id="more-66"></span><br />
</strong></p>
<p><strong>Коротко о возможностях и  требованиях:</strong></p>
<p><em>1. Требует PHP5<br />
2. Как понятно из названия, использует либу DOM<br />
3. Может не только тянуть, но и изменять html ноды (интересно, какое можно найти этому практическое применение).</em><br />
4. Для выборки используют селекторы, похожие на селекторы jQuery.<br />
5. Поддерживает невалидный html</p>
<p>С требованиями понятно, но, как говорится, проще один раз увидеть, чем сто раз услышать. Ниже пример работы с библиотекой &#8212; забираем с Яндекса ответ на запрос &#171;розовый слон&#187;.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;!--</span>?php
&nbsp;
<span style="color: #666666; font-style: italic;">//Подключаем библиотеку</span>
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'simple_html_dom.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$item_list</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Загржаем html в переменную</span>
<span style="color: #000088;">$buffer</span> <span style="color: #339933;">=</span> file_get_html<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://yandex.ua/yandsearch?text=%D1%80%D0%
BE%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9+%D1%81%D0%BB%D0%BE%D0%BD&amp;#038;lr=143&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//При помощи селектора выбираем необходимые ноды, заталкиваем в массив</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$buffer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'a[class=cs]'</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$anchor</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$item_list</span><span style="color: #339933;">,</span>
          <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$anchor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">plaintext</span><span style="color: #339933;">,</span> <span style="color: #000088;">$anchor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">href</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$anchor</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$buffer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$item_list</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&gt;</span></pre></div></div>

<p><strong>На выходе получаем:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Сеть турагентств <span style="color: #0000ff;">&quot;Розовый Слон&quot;</span> Туры из Ростова<span style="color: #339933;">,</span> туры<span style="color: #339933;">...</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.pinkelephant.ru/</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Розовый слон
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.pink-elephant.ru/</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Детские песенки «Розовый слон» <span style="color: #339933;">-</span> текст и слова песни<span style="color: #339933;">...</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.karaoke.ru/song/6867.htm</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Детский театр моды <span style="color: #0000ff;">&quot;Розовый Слон&quot;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//rozoviyslon.com.ua/</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> YouTube <span style="color: #339933;">-</span> детские песни Розовый слон
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.youtube.com/watch?v=Q5QET4IJLWo</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Клуб саморазвития <span style="color: #0000ff;">&quot;Розовый слон&quot;</span> <span style="color: #339933;">-</span> Главная страница
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.rozovyislon.kz/</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Розовый слон <span style="color: #339933;">-</span> Интернет<span style="color: #339933;">-</span>подарки<span style="color: #339933;">,</span> оригинальные подарки<span style="color: #339933;">...</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//slon.at.ua/</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> ПЕСНИ из КИНОФИЛЬМОВ<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; Боба и слон&quot;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//www.songkino.ru/songs/boba_slon.html</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Тахи Мие<span style="color: #339933;">.</span> Маша и Розовый слон
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//zhurnal.lib.ru/t/tahi_m/mashairozovijslon.shtml</span>
    <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">9</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
    <span style="color: #009900;">&#40;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Розовый слон — Осин Евгений — Караоке — красноЯРСК<span style="color: #339933;">.</span>info<span style="color: #339933;">...</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//karaoke.yarsk.info/osin-evgenij/rozovyj-slon/</span>
    <span style="color: #009900;">&#41;</span></pre></div></div>

<p>Важно не забывать вызывать <strong>clear()</strong> для нод, потому что память достаточно быстро исчерпывается.<br />
Саму библиотеку и более подробную информацию можно найти на <a href="http://simplehtmldom.sourceforge.net/">сайте проекта</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lugovoy.net/post/parsing-eto-prosto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

