<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Searching for Simplicity</title>
	<atom:link href="http://karabinovich.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://karabinovich.wordpress.com</link>
	<description>i must think about what i do all the time</description>
	<lastBuildDate>Wed, 20 Apr 2011 05:42:03 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='karabinovich.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Searching for Simplicity</title>
		<link>http://karabinovich.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://karabinovich.wordpress.com/osd.xml" title="Searching for Simplicity" />
	<atom:link rel='hub' href='http://karabinovich.wordpress.com/?pushpress=hub'/>
		<item>
		<title>как вегда три толстяка в барыше</title>
		<link>http://karabinovich.wordpress.com/2011/04/20/%d0%ba%d0%b0%d0%ba-%d0%b2%d0%b5%d0%b3%d0%b4%d0%b0-%d1%82%d1%80%d0%b8-%d1%82%d0%be%d0%bb%d1%81%d1%82%d1%8f%d0%ba%d0%b0-%d0%b2-%d0%b1%d0%b0%d1%80%d1%8b%d1%88%d0%b5/</link>
		<comments>http://karabinovich.wordpress.com/2011/04/20/%d0%ba%d0%b0%d0%ba-%d0%b2%d0%b5%d0%b3%d0%b4%d0%b0-%d1%82%d1%80%d0%b8-%d1%82%d0%be%d0%bb%d1%81%d1%82%d1%8f%d0%ba%d0%b0-%d0%b2-%d0%b1%d0%b0%d1%80%d1%8b%d1%88%d0%b5/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 05:36:13 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
		
		<guid isPermaLink="false">http://karabinovich.wordpress.com/?p=160</guid>
		<description><![CDATA[Интересное наблюдение про СЕО и всякие микроданные, микроформаты и RDF, которые использует гугл для ранжирования результата http://www.roughtype.com/archives/2011/03/googles_recipe.php. Простому повару или механику, который ведет свой сайт, не разобраться в этих штуках. Т.е если ты повар и пишешь свои самые хорошие рецепты на своем сайте, то что бы гугл их показал людям, тебе нужно нанять CEO-шника для [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=160&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Интересное наблюдение про СЕО и всякие микроданные, микроформаты и RDF, которые использует гугл для ранжирования результата <a href="http://www.roughtype.com/archives/2011/03/googles_recipe.php">http://www.roughtype.com/archives/2011/03/googles_recipe.php</a>.</p>
<p>Простому повару или механику, который ведет свой сайт, не разобраться в этих штуках.<br />
Т.е если ты повар и пишешь свои самые хорошие рецепты на своем сайте, то<br />
что бы гугл их показал людям, тебе нужно нанять CEO-шника для раскрутки сайта. </p>
<blockquote><p>- А сам разобраться в <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=173379">этом</a> ты что не можешь? А я вот могу!
</p></blockquote>
<p>&laquo;сайты пишут инженеры для инженеров&raquo;<br />
Опять всякие корпорации с большим кошельком банкуют,<br />
занимают топ в поисковиках,<br />
а бедный папакарло не может поделиться с людьми своими знаниями о мире(</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=160&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2011/04/20/%d0%ba%d0%b0%d0%ba-%d0%b2%d0%b5%d0%b3%d0%b4%d0%b0-%d1%82%d1%80%d0%b8-%d1%82%d0%be%d0%bb%d1%81%d1%82%d1%8f%d0%ba%d0%b0-%d0%b2-%d0%b1%d0%b0%d1%80%d1%8b%d1%88%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title>Scala имеет очень много некрасивых конструкций&#8230;</title>
		<link>http://karabinovich.wordpress.com/2010/03/19/scala-%d0%b8%d0%bc%d0%b5%d0%b5%d1%82-%d0%be%d1%87%d0%b5%d0%bd%d1%8c-%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%bd%d0%b5%d0%ba%d1%80%d0%b0%d1%81%d0%b8%d0%b2%d1%8b%d1%85-%d0%ba%d0%be%d0%bd%d1%81%d1%82%d1%80/</link>
		<comments>http://karabinovich.wordpress.com/2010/03/19/scala-%d0%b8%d0%bc%d0%b5%d0%b5%d1%82-%d0%be%d1%87%d0%b5%d0%bd%d1%8c-%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%bd%d0%b5%d0%ba%d1%80%d0%b0%d1%81%d0%b8%d0%b2%d1%8b%d1%85-%d0%ba%d0%be%d0%bd%d1%81%d1%82%d1%80/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 20:02:42 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/?p=157</guid>
		<description><![CDATA[поэтому это не будет следующим mainstream JVM language :( to be continued<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=157&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>поэтому это не будет следующим mainstream JVM language :(<br />
<em>to be continued</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=157&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2010/03/19/scala-%d0%b8%d0%bc%d0%b5%d0%b5%d1%82-%d0%be%d1%87%d0%b5%d0%bd%d1%8c-%d0%bc%d0%bd%d0%be%d0%b3%d0%be-%d0%bd%d0%b5%d0%ba%d1%80%d0%b0%d1%81%d0%b8%d0%b2%d1%8b%d1%85-%d0%ba%d0%be%d0%bd%d1%81%d1%82%d1%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title>Fall in love with Scala</title>
		<link>http://karabinovich.wordpress.com/2010/03/09/fall-in-love-with-scala/</link>
		<comments>http://karabinovich.wordpress.com/2010/03/09/fall-in-love-with-scala/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 14:32:30 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/?p=132</guid>
		<description><![CDATA[Лекции уважаемого Дмитрия Сошникова про F# показали мне как функциональный подход в программировании может помочь писать красивый, локаничный и надежный код. Решил выучить функцональный язык. Не сильно хотелось переходить на .net для изучения F# (да еще менять нетбинс на vs) Я стал искать функциональный язык в jvm мире и нашел Скалу. Посмотрев на Scala, помедитировав [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=132&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.intuit.ru/department/pl/funcprog/1/">Лекции уважаемого Дмитрия Сошникова</a> про F#  показали мне как функциональный подход в программировании может помочь писать красивый, локаничный и надежный код.<br />
Решил выучить функцональный язык.<br />
Не сильно хотелось переходить на .net для изучения F# (да еще менять нетбинс на vs)<br />
Я стал искать функциональный язык в jvm мире и нашел Скалу.<br />
Посмотрев на Scala, помедитировав над его дизайном и обектно-функциональным дуализмом, увидев <a href="http://stronglytypedblog.blogspot.com/2009/07/java-vs-scala-vs-groovy-performance.html">benchmarks</a> я понял что это то что мне так нехватало в мире jvm.</p>
<p>В поисках простоты, последнии годы я, как и все мы, увлекался динамическими языками (ruby, groovy, javascript). Я был фанатом groovy и пророчил его следующим mainstream языком в jvm мире.<br />
Я думал что вот выйдет компилятор groovy 2.0 в котором доведут скорость исполнения программ<br />
до промышленного уровня и новые enterprise application начнут писаться на groovy.<br />
Но теперь я понимаю что возможности metaprograming и dynamic typing в языке groovy<br />
не позволят ему стать основным языком разработки серверных backend&#8217;ов наших приложений.<br />
Этот язык должен быть более формализован (что бы корректность кода проверял компилятор<br />
а не набор unit тестов) т.е. следующий язык, как и Java, должен быть статически типизированным.<br />
Scala именно таким и является да еще дает возможность писать код в функциональном стиле.<br />
Сам <a href="http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html">автор языка groovy написал</a>, что если бы в 2003 году ему попалась книга &laquo;Programming in Scala&raquo;<br />
он бы не сел за проектирование groovy.</p>
<p>Короче я нашел для себя еще одну весч которая добавляет радости к моей работе.</p>
<p>P.S. не все конечно красиво в языке Scala (что вы хотите, немец создал:).<br />
Синаксис языка на первый взгляд кажеться немного &#8230; &laquo;полиморфным&raquo; что ли.<br />
Не видно общего стиля в форме конструкций.<br />
Например:<br />
-нумерация в List начинаеться с 0, а в Tuple с 1<br />
-все операторы left-associative, а те которые заканчиваються на символ &#8216;:&#8217;  right-associative<br />
-mutable и immutable коллеции моделируються по разному для List и Set, Map.<br />
-оператор &#8216;+&#8217; для mutable и immutable Set ведет себя поразному, можно наделать ошибок если забудешь и будешь добовлять к immutable Set объекты </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=132&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2010/03/09/fall-in-love-with-scala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title>Groovy Console запускать Ant&#8217;ом</title>
		<link>http://karabinovich.wordpress.com/2010/01/18/groovy-console-%d0%b7%d0%b0%d0%bf%d1%83%d1%81%d0%ba%d0%b0%d1%82%d1%8c-ant%d0%be%d0%bc/</link>
		<comments>http://karabinovich.wordpress.com/2010/01/18/groovy-console-%d0%b7%d0%b0%d0%bf%d1%83%d1%81%d0%ba%d0%b0%d1%82%d1%8c-ant%d0%be%d0%bc/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 15:26:16 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/?p=90</guid>
		<description><![CDATA[Вот полезность в Eclipse есть. Можно запускать groovy console с кодом проекта и с classpath&#8217;ом пректа. Очень удобно, добавил java классик, запустил groovy console и можешь на ходу манипулировать им. Но я то фанат netbeans, а в нем нету такой полезности :( Все свои проекты собираю и деплою антом. И вот подумалось, можно ли сделать [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=90&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Вот полезность в Eclipse есть.<br />
Можно запускать groovy console с кодом проекта и с classpath&#8217;ом пректа.<br />
Очень удобно, добавил java классик, запустил groovy console и можешь на ходу манипулировать им.<br />
Но я то фанат netbeans, а в нем нету такой полезности :(<br />
Все свои проекты собираю и деплою антом. И вот подумалось, можно ли сделать такую таску в анте?<br />
Оказалось можно.</p>
<pre style="font-size:100%;font-family:Consolas, monospace;background:silver;padding:7px;">
&lt;!-- Добавляем groovy-all-1.5.7.jar  в класспас --&gt;
&lt;path id="classpath.with.groovy.jar"&gt;
   &lt;path refid="classpath.compile"/&gt;
   &lt;pathelement location="${lib.dir}/groovy-all-1.5.7.jar"/&gt;
&lt;/path&gt;

&lt;!-- Определяем groovy таску --&gt;
&lt;taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"
classpathref="classpath.with.groovy.jar"/&gt;

&lt;!-- И собственно target которая запускает console с необходимым класспасом--&gt;
&lt;target name="console"&gt;
   &lt;groovy classpathref="classpath.with.geotools.jar"&gt;
    import groovy.ui.Console;
    // UIManager опционален, нужен для красивого UI
    import javax.swing.UIManager;
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

    Console console = new Console(this.class.classLoader, new Binding());
    console.run();
    // синхронизация нужна что бы ant ждал закрытия консоли, а не сам закрывал ее
    console.swing.consoleFrame.windowClosed = { synchronized(console) { console.notify() } }
    synchronized(console)  { console.wait() }
   &lt;/groovy&gt;
&lt;/target&gt;
</pre>
<p><code></code><br />
И вот получаем очень приятную весч. В командной строке набираем</p>
<pre style="font-size:100%;font-family:Consolas, monospace;background:silver;padding:7px;">
ant console
</pre>
<p><code></code><br />
и играемся своим кодом.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=90&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2010/01/18/groovy-console-%d0%b7%d0%b0%d0%bf%d1%83%d1%81%d0%ba%d0%b0%d1%82%d1%8c-ant%d0%be%d0%bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title>DBCP connection pool and &#171;Communications link failure&#187;</title>
		<link>http://karabinovich.wordpress.com/2009/10/17/dbcp-connection-pool-and-communications-link-failure/</link>
		<comments>http://karabinovich.wordpress.com/2009/10/17/dbcp-connection-pool-and-communications-link-failure/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 11:33:52 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[db]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/?p=77</guid>
		<description><![CDATA[Используя apache connection pool для работы с mysql, после некоторого простоя приложения имеем: java.sql.SQLException: Communications link failure Говорят что для postgre похожая ситуация. Почему это происходит? Потому что часто сервер БД устанавливает время &#171;простоя&#187; одного соединения, после которого оно закрывается. Это разумно, зачем серверу держать открытыми не используемые соединения? А пул соединений не знает, что [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=77&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Используя apache connection pool для работы с mysql,  после некоторого простоя приложения имеем:</p>
<pre style="font-size:100%;font-family:Consolas, monospace;background:silver;padding:7px;">
java.sql.SQLException: Communications link failure
</pre>
<p><code></code><br />
<a href="http://sacharya.com/grails-dbcp-stale-connections/">Говорят </a>что для postgre похожая ситуация.</p>
<p>Почему это происходит?<br />
Потому что часто сервер БД устанавливает время &laquo;простоя&raquo; одного соединения, после которого оно закрывается. Это разумно, зачем серверу держать открытыми не используемые соединения? А пул соединений не знает, что на другой стороне соединение закрыто. </p>
<p>Что делать?<br />
Сказать пулу что бы он перед отдачей соединения тестировал его на &laquo;живость&raquo;.<br />
Для этого пулу нужно установить validationQuery строку   и указать когда  делать валидацию (testOnBorrow, testOnReturn или testWhileIdle). Я выбрал первое:</p>
<pre style="font-size:100%;font-family:Consolas, monospace;background:silver;padding:7px;">
datasource = new BasicDataSource();
datasource.setTestOnBorrow(true);
datasource.setValidationQuery("SELECT 1");
</pre>
<p><code></code><br />
Простого запроса &#8216;SELECT 1&#8242; для mysql и postgre достаточно.</p>
<p>P.S. Альтернатива этому решению &#8211; использовать evicting Idle Connections. <a href="http://sacharya.com/grails-dbcp-stale-connections/">Тут</a> описано как.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=77&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2009/10/17/dbcp-connection-pool-and-communications-link-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title>hibernate и другие ORM усложняют жизнь</title>
		<link>http://karabinovich.wordpress.com/2009/09/27/hibernate-%d0%b8-%d0%b4%d1%80%d1%83%d0%b3%d0%b8%d0%b5-orm-%d1%83%d1%81%d0%bb%d0%be%d0%b6%d0%bd%d1%8f%d1%8e%d1%82-%d0%b6%d0%b8%d0%b7%d0%bd%d1%8c/</link>
		<comments>http://karabinovich.wordpress.com/2009/09/27/hibernate-%d0%b8-%d0%b4%d1%80%d1%83%d0%b3%d0%b8%d0%b5-orm-%d1%83%d1%81%d0%bb%d0%be%d0%b6%d0%bd%d1%8f%d1%8e%d1%82-%d0%b6%d0%b8%d0%b7%d0%bd%d1%8c/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 13:18:45 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[db]]></category>
		<category><![CDATA[jvm]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/?p=19</guid>
		<description><![CDATA[Мне понадобилось 3 года использования, что бы понять: hibernate совершенно не нужен. Для работы с БД  нам нужно знать только sql и jdbc.  Этот язык и технологию любой студент освоит за месяц. А вот если &#171;интерпрайзерство&#187; навяжет нам  hibernate, нам, помимо sql и jdbc, нужно будет выучить еще  3 языка : язык конфигурации (hiberante-config.xml) язык [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=19&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Мне понадобилось 3 года использования, что бы понять: <strong>hibernate совершенно не нужен</strong>.<br />
Для работы с БД  нам нужно знать только <strong>sql</strong><strong> </strong>и <strong>jdbc</strong>.  Этот язык и технологию любой студент освоит за месяц. А вот если &laquo;интерпрайзерство&raquo; навяжет нам  hibernate, нам, помимо sql и jdbc, нужно будет выучить еще  3 языка :</p>
<blockquote><p>язык конфигурации (hiberante-config.xml)<br />
язык описания самого маппинга (*hbm.xml или jpa анотации)<br />
язык запросов (hsql)</p></blockquote>
<p>Для этого прочитать книгу HIA, помучиться с lazyload, разобраться с OutMemory. Сколько на это уйдет времени? И что самое главное, после освоения, всеравно проще программы не будут.</p>
<p>Мой выбор:</p>
<blockquote><p>чистый jdbc<br />
commons-dbutils.jar<br />
мой хелпер который по бину генерит INSERT и UPDATE стейтманты</p></blockquote>
<p>И что самое приятное war-файл весит около 3-4 Мб</p>
<p>P.S.  ActiveRecord конечно рулит, но это не ORM и в java мире их нету :(</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=19&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2009/09/27/hibernate-%d0%b8-%d0%b4%d1%80%d1%83%d0%b3%d0%b8%d0%b5-orm-%d1%83%d1%81%d0%bb%d0%be%d0%b6%d0%bd%d1%8f%d1%8e%d1%82-%d0%b6%d0%b8%d0%b7%d0%bd%d1%8c/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title>freemarker и точка как десятичный разделитель</title>
		<link>http://karabinovich.wordpress.com/2009/03/04/freemarker-%d0%b8-%d1%82%d0%be%d1%87%d0%ba%d0%b0/</link>
		<comments>http://karabinovich.wordpress.com/2009/03/04/freemarker-%d0%b8-%d1%82%d0%be%d1%87%d0%ba%d0%b0/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 15:10:48 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[reading]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/?p=7</guid>
		<description><![CDATA[Если вы работаете на русской Windows то в JVM по умолчанию стоит русская Locale. Поэтому: &#60;#assign x = 1.234&#62; ${x?string("0.##")} выводит число с запятой в качестве десятичного разделителя: 1,234 Что бы Freemarker использовал точку вместо запятой, нужно установить english locale Configuration cfg = new Configuration(); cfg.setLocale(Locale.ENGLISH);<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=7&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Если вы работаете на русской Windows то в JVM по умолчанию стоит русская Locale.<br />
Поэтому:</p>
<pre style="font-size:100%;font-family:Consolas, monospace;background:silver;padding:7px;">
&lt;#assign x = 1.234&gt;
${x?string("0.##")}
</pre>
<p><code></code><br />
выводит число с запятой в качестве десятичного разделителя:</p>
<pre style="font-size:100%;font-family:Consolas, monospace;background:silver;padding:7px;">
1,234
</pre>
<p><code></code><br />
Что бы Freemarker использовал точку вместо запятой, нужно установить english locale</p>
<pre style="font-size:100%;font-family:Consolas, monospace;background:silver;padding:7px;">
Configuration cfg = new Configuration();
cfg.setLocale(Locale.ENGLISH);
</pre>
<p><code></code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=7&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2009/03/04/freemarker-%d0%b8-%d1%82%d0%be%d1%87%d0%ba%d0%b0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title></title>
		<link>http://karabinovich.wordpress.com/2008/01/05/6/</link>
		<comments>http://karabinovich.wordpress.com/2008/01/05/6/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 20:55:44 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[reading]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/2008/01/05/6/</guid>
		<description><![CDATA[http://www.stucharlton.com/blog/archives/000141.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=6&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stucharlton.com/blog/archives/000141.html">http://www.stucharlton.com/blog/archives/000141.html</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karabinovich.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karabinovich.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=6&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2008/01/05/6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
		<item>
		<title>limitations of restful srevices</title>
		<link>http://karabinovich.wordpress.com/2008/01/05/limitations-of-restful-srevices/</link>
		<comments>http://karabinovich.wordpress.com/2008/01/05/limitations-of-restful-srevices/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 18:20:58 +0000</pubDate>
		<dc:creator>karabinovich</dc:creator>
				<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://karabinovich.wordpress.com/2008/01/05/limitations-of-restful-srevices/</guid>
		<description><![CDATA[One man and the other one had debated and I made extracts: if domain has sophisticated business rules it is difficult to express architecture of system in such rather autonomous webparts as resources. as it build in http (client-server) it is not good suit for server-server (peer-to-peer) interaction. nobody can conclusively infer that two uris [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=3&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One <a href="http://www.ebpml.org/blog/42.htm">man</a> and the other <a href="http://www.innoq.com/blog/st/2008/01/when-to-use-restful-http.html">one </a>had debated and I made extracts:</p>
<ol>
<li>if domain has sophisticated business rules it is difficult to express architecture of system in such rather autonomous webparts as resources.</li>
<li><strike>as it build in http (client-server) it is not good suit for server-server (peer-to-peer) interaction.</strike></li>
<li>nobody can conclusively infer that two uris are not pointing to the same resource. REST does not have the concept of unique identifiers.</li>
<li>REST application assume a hierarchical data model because of the xpath-like syntax</li>
<li>REST hasn&#8217;t familiar application semantics such as data structures, queries, states, actions, inter-actions, trans-actions, events or exceptions. All this stuff are describe in 3 things: http verbs, uris and media types. (maybe it&#8217;s advantage?)</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karabinovich.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karabinovich.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karabinovich.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karabinovich.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karabinovich.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karabinovich.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/karabinovich.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/karabinovich.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/karabinovich.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/karabinovich.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karabinovich.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karabinovich.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karabinovich.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karabinovich.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karabinovich.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karabinovich.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karabinovich.wordpress.com&amp;blog=2454233&amp;post=3&amp;subd=karabinovich&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://karabinovich.wordpress.com/2008/01/05/limitations-of-restful-srevices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e98d424f3ec82e902fe08140a77164a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Peter Karabinovich</media:title>
		</media:content>
	</item>
	</channel>
</rss>
