<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>WebGuruz</title>
	
	<link>http://webguruz.ru</link>
	<description>web разработка, web-программирование, ubuntu linux, компьютеры, инернет, безопасность</description>
	<lastBuildDate>Thu, 23 Feb 2012 15:37:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Webguruz" /><feedburner:info uri="webguruz" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Автодополнение кода CodeIgniter в Netbeans IDE</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/SsjetgHMEFE/</link>
		<comments>http://webguruz.ru/news/%d0%b0%d0%b2%d1%82%d0%be%d0%b4%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%b4%d0%b0-codeigniter-%d0%b2-netbeans-ide/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 20:55:37 +0000</pubDate>
		<dc:creator>dimaz</dc:creator>
				<category><![CDATA[Новости IT]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[автодополнение]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=928</guid>
		<description><![CDATA[Netbeans хороший IDE, и почти всем устраивает (за исключением того, что под linux в редакторе сглаживание шрифтов не дотягивает до стандартных редакторов на gtk, например gedit, но это терпимо). Но при работе в CodeIgniter не нравилось то, что не работало автодополнение для моделей и библиотек. А так как в большинстве работаю в нем, то надо [...]]]></description>
			<content:encoded><![CDATA[<p>Netbeans хороший IDE, и почти всем устраивает (за исключением того, что под linux в редакторе сглаживание шрифтов не дотягивает до стандартных редакторов на gtk, например gedit, но это терпимо). Но при работе в CodeIgniter не нравилось то, что не работало автодополнение для моделей и библиотек. А так как в большинстве работаю в нем, то надо было что-то делать.<br />
<span id="more-928"></span><br />
Немного порыскав по инету нашел решение. Нужно создать файл со списком нужных нам библиотек и положить его в проект. Что-то вроде этого:<br />
<code><?php</p>
<p>/**<br />
* @property C_DB_active_record $db<br />
* @property C_DB_forge $dbforge<br />
* @property C_Benchmark $benchmark<br />
* @property C_Calendar $calendar<br />
* @property C_Cart $cart<br />
* @property C_Config $config<br />
* @property C_Controller $controller<br />
* @property C_Email $email<br />
* @property C_Encrypt $encrypt<br />
* @property C_Exceptions $exceptions<br />
* @property C_Form_validation $form_validation<br />
* @property C_Ftp $ftp<br />
* @property C_Hooks $hooks<br />
* @property C_Image_lib $image_lib<br />
* @property C_Input $input<br />
* @property C_Longuage $longuage<br />
* @property C_Loader $load<br />
* @property C_Log $log<br />
* @property C_Model $model<br />
* @property C_Output $output<br />
* @property C_Pagination $pagination<br />
* @property C_Parser $parser<br />
* @property C_Profiler $profiler<br />
* @property C_Router $router<br />
* @property C_Session $session<br />
* @property C_Sha1 $sha1<br />
* @property C_Table $table<br />
* @property C_Trackback $trackback<br />
* @property C_Typography $typography<br />
* @property C_Unit_test $unit_test<br />
* @property C_Upload $upload<br />
* @property C_URI $uri<br />
* @property C_User_agent $user_agent<br />
* @property C_Validation $validation<br />
* @property C_Xmlrpc $xmlrpc<br />
* @property C_Xmlrpcs $xmlrpcs<br />
* @property C_Zip $zip<br />
* @property C_Json $json<br />
* @property Image_Upload $image_upload<br />
* @property Long_Detect $long_detect<br />
*/</p>
<p>class Controller {}<br />
/**<br />
* @property C_DB_active_record $db<br />
*/<br />
class Model {}<br />
?></code></p>
<p>Можно удалить ненужные библиотеки из списка, чтобы зря не нагружать IDE. Также можно добавить свои модели:</p>
<p><code>* @property User_model $user_model</code></p>
<p>Список библиотек до <code>class Controller {}</code> будут работать только в контроллерах, до <code>class Model {}</code> &#8211; только в моделях.</p>
<p>Автодополнение подхватилось сразу на Netbeans 6.8. На других версиях не проверял, но думаю на остальных версиях тоже заведется.<!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/SsjetgHMEFE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/news/%d0%b0%d0%b2%d1%82%d0%be%d0%b4%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%b4%d0%b0-codeigniter-%d0%b2-netbeans-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://webguruz.ru/news/%d0%b0%d0%b2%d1%82%d0%be%d0%b4%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%b4%d0%b0-codeigniter-%d0%b2-netbeans-ide/</feedburner:origLink></item>
		<item>
		<title>HTML 5 Canvas – круговая диаграмма</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/PtjC0N58C7E/</link>
		<comments>http://webguruz.ru/web-developer/html-5-canvas-circle-diagramm/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 17:21:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[canvas диаграмма]]></category>
		<category><![CDATA[html 5 canvas]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=873</guid>
		<description><![CDATA[Думаю мало кому нравиться искать, скачивать тяжелые готовые js библиотеки для того чтобы нарисовать небольшую диаграмму&#8230; Вот и мне этот вариант не особо понравился. Так и родилась тема этого поста. Итак чтоб нарисовать вот такую диаграмму нам потребуется совсем немного знаний и пол часа свободного времени. Использовать будем элемент html 5 canvas и библиотеку которая [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://webguruz.ru/wp-content/uploads/Screenshot-at-2011-12-16-231837.png" alt="" title="canvas_image_diagramm" width="211" height="206" class="alignleft size-full wp-image-881" /><br />
Думаю мало кому нравиться искать, скачивать тяжелые готовые js библиотеки для того чтобы нарисовать небольшую диаграмму&#8230; Вот и мне этот вариант не особо понравился. Так и родилась тема этого поста.</p>
<p>Итак чтоб нарисовать вот такую диаграмму нам потребуется совсем немного знаний и пол часа свободного времени. Использовать будем элемент html 5 canvas и библиотеку которая поможет нашему скрипту работать в недобраузерах IE &#8211; <a href="http://explorercanvas.googlecode.com/svn/trunk/excanvas.js">http://explorercanvas.googlecode.com/svn/trunk/excanvas.js</a></p>
<p>Разместим на странице элемент canvas.</p>
<pre class="brush: xml; title: ; notranslate">&lt;canvas  id=&quot;chart&quot; width=&quot;200&quot; height=&quot;200&quot;&gt;&lt;/canvas&gt;</pre>
<p>Cкрипт который нарисует в данном элементе диаграмму тоже очень простой<span id="more-873"></span></p>
<pre class="brush: jscript; title: ; notranslate">var drawingCanvas = document.getElementById('chart');
if(drawingCanvas &amp;&amp; drawingCanvas.getContext) {
	var context = drawingCanvas.getContext('2d');
	// рисуем окружность
	context.fillStyle = &quot;#ddd&quot;;
	context.strokeStyle = &quot;#ddd&quot;;
	context.beginPath();
	context.arc(100,100,86,0,Math.PI*2,true);
	context.closePath();
	context.fill();

	// рисуем сектор окружности num%
	context.fillStyle = &quot;#ffb549&quot;;
	context.beginPath();
	context.moveTo(100, 100);
	//координаты старта определяем так чтоб закрашенная область всегда была снизу
	var start=(Math.PI/180)*90-((Math.PI/180)*num*360/100)/2
	context.arc(100,100,86,start,start+(Math.PI/180)*num*360/100,false);
	context.closePath();
	context.fill();

	// закрашиваем внутреннюю окружность меньшего радиуса
	context.fillStyle = &quot;#F8F8F8&quot;;
	context.beginPath();
	context.arc(100,100,54,0,Math.PI*2,true);
	context.closePath();
	context.fill();

	// пишем текст
	context.fillStyle = &quot;#000000&quot;;
	context.font = &quot;20pt Tahoma&quot;;
	context.textAlign = &quot;center&quot;;
	context.textBaseline = 'middle';
	var x=drawingCanvas.width/2;
	var y=drawingCanvas.height/2;
	context.fillText(num+&quot;%&quot;, x,y);
}
</pre>
<p>Посмотреть рабочий пример можно <a href="/canvas_example.html">тут</a>.</p>
<p>Узнать больше о работе с HTML 5 canvas можно узнать нажав на ссылку <a href="http://www.html5canvastutorials.com/">http://www.html5canvastutorials.com/</a><!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/PtjC0N58C7E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/web-developer/html-5-canvas-circle-diagramm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://webguruz.ru/web-developer/html-5-canvas-circle-diagramm/</feedburner:origLink></item>
		<item>
		<title>NTFS – восстановление данных Ubuntu</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/l9Tog3eXHbo/</link>
		<comments>http://webguruz.ru/ubuntu/recovery_data/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 10:19:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ntfs ubuntu]]></category>
		<category><![CDATA[scrounge-ntfs]]></category>
		<category><![CDATA[восстановление данных ubuntu]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=864</guid>
		<description><![CDATA[Cам не пойму каким образом, но упал раздел MFT на внешнем диске, полагаю постарался checkdisk. Итак что делать в таких случаях. Начинать жизнь с чистого винта или есть способы восстановить данные? Попробовал восстановить данные из под windows, но после установки двух-трех рекомендуемых в таких случаях и всеми любимых программ (не буду рекламировать), передумал. Ни одна [...]]]></description>
			<content:encoded><![CDATA[<p>Cам не пойму каким образом, но упал раздел MFT на внешнем диске, полагаю постарался checkdisk. Итак что делать в таких случаях. Начинать жизнь с чистого винта или есть способы восстановить данные?</p>
<p>Попробовал восстановить данные из под windows, но после установки двух-трех рекомендуемых в таких случаях и всеми любимых программ (не буду рекламировать), передумал. Ни одна из них просто не могла открыть диск, и никаких данных естественно восстановить не удалось бы.</p>
<p>Решил поискать софт для восстановления данных в Ubuntu. Нашелся testdisk который также не справился со своей задачей.</p>
<p>После еще некоторого времени поиска решил поставить scrounge-ntfs</p>
<p><code>sudo apt-get install scrounge-ntfs</code><span id="more-864"></span><br />
Просмотрел необходимую для рассмотрения информацию, количество секторов на диске</p>
<p><code>sudo scrounge-ntfs -l /dev/sdb</code><br />
Далее для восстановления указал директорию для восстановленных файлов, устройство, начальный и конечный сектора.</p>
<p><code>sudo scrounge-ntfs -o /recovery/ /dev/sdb 64 1253520002</code><br />
Из-за того что упал MFT раздел, восстановление прошло без него, просто куча файлов и пустых папок в одном месте<br />
тут помогла команда find. Удаляем пустые каталоги находясь в нужной директории</p>
<p><code>sudo find . -type d -empty -exec rmdir {} \;</code><br />
Ну и так далее, я удалил кучу файлов музыки и тд для того чтоб найти среди всего мусора то что действительно важно<!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/l9Tog3eXHbo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/ubuntu/recovery_data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://webguruz.ru/ubuntu/recovery_data/</feedburner:origLink></item>
		<item>
		<title>Загрузка страниц по мере прокрутки</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/jUqXfnIHqFU/</link>
		<comments>http://webguruz.ru/web-developer/%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%ba%d0%b0-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%bf%d0%be-%d0%bc%d0%b5%d1%80%d0%b5-%d0%bf%d1%80%d0%be%d0%ba%d1%80%d1%83%d1%82%d0%ba%d0%b8/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 19:06:13 +0000</pubDate>
		<dc:creator>dimaz</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[ajax загрузка]]></category>
		<category><![CDATA[javascript json_decode]]></category>
		<category><![CDATA[scrollstart]]></category>
		<category><![CDATA[scrollstop]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=835</guid>
		<description><![CDATA[Видимо постраничная загрузка выходит из моды и все хотят загрузку по мере прокрутки страницы. Ну что ж, приступим =) Допустим уже есть функция php, которая выдает нам данные постранично. function get_objects($page=0) Но одно но, помимо объектов нам нужно возвращать и номер след. страницы. Поэтому будем возвращать данные в json. echo json_encode(array("objs"=&#62;тут_все_объекты, "next_page"=&#62;след_страница)) Нужно ее вызывать [...]]]></description>
			<content:encoded><![CDATA[<p>Видимо постраничная загрузка выходит из моды и все хотят загрузку по мере прокрутки страницы. Ну что ж, приступим =)</p>
<p>Допустим уже есть функция php, которая выдает нам данные постранично.<br />
<code>function get_objects($page=0)</code><br />
Но одно но, помимо объектов нам нужно возвращать и номер след. страницы.<br />
Поэтому будем возвращать данные в json.<br />
<code>echo json_encode(array("objs"=&gt;тут_все_объекты, "next_page"=&gt;след_страница))</code><br />
Нужно ее вызывать аяксом. Воспользуемся функцией ajax в jquery.<br />
<code>function ajax_get_objects(page){<br />
//url по котрому доступен get_objects и передаем ему page<br />
var url = "/?get_objects/"+page;<br />
$.ajax({<br />
type: "POST",<br />
url: url,<br />
dataType: "json",<br />
success: function (data){<br />
//тут выводим сами данные как вам нравится. Допустим все данные в элемент c id = "all_page"<br />
$("#all_page").html(data.objs);<br />
slide_func_next_page = data.next_page;<br />
slide_func_last_page = data.page;<br />
}})}</code><span id="more-835"></span><br />
Теперь эту ajax функцию мы и будем вызывать, как прокрутим страницу.<br />
Можно конечно воспользоваться в jquery событием scroll, но она работает во всех браузерах по разному.<br />
Поэтому воспользуемся переписанной функцией, которая отслеживает скролл страницы и создает новые события scrollstop и scrollstart.<br />
Взято <a href="http://james.padolsey.com/demos/scrollevents/" target="_blank">тут</a>.<code><br />
(function(){<br />
var special = jQuery.event.special,<br />
uid1 = 'D' + (+new Date()),<br />
uid2 = 'D' + (+new Date() + 1);</code></p>
<p><code> </code></p>
<p><code> special.scrollstart = {<br />
setup: function() {</code></p>
<p><code> </code></p>
<p><code> var timer,<br />
handler =  function(evt) {</code></p>
<p><code>var _self = this,<br />
_args = arguments;</code></p>
<p><code> </code></p>
<p><code>if (timer) {<br />
clearTimeout(timer);<br />
} else {<br />
evt.type = 'scrollstart';<br />
jQuery.event.handle.apply(_self, _args);<br />
}</code></p>
<p><code> </code></p>
<p><code>timer = setTimeout( function(){<br />
timer = null;<br />
}, special.scrollstop.latency);</code></p>
<p><code> </code></p>
<p><code>};</code></p>
<p><code> </code></p>
<p><code>jQuery(this).bind('scroll', handler).data(uid1, handler);</code></p>
<p><code> </code></p>
<p><code>},<br />
teardown: function(){<br />
jQuery(this).unbind( 'scroll', jQuery(this).data(uid1) );<br />
}<br />
};</code></p>
<p><code> </code></p>
<p><code>special.scrollstop = {<br />
latency: 300,<br />
setup: function() {</code></p>
<p><code> </code></p>
<p><code>var timer,<br />
handler = function(evt) {</code></p>
<p><code> </code></p>
<p><code>var _self = this,<br />
_args = arguments;</code></p>
<p><code> </code></p>
<p><code>if (timer) {<br />
clearTimeout(timer);<br />
}</code></p>
<p><code> </code></p>
<p><code>timer = setTimeout( function(){</code></p>
<p><code> </code></p>
<p><code>timer = null;<br />
evt.type = 'scrollstop';<br />
jQuery.event.handle.apply(_self, _args);</code></p>
<p><code> </code></p>
<p><code>}, special.scrollstop.latency);</code></p>
<p><code> </code></p>
<p><code>};</code></p>
<p><code> </code></p>
<p><code>jQuery(this).bind('scroll', handler).data(uid2, handler);</code></p>
<p><code> </code></p>
<p><code>},<br />
teardown: function() {<br />
jQuery(this).unbind( 'scroll', jQuery(this).data(uid2) );<br />
}<br />
};</code></p>
<p><code> </code></p>
<p><code>})();<br />
</code><br />
Дальше будем использовать новые события scrollstop и scrollstart.<br />
<code>jQuery(window).bind('scrollstop', function(){<br />
var scroll_top = $(document).scrollTop();//высота прокрученной области<br />
var page_height = $(document).height();//высота всей страницы<br />
var wind_height = $(window).height();//высота окна браузера<br />
//если непрокрученной области больше чем высота окна обраузера, то подгружаем след. объекты<br />
if((page_height - scroll_top) &lt; wind_height*2 &amp;&amp; slide_func_next_page == 1+slide_func_last_page){<br />
ajax_get_objects(slide_func_next_page);<br />
}<br />
});</code><br />
Тут дополнительно идет проверка след. страницы, если она больше на 1 предыдущей, то запрашиваем след. объекты. Можно эту проверку и не делать, тогда отпадет надобность отправлять функцией php номер след. страницы. Но в этом случае, запрос на след. объекты будет отсылаться постоянно когда мы прокрутим страницу, даже если данных уже нет.<br />
Ну вот и все =)<!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/jUqXfnIHqFU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/web-developer/%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%ba%d0%b0-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%bf%d0%be-%d0%bc%d0%b5%d1%80%d0%b5-%d0%bf%d1%80%d0%be%d0%ba%d1%80%d1%83%d1%82%d0%ba%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://webguruz.ru/web-developer/%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%ba%d0%b0-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%bf%d0%be-%d0%bc%d0%b5%d1%80%d0%b5-%d0%bf%d1%80%d0%be%d0%ba%d1%80%d1%83%d1%82%d0%ba%d0%b8/</feedburner:origLink></item>
		<item>
		<title>Генерация pdf из html</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/EtBljCCHjVM/</link>
		<comments>http://webguruz.ru/web-developer/html2pdf/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 12:20:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[html to pdf на php]]></category>
		<category><![CDATA[html2pdf]]></category>
		<category><![CDATA[генерация pdf отчетов]]></category>
		<category><![CDATA[генерирование pdf электронных билетов]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=825</guid>
		<description><![CDATA[Для чего это нужно? Ну например для генерации pdf отчетов в интернет магазине, или для выдачи электронных билетов на концерты. Вобщем то с помощью этой утилиты можно создать офлайн версию маленького сайта в формате pdf. Моя задача была связана с электронными билетами, поэтому поискал уже готовые решения для генерации pdf из html. Первое что я [...]]]></description>
			<content:encoded><![CDATA[<p>Для чего это нужно?<br />
Ну например для генерации pdf отчетов в интернет магазине, или для выдачи электронных билетов на концерты. Вобщем то с помощью этой утилиты можно создать офлайн версию маленького сайта в формате pdf.<br />
Моя задача была связана с электронными билетами, поэтому поискал уже готовые решения для генерации pdf из html. Первое что я нашел был модуль &laquo;HTML2PDF&raquo; &#8211; отличное название, следовательно и работать должно соответственно)<br />
Скачал (на оффициальном сайте <a href="http://html2pdf.fr">html2pdf</a>)<span id="more-825"></span><br />
Скопировал в папку с сайтом, посмотрел в папке examples готовые примеры. Очень понравился функционал, можно нарисовать все что захочешь, есть функции генерирующие barcode.<br />
Попробовал применить:</p>
<pre class="brush: php; title: ; notranslate">
$html2pdf = new HTML2PDF('L','A4','en', true, 'UTF-8', 0);
$html2pdf-&gt;pdf-&gt;SetDisplayMode('fullpage');
$html2pdf-&gt;writeHTML($content);
//$content - страница html из которой хотим получить pdf

$html2pdf-&gt;Output('billet.pdf');
</pre>
<p>Увидел вместо русских букв одни вопросики, начал разбираться в чем проблема, оказывается шрифт helvetica (он стоит по умолчанию) немного не допилен. Поменял в стилях html шрифт на freesans и все отлично заработало &#8211; красивые шрифты и картинки вставляются. Библиотека на хорошем уровне воспринимает стили.<br />
Потом были еще небольшие эксперименты со шрифтами, пробовал переделывать свои шрифты через онлайн сервис <a href="http://fpdf.fruit-lab.de/index.php?id=3">http://fpdf.fruit-lab.de</a>, ни к чему хорошему это не привело как ни старался.. межсимвольные интервалы сходили с ума, шрифты получались очень некрасивыми. А из-за того что нельзя коневртировать  в utf8 приходилось в cp1251, ну и соответственно баловаться в php с кодировками.</p>
<pre class="brush: php; title: ; notranslate">
$content=iconv(&quot;UTF-8&quot;,&quot;CP1251&quot;, $content);</pre>
<p>Вобщем так и остался на моем билетике шрифт freesans&#8230;<!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/EtBljCCHjVM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/web-developer/html2pdf/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://webguruz.ru/web-developer/html2pdf/</feedburner:origLink></item>
		<item>
		<title>Публикуем сообщение на стене в facebook</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/NZZ2XbFCGSM/</link>
		<comments>http://webguruz.ru/web-developer/%d0%bf%d1%83%d0%b1%d0%bb%d0%b8%d0%ba%d1%83%d0%b5%d0%bc-%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bd%d0%b0-%d1%81%d1%82%d0%b5%d0%bd%d0%b5-%d0%b2-facebook/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 21:41:37 +0000</pubDate>
		<dc:creator>dimaz</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[post to stream]]></category>
		<category><![CDATA[post to wall]]></category>
		<category><![CDATA[опубликовать на стену]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=803</guid>
		<description><![CDATA[Для отправки сообщений с сайта на стену в facebook можно использовать кнопку share. &#60;a onclick="return fbs_click()" rel="nofollow" href="http://www.facebook.com/share.php?u=[URL]" target="_blank"&#62;Share on Facebook&#60;/a&#62; &#60;script type="text/javascript"&#62; function fbs_click() {u='[URL]';t='';window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&#38;t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;} &#62;&#60;/script&#62; [URL] &#8211; путь на страницу, с которой будут собираться данные для сообщения. На этой странице в между тегами должны быть данные для fb: &#60;meta property="og:title" content="заголовок" /&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Для отправки сообщений с сайта на стену в facebook можно использовать кнопку share.<br />
<code><br />
&lt;a onclick="return fbs_click()" rel="nofollow" href="http://www.facebook.com/share.php?u=[URL]" target="_blank"&gt;Share on Facebook&lt;/a&gt;</p>
<p>&lt;script type="text/javascript"&gt;<br />
function fbs_click() {u='[URL]';t='';window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&amp;t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}<br />
&gt;&lt;/script&gt;</code><br />
[URL] &#8211; путь на страницу, с которой будут собираться данные для сообщения.<br />
На этой странице в между тегами  должны быть данные для fb:<br />
<code>&lt;meta property="og:title" content="заголовок" /&gt;<br />
&lt;meta property="og:description" content="описание" /&gt;<br />
&lt;meta property="og:image" content="изображение url" /&gt;<br />
&lt;meta property="og:audio" content="аудио url (только *.mp3)"<br />
&lt;meta property="og:video" content="видео url (только *.flv)" /&gt; /&gt;<br />
</code></p>
<p><span id="more-803"></span><br />
Еще для отправки на стену сообщений можно использовать FB.api. Сайт должен быть добавлен на facebook как приложение, после чего вы получаете appId и secret.</p>
<p>Дальше чтобы приложение могло оставлять сообщения на тене пользователя, нужно получить доступ. Для этого при регистрации пользователей на сайте через facebook нужно в атрибуте perms кнопки fb:login-button добавить publish_stream. Далее код, который отсылает сообщение пользователю на стену.<br />
<code><br />
include_once('facebook.php');<br />
$facebook = new Facebook(array(<br />
'appId'  =&gt; FB_APP_ID,<br />
'secret' =&gt; FB_SECRET,<br />
'cookie' =&gt; true,<br />
));<br />
$facebook-&gt;api("/".[id пользователя]."/feed", "post", array(<br />
"message"=&gt;"[сообщение]",<br />
"picture"=&gt;"[изображение url]"<br />
));<br />
</code><!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/NZZ2XbFCGSM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/web-developer/%d0%bf%d1%83%d0%b1%d0%bb%d0%b8%d0%ba%d1%83%d0%b5%d0%bc-%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bd%d0%b0-%d1%81%d1%82%d0%b5%d0%bd%d0%b5-%d0%b2-facebook/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://webguruz.ru/web-developer/%d0%bf%d1%83%d0%b1%d0%bb%d0%b8%d0%ba%d1%83%d0%b5%d0%bc-%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bd%d0%b0-%d1%81%d1%82%d0%b5%d0%bd%d0%b5-%d0%b2-facebook/</feedburner:origLink></item>
		<item>
		<title>Скрипт распознавания города по ip адресу</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/4wZv0DJL5nA/</link>
		<comments>http://webguruz.ru/web-developer/ip2city/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 11:36:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web-разработка]]></category>
		<category><![CDATA[ip2city]]></category>
		<category><![CDATA[ipgeobase]]></category>
		<category><![CDATA[город по ip]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=788</guid>
		<description><![CDATA[Очень давно не писали ничего, вроде накопилось у нас несколько интересных тем. Сегодня расскажу о сервисе позволяющем определять название города по ip пользователя зашедшего к вам. Сервис предоставляют http://ipgeobase.ru и помоему они отлично справляются. Писать самому функции для работы с сервисом очень не хотелось поэтому откопал где то этот код: ipgeo подключается он очень просто [...]]]></description>
			<content:encoded><![CDATA[<p>Очень давно не писали ничего, вроде накопилось у нас несколько интересных тем. Сегодня расскажу о сервисе позволяющем определять название города по ip пользователя зашедшего к вам. Сервис предоставляют http://ipgeobase.ru и помоему они отлично справляются.<br />
Писать самому функции для работы с сервисом очень не хотелось поэтому откопал где то этот код: <a href='http://webguruz.ru/wp-content/uploads/ipgeo.zip'>ipgeo</a><br />
подключается он очень просто
<pre class="brush: php; title: ; notranslate">if(empty($_COOKIE['city']) || $_COOKIE['city']==&quot;undefined&quot;) {
$IP= ($_SERVER['REMOTE_ADDR']);
if(!empty($IP)) {
  $ipList = new IPGeo($IP); //подключаем класс IPGeo
  $city= $ipList-&gt;ip($IP); // определяем город по ip
  $_COOKIE['city']=$city;
} else {
$city=$_COOKIE['city'];
}</pre>
<p> Если город еще не был определен то определяем и записываем его в куки, иначе просто смотрим какое название города уже лежит в куках. Вобщем определение города по ip пишется не более чем пять минут, остальное уже дело техники.<br />
Можно создать базу нужных городов на сайте и сверяться с ними по названию,  и например показывать товары только по городу который выбрал пользователь. Для этого и используется в большинстве случаев определение города по ip<!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/4wZv0DJL5nA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/web-developer/ip2city/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://webguruz.ru/web-developer/ip2city/</feedburner:origLink></item>
		<item>
		<title>Собираем jar пакет в JDeveloper</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/Jgpann9EfGw/</link>
		<comments>http://webguruz.ru/java/jdeveloper-java/%d1%81%d0%be%d0%b1%d0%b8%d1%80%d0%b0%d0%b5%d0%bc-jar-%d0%bf%d0%b0%d0%ba%d0%b5%d1%82-%d0%b2-jdeveloper/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 11:17:09 +0000</pubDate>
		<dc:creator>dimaz</dc:creator>
				<category><![CDATA[Jdeveloper]]></category>
		<category><![CDATA[jar пакет jdeveloper]]></category>
		<category><![CDATA[jDeveloper]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=752</guid>
		<description><![CDATA[В прошлых постах был описано создание конольного приложения и приложения с гуи, теперь опишу создания пакета jar в jdeveloper. Открываем в jdeveloper какой-нибудь проект. Правой кнопкой по проекту в Application Navigator выбираем New. Далее в открывшемся окне General &#8211; Deployment Profiles &#8211; JAR File и жмем OK. Вводим имя архива, затем появляется окно настройки архива. Тут нужно выбрать [...]]]></description>
			<content:encoded><![CDATA[<p>В прошлых постах был описано создание конольного приложения и приложения с гуи, теперь опишу создания пакета jar в jdeveloper. Открываем в jdeveloper какой-нибудь проект. Правой кнопкой по проекту в <strong>Application Navigator</strong> выбираем New. Далее в открывшемся окне <strong>General &#8211; Deployment Profiles &#8211; JAR File</strong> и жмем OK.</p>
<p><a href="http://webguruz.ru/wp-content/uploads/Screenshot-New-Gallery.png" target="_blank" rel="lightbox[752]" title="выбираем jar пакет"><img class="size-medium wp-image-756" title="выбираем jar пакет" src="http://webguruz.ru/wp-content/uploads/Screenshot-New-Gallery-300x204.png" alt="" width="300" height="204" /></a><br />
<span id="more-752"></span><br />
<a href="http://webguruz.ru/wp-content/uploads/Screenshot-New-Gallery.png" target="_blank"></a> Вводим имя архива, затем появляется окно настройки архива. Тут нужно выбрать main class.</p>
<p><a href="http://webguruz.ru/wp-content/uploads/Screenshot-Edit-JAR-Deployment-Profile-Properties.png" rel="lightbox[752]" title="настройка jar пакета"><img class="size-medium wp-image-755" title="настройка jar пакета" src="http://webguruz.ru/wp-content/uploads/Screenshot-Edit-JAR-Deployment-Profile-Properties-300x204.png" alt="" width="300" height="204" /></a></p>
<p><a href="http://webguruz.ru/wp-content/uploads/Screenshot-Edit-JAR-Deployment-Profile-Properties.png"></a>Выбираем наш основной класс, у меня это Application1.</p>
<p><a href="http://webguruz.ru/wp-content/uploads/Screenshot-Class-Browser.png" rel="lightbox[752]" title="main class для jar пакета"><img class="size-medium wp-image-754" title="main class для jar пакета" src="http://webguruz.ru/wp-content/uploads/Screenshot-Class-Browser-300x249.png" alt="" width="300" height="249" /></a></p>
<p><a href="http://webguruz.ru/wp-content/uploads/Screenshot-Class-Browser.png"></a>Далее чтоб собрать сам jar пакет нужно в контекстном меню проекта выбрать Deploy &#8211; &laquo;Имя нашего архива&raquo;.</p>
<p><a href="http://webguruz.ru/wp-content/uploads/Screenshot-Oracle-JDeveloper-11g-Release-1-Application2.jws-Project1.jpr_.png" rel="lightbox[752]" title="jdeveloper - создание jar пакета"><img class="size-medium wp-image-757" title="jdeveloper - создание jar пакета" src="http://webguruz.ru/wp-content/uploads/Screenshot-Oracle-JDeveloper-11g-Release-1-Application2.jws-Project1.jpr_-300x170.png" alt="" width="300" height="170" /></a></p>
<p><a href="http://webguruz.ru/wp-content/uploads/Screenshot-Oracle-JDeveloper-11g-Release-1-Application2.jws-Project1.jpr_.png"></a>В файлах проекта должен создаться jar пакет. Запустить приложение в *NIX можно командой <code>java -jar &lt;имя файла&gt;</code>.</p>
<p><a href="http://webguruz.ru/wp-content/uploads/screenshot13.png" rel="lightbox[752]" title="запуск jar пакета"><img class="size-medium wp-image-753" title="запуск jar пакета" src="http://webguruz.ru/wp-content/uploads/screenshot13-300x212.png" alt="" width="300" height="212" /></a><!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/Jgpann9EfGw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/java/jdeveloper-java/%d1%81%d0%be%d0%b1%d0%b8%d1%80%d0%b0%d0%b5%d0%bc-jar-%d0%bf%d0%b0%d0%ba%d0%b5%d1%82-%d0%b2-jdeveloper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://webguruz.ru/java/jdeveloper-java/%d1%81%d0%be%d0%b1%d0%b8%d1%80%d0%b0%d0%b5%d0%bc-jar-%d0%bf%d0%b0%d0%ba%d0%b5%d1%82-%d0%b2-jdeveloper/</feedburner:origLink></item>
		<item>
		<title>Desktop приложение на Jdeveloper</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/cHmMVpCUj6U/</link>
		<comments>http://webguruz.ru/java/java-desktop-application/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 11:43:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Jdeveloper]]></category>
		<category><![CDATA[desktop java приложения]]></category>
		<category><![CDATA[jDeveloper]]></category>
		<category><![CDATA[swing application]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=711</guid>
		<description><![CDATA[Продолжу цикл статей по изучению java и среды разработки jdeveloper. В предыдущей статье описывалось создание консольной программы не имеющей интерфейса. Сегодня расскажу о том как создать desktop приложение использующую библиотеку swing. Создаем новое приложение File -> New -> General -> Applications -> Generic applicationНазовем его exemple_swing и нажмем кнопку FinishТеперь создадим интерфейс с помощью библиотеки [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжу цикл статей по изучению java и среды разработки jdeveloper. В предыдущей статье описывалось создание консольной программы не имеющей интерфейса. Сегодня расскажу о том как создать desktop приложение использующую библиотеку swing.<br />
Создаем новое приложение <code><strong>File -> New -> General -> Applications -> Generic application</strong></code>Назовем его exemple_swing и нажмем кнопку <strong>Finish</strong><br/><br/><a href="http://webguruz.ru/wp-content/uploads/java_app.png" rel="lightbox[711]" title="java_app"><img src="http://webguruz.ru/wp-content/uploads/java_app-300x213.png" alt="java_application" title="java_app" width="300" height="213" class="size-medium wp-image-620" /></a><br/><br/><span id="more-711"></span>Теперь создадим интерфейс с помощью библиотеки swing<code><strong>File -> New -> Client Tier -> Swing/AWT -> Java Application</strong></code><br/><a href="http://webguruz.ru/wp-content/uploads/java_app.png" rel="lightbox[711]" title="java_app"><img src="http://webguruz.ru/wp-content/uploads/java_app-300x213.png" alt="java_application" title="java_app" width="300" height="213" class="size-medium wp-image-620" /></a><br/><br />
Соглашаемся со значениями по умолчанию и жмем <strong>Ok</strong> На следующем шаге выбираем <code><strong>Menu Bar, Status Bar, и About Box</strong></code> и нажимаем <strong>Ок</strong><br />В окне визуального редактирования добавляем кнопку <strong>jButton</strong>, можно изменить ее название:<br/><br/> <a href="http://webguruz.ru/wp-content/uploads/button.png" rel="lightbox[711]" title="button"><img src="http://webguruz.ru/wp-content/uploads/button-300x159.png" alt="rename_button" title="button" width="300" height="159" class="size-medium wp-image-736" /></a></p>
<p> Потом навешиваем на эту кнопку новое событие, <code><strong>jButton1_actionPerformed</strong></code> для этого кликаем на кнопку просмотреть пункта <strong>actionPerformed</strong> (&#8230;)</p>
<p> <a href="http://webguruz.ru/wp-content/uploads/button_event.png" rel="lightbox[711]" title="button_event"><img src="http://webguruz.ru/wp-content/uploads/button_event-300x159.png" alt="button_event" title="button_event" width="300" height="159" class="size-medium wp-image-737" /></a></p>
<p> Сохраняемся и редактируем код. Напишем небольшой счетчик количества нажатий на кнопку. <code>int i = 1;<br />
private void jButton1_actionPerformed(ActionEvent e) {<br />
&nbsp;&nbsp;statusBar.setText("Button Clicked: " + i++);<br />
}</code> Запускаем и кликаем на свое счастье) Как видите jdeveloper позволяет быстро и без особого труда создавать desktop java приложения.<!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/cHmMVpCUj6U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/java/java-desktop-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://webguruz.ru/java/java-desktop-application/</feedburner:origLink></item>
		<item>
		<title>«Hello World!» на Java в JDeveloper.</title>
		<link>http://feedproxy.google.com/~r/Webguruz/~3/tAxHHTsiTKI/</link>
		<comments>http://webguruz.ru/java/hello-world-%d0%bd%d0%b0-java-%d0%b2-jdeveloper/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 12:25:57 +0000</pubDate>
		<dc:creator>dimaz</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Jdeveloper]]></category>
		<category><![CDATA[hello world java]]></category>
		<category><![CDATA[hello world jdeveloper]]></category>
		<category><![CDATA[jdeveloper 11g]]></category>
		<category><![CDATA[первое приложение java]]></category>
		<category><![CDATA[первое приложение jdeveloper]]></category>

		<guid isPermaLink="false">http://webguruz.ru/?p=617</guid>
		<description><![CDATA[В инете мало мануалов по Jdeveloper на русском, поэтому решил написать немного сам. Руководствовался манами на сайте oracle. В прошлом посте уже был описан процесс установки. Теперь переходим с следующему шагу. Напишем наше первое приложение на Java. Как обычно это вывод &#171;Hello World!&#187;. Запускаем Jdeveloper. В панели меню выбираем Application &#8211; New. Выбираем &#171;Generic Application&#187;, [...]]]></description>
			<content:encoded><![CDATA[<p>В инете мало мануалов по Jdeveloper на русском, поэтому решил написать немного сам. Руководствовался манами на сайте oracle. В прошлом посте уже был описан процесс установки. Теперь переходим с следующему шагу. Напишем наше первое приложение на Java. Как обычно это вывод &laquo;Hello World!&raquo;. Запускаем Jdeveloper. В панели меню выбираем Application &#8211; New. Выбираем &laquo;Generic Application&raquo;, вписываем название будущей проги и жмем &laquo;Finish&raquo;.<br />
<span id="more-617"></span><br />
<a href="http://webguruz.ru/wp-content/uploads/Screenshot-Create-Generic-Application-Step-1-of-2.png" rel="lightbox[617]" title="Screenshot-Create Generic Application - Step 1 of 2"><img class="alignnone size-full wp-image-626" title="Screenshot-Create Generic Application - Step 1 of 2" src="http://webguruz.ru/wp-content/uploads/Screenshot-Create-Generic-Application-Step-1-of-2.png" alt="" width="338" /></a><br />
 Теперь нужно создать Java class. В &laquo;Application Navigator&raquo; выбираем наш проект Project1 &#8211; New.<br />
<a href="http://webguruz.ru/wp-content/uploads/new_java_class.png" rel="lightbox[617]" title="new_java_class"><img class="alignnone size-medium wp-image-620" title="new_java_class" src="http://webguruz.ru/wp-content/uploads/new_java_class-282x300.png" alt="" /></a><br />
В открывшемся окне выбираем General &#8211; Java Class.<br />
<a href="http://webguruz.ru/wp-content/uploads/new_class_dialog.png" rel="lightbox[617]" title="new_class_dialog"><img class="alignnone size-medium wp-image-628" title="new_class_dialog" src="http://webguruz.ru/wp-content/uploads/new_class_dialog-300x202.png" alt="" width="300" height="202" /></a><br />
Далее вводим параметры класса. Тут указываем, что класс должен иметь main метод. Отмечаем чекбокс &laquo;Main Method&raquo;.<br />
<a href="http://webguruz.ru/wp-content/uploads/new_class_main_method.png" rel="lightbox[617]" title="new_class_main_method"><img class="alignnone size-medium wp-image-618" title="new_class_main_method" src="http://webguruz.ru/wp-content/uploads/new_class_main_method-256x300.png" alt="" width="256" height="300" /></a><br />
 После этого мы получаем готовый код. Тут напишем свою функцию для вывода сообщения.<code>public class Class1 {<br />
public Class1() {<br />
super();<br />
}<br />
public static void main(String[] args) {<br />
hello_world();<br />
}<br />
static void hello_world () {<br />
System.out.println("Hello World!");<br />
}<br />
}</code>Запустим проект. Для этого жмем F11 или на кнопку Run на панели. Внизу в консоли видим результат работы программы &#8211; наше сообщение &laquo;Hello World!&raquo;. <img class="alignnone size-medium wp-image-622" title="screenshot2" src="http://webguruz.ru/wp-content/uploads/screenshot2.png" alt="" width="500" />Но просто получать вывод сообщения в консоль не интересно. Интереснее вводить что-нибудь. Сделаем ввод строки и последующий ее вывод. Разрешение ввода в проектах в Jdeveloper по умолчанию не включен. Давайте его включим. Выбираем в панели меню Application &#8211; Project Properties.<br />
<a href="http://webguruz.ru/wp-content/uploads/screenshot3.png" rel="lightbox[617]" title="screenshot3"><img class="alignnone size-medium wp-image-623" title="screenshot3" src="http://webguruz.ru/wp-content/uploads/screenshot3-283x300.png" alt="" width="283" height="300" /></a><br />
В открывшемся окне на левой панели выбираем &laquo;Run/Debug/Profile&raquo; и жмем Edit.<br />
<a href="http://webguruz.ru/wp-content/uploads/Screenshot-Project-Properties-home-dimaz-jdeveloper-mywork-Application2-Project1-Project1.jpr_1.png" rel="lightbox[617]" title="Screenshot-Project Properties - -home-dimaz-jdeveloper-mywork-Application2-Project1-Project1.jpr"><img class="alignnone size-medium wp-image-629" title="Screenshot-Project Properties - -home-dimaz-jdeveloper-mywork-Application2-Project1-Project1.jpr" src="http://webguruz.ru/wp-content/uploads/Screenshot-Project-Properties-home-dimaz-jdeveloper-mywork-Application2-Project1-Project1.jpr_1-300x202.png" alt="" width="300" height="202" /></a><br />
Далее выбираем &laquo;Tool Settings&raquo; и отмечаем &laquo;Allow Programm Input&raquo;.<br />
 <a href="http://webguruz.ru/wp-content/uploads/Screenshot-Edit.png" rel="lightbox[617]" title="Screenshot-Edit"><img class="alignnone size-medium wp-image-638" title="Screenshot-Edit" src="http://webguruz.ru/wp-content/uploads/Screenshot-Edit-300x202.png" alt="" width="300" height="202" /></a></p>
<p> Теперь перепишем нашу функцию. В Java существует объект java.io.BufferedReader &#8211; буфферизированный поток для чтения, его и будем использовать для чтения входной строки.<br />
<code>static void hello_world () {<br />
String str1, str2;//объявляем переменные строки<br />
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));//объявляем поток для чтения<br />
try {<br />
str1 = reader.readLine();//вводим первую строку<br />
str2 = reader.readLine();//потом сторую<br />
System.out.println(str1 + " " + str2);//вывод сообщения в ворме "первая_строка вторая_строка"<br />
} catch (IOException e) { System.err.println("Problem with input stream"); e.printStackTrace(); } }</code>Запускаем. Появляется поле ввода, вводим строку.<img class="alignnone size-medium wp-image-625" title="screenshot5" src="http://webguruz.ru/wp-content/uploads/screenshot5.png" alt="" width="500" /> Ну вот и все, наше первое приложение на java готово. Не так уж все сложно и запутанно. В следующем посте напишу как создавать .jar архив, для запуска вне среды JDeveloper.<!-- PHP 5.x --></p>
<img src="http://feeds.feedburner.com/~r/Webguruz/~4/tAxHHTsiTKI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webguruz.ru/java/hello-world-%d0%bd%d0%b0-java-%d0%b2-jdeveloper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://webguruz.ru/java/hello-world-%d0%bd%d0%b0-java-%d0%b2-jdeveloper/</feedburner:origLink></item>
	</channel>
</rss>

