<?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"
	>

<channel>
	<title>Life by the park &#187; Java</title>
	<atom:link href="http://www.katkovonline.com/category/work/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.katkovonline.com</link>
	<description>Life, Work, Thoughts and Pictures</description>
	<pubDate>Tue, 22 Jun 2010 10:45:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Work: Twitter goes from Ruby to Scala</title>
		<link>http://www.katkovonline.com/2009/03/work-twitter-goes-from-ruby-to-scala/</link>
		<comments>http://www.katkovonline.com/2009/03/work-twitter-goes-from-ruby-to-scala/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 12:24:13 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<category><![CDATA[message queue]]></category>

		<category><![CDATA[mq]]></category>

		<category><![CDATA[scala]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=1318</guid>
		<description><![CDATA[




Что-то много вокруг разговоров о Scala, и с каждым днём всё больше и больше. Вот и Twitter туда же. Предали светлые идеалы Ruby.
&#8220;&#8230;One of the most important changes they introduced to improve performance in the last nine months is moving from a Ruby messaging middleware to a custom build JVM-based messaging middleware written in Scala.&#8221;
говорит [...]]]></description>
			<content:encoded><![CDATA[<!-- <a href="http://www.thulasidas.com/adsense" title="Visit plugin homepage">Easy AdSense</a> V2.81 -->
<!-- Post[count: 2] -->
<div class="ezAdsense adsense adsense-leadin" style="float:right;margin:12px; "><script type="text/javascript"><!--
google_ad_client = "pub-8130845805731512";
/* 234x60, created 10/20/09 */
google_ad_slot = "3197235080";
google_ad_width = 234;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p>Что-то много вокруг разговоров о Scala, и с каждым днём всё больше и больше. Вот и Twitter туда же. Предали светлые идеалы Ruby.</p>
<blockquote><p>&#8220;&#8230;One of the most important changes they introduced to improve performance in the last nine months is moving from a Ruby messaging middleware to a custom build JVM-based messaging middleware written in Scala.&#8221;</p></blockquote>
<p>говорит <a href="http://blog.evanweaver.com/">Evan Weave</a><br />
<img style="visibility: hidden; width: 0px; height: 0px; display: none;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyMzc*NjUyNDUxNDYmcHQ9MTIzNzQ2NTMxNjg1NCZwPTEwMTkxJmQ9Jmc9MiZ*PSZvPWQ5OTRjZDQxMTAyYjQyODdhMTUzZWE5YTQ3ZGEyMDBj.gif" border="0" alt="" width="0" height="0" /></p>
<div id="__ss_1141786" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Improving Running Components at Twitter" href="http://www.slideshare.net/Eweaver/improving-running-components-at-twitter?type=presentation">Improving Running Components at Twitter</a><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=httpssupload.s3.amazonaws.comimprovingrunningcomponentsattwitter-evanweaver-qconlondon2009-090313094122-phpapp01.pdf.pdf&amp;stripped_title=improving-running-components-at-twitter" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=httpssupload.s3.amazonaws.comimprovingrunningcomponentsattwitter-evanweaver-qconlondon2009-090313094122-phpapp01.pdf.pdf&amp;stripped_title=improving-running-components-at-twitter" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=1318" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2009/03/work-twitter-goes-from-ruby-to-scala/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Work: C# and MS</title>
		<link>http://www.katkovonline.com/2008/04/work-c-and-ms/</link>
		<comments>http://www.katkovonline.com/2008/04/work-c-and-ms/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 04:29:25 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=626</guid>
		<description><![CDATA[Предал светлые идела Java, работаю над проектом на C#. Прошёл месяц, так что все начальные впечатления должны были сгладится - и вот каков сухой остаток.
Чувствую себя маленькой шестеренкой в большом часовом организме Microsoft. Я уже и забыл как это. Никогда не испытывал никаких неприязненных чувств к MS, всегда считал да и продолжаю считать holy war-ные [...]]]></description>
			<content:encoded><![CDATA[<p>Предал светлые идела Java, работаю над проектом на C#. Прошёл месяц, так что все начальные впечатления должны были сгладится - и вот каков сухой остаток.</p>
<p>Чувствую себя маленькой шестеренкой в большом часовом организме Microsoft. Я уже и забыл как это. Никогда не испытывал никаких неприязненных чувств к MS, всегда считал да и продолжаю считать holy war-ные дела большими глупостями. Но разница с Java миром сильно режет глаз.</p>
<p>.Net это мир чистогана в империи MS. Шаг влево, шаг вправо, прыжок на месте карается тщетным чтением MSDN. Все что нужно среднестатистическому программисту уже сделано в core .NET, если это не сделано - значит это продаётся вот тут и тут за $1000+, если это не продаётся, значит это ересь. <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Забавно видеть как такое заботливо прокопанное русло неотвратно приводит ко всё большему и большему vendor-binding. Это как карусель, на которой весело ехать, но тяжело соскочить.</p>
<p>Наверно если бы я был Microsoft я бы тоже себя так вёл, в конце концов мы тут не благотворительностью занимаемся, но не приятно чувствовать как тебя тянут куда-то.</p>
<p>P.S. А сам язык C# - хорош да.</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=626" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2008/04/work-c-and-ms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Work:Java</title>
		<link>http://www.katkovonline.com/2007/09/workjava/</link>
		<comments>http://www.katkovonline.com/2007/09/workjava/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 16:17:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=453</guid>
		<description><![CDATA[Надо прекратить читать ЖЖ кого попало, это болото для ума. Время уходит, а пользы ноль.
 ]]></description>
			<content:encoded><![CDATA[<p>Надо прекратить читать ЖЖ кого попало, это болото для ума. Время уходит, а пользы ноль.</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=453" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2007/09/workjava/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java: удивительное рядом</title>
		<link>http://www.katkovonline.com/2007/07/java-%d1%83%d0%b4%d0%b8%d0%b2%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%80%d1%8f%d0%b4%d0%be%d0%bc/</link>
		<comments>http://www.katkovonline.com/2007/07/java-%d1%83%d0%b4%d0%b8%d0%b2%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%80%d1%8f%d0%b4%d0%be%d0%bc/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 05:14:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=445</guid>
		<description><![CDATA[Сегодня Идея предложила зарефакторить вызов статического метода в import static. Зарефакторил. Пару минут втыкал куда же оно подевалось. Погуглил. Поразился своей отсталости.
 ]]></description>
			<content:encoded><![CDATA[<p>Сегодня Идея предложила зарефакторить вызов статического метода в import static. Зарефакторил. Пару минут втыкал куда же оно подевалось. Погуглил. Поразился своей отсталости.</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=445" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2007/07/java-%d1%83%d0%b4%d0%b8%d0%b2%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%80%d1%8f%d0%b4%d0%be%d0%bc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java:Maven</title>
		<link>http://www.katkovonline.com/2006/12/javamaven/</link>
		<comments>http://www.katkovonline.com/2006/12/javamaven/#comments</comments>
		<pubDate>Thu, 28 Dec 2006 16:31:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=365</guid>
		<description><![CDATA[ На сайте Maven прямо сверху есть такая картинка. Это что?
Жопа Maven? Или что они этим хотели сказать?
 ]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ljplus.ru/img/k/a/katren/mavens-ass.gif" width=298 height=94 alt='18,96 КБ' align=left hspace=15> На сайте <a href="http://maven.apache.org">Maven</a> прямо сверху есть такая картинка. Это что?<br />
Жопа Maven? Или что они этим хотели сказать?</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=365" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/12/javamaven/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java</title>
		<link>http://www.katkovonline.com/2006/12/java/</link>
		<comments>http://www.katkovonline.com/2006/12/java/#comments</comments>
		<pubDate>Mon, 25 Dec 2006 18:33:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=362</guid>
		<description><![CDATA[сидел читал ленту, накопал пару новых java френдов, увлекся чтением . Открутил до сентября. И всё вроде хорошо, и любопытно и увлекательно, но не покидало ощущение какого-то максимализма. Посмотрел на возраст - 23 года. Неужели и я таким был?
 ]]></description>
			<content:encoded><![CDATA[<p>сидел читал ленту, накопал пару новых java френдов, увлекся чтением <lj user="zurg">. Открутил до сентября. И всё вроде хорошо, и любопытно и увлекательно, но не покидало ощущение какого-то максимализма. Посмотрел на возраст - 23 года. Неужели и я таким был?</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=362" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/12/java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>life и френды</title>
		<link>http://www.katkovonline.com/2006/12/life-%d0%b8-%d1%84%d1%80%d0%b5%d0%bd%d0%b4%d1%8b/</link>
		<comments>http://www.katkovonline.com/2006/12/life-%d0%b8-%d1%84%d1%80%d0%b5%d0%bd%d0%b4%d1%8b/#comments</comments>
		<pubDate>Sat, 16 Dec 2006 05:32:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=349</guid>
		<description><![CDATA[Что нужно постить в свой журнал, что бы тебя повыкидывали из френдов женщины? Надо всякие записки по работе постить, MySQL, Java и такое прочее&#8230;  Интересно, что же надо постить, что бы наоборот?
 ]]></description>
			<content:encoded><![CDATA[<p>Что нужно постить в свой журнал, что бы тебя повыкидывали из френдов женщины? Надо всякие записки по работе постить, MySQL, Java и такое прочее&#8230; <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Интересно, что же надо постить, что бы наоборот?</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=349" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/12/life-%d0%b8-%d1%84%d1%80%d0%b5%d0%bd%d0%b4%d1%8b/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL INSERT: the power of cunning mind</title>
		<link>http://www.katkovonline.com/2006/12/mysql-insert-the-power-of-cunning-mind/</link>
		<comments>http://www.katkovonline.com/2006/12/mysql-insert-the-power-of-cunning-mind/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 21:58:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=347</guid>
		<description><![CDATA[MySQL 5.0
mysql-connector-java-5.0.4-bin.jar
166 Mb dump file with 1 704 067 rows




Method


Time




Strait insert, one row at a time


6:15 min




Same insert but with prepared statement


6:42 min




Batched insert (10 at a time)
statement.addBatch()
…
statement.executeBatch()


6:20 min




Bulk insert (10 at a time)
Select into … values (…),(…)….


1:56 min




Bulk insert (100 at a time)


1:13 min




Bulk insert (1000 at a time)


1:05 min




&#160;
 ]]></description>
			<content:encoded><![CDATA[<div><font size="2">MySQL 5.0</font></div>
<div><font size="2">mysql-connector-java-5.0.4-bin.jar</font></div>
<div><font size="2">166 Mb dump file with 1 704 067 rows<br /></font></div>
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr height="14">
<td valign="top" width="264" height="14">
<div align="center"><font size="2">Method</font></div>
</td>
<td valign="top" width="72" height="14">
<div align="center"><font size="2">Time</font></div>
</td>
</tr>
<tr height="21">
<td valign="top" width="264" height="21">
<div><font size="2">Strait insert, one row at a time</font></div>
</td>
<td valign="top" width="72" height="21">
<div align="right"><font size="2">6:15 min</font></div>
</td>
</tr>
<tr height="21">
<td valign="top" width="264" height="21">
<div><font size="2">Same insert but with prepared statement</font></div>
</td>
<td valign="top" width="72" height="21">
<div align="right"><font size="2">6:42 min</font></div>
</td>
</tr>
<tr height="21">
<td valign="top" width="264" height="21">
<div><font size="2">Batched insert (10 at a time)</font></div>
<div><font size="1">statement.addBatch()</font></div>
<div><font size="1">…</font></div>
<div><font size="1">statement.executeBatch()</font></div>
</td>
<td valign="top" width="72" height="21">
<div align="right"><font size="2">6:20 min</font></div>
</td>
</tr>
<tr height="21">
<td valign="top" width="264" height="21">
<div><a name="OLE_LINK2"><font face="Arial" size="2"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Bulk insert (10 at a time)</span></font></a></div>
<div><font size="1">Select into … values (…),(…)….</font></div>
</td>
<td valign="top" width="72" height="21">
<div align="right"><font size="2">1:56 min</font></div>
</td>
</tr>
<tr height="21">
<td valign="top" width="264" height="21">
<div><font size="2">Bulk insert (100 at a time)</font></div>
</td>
<td valign="top" width="72" height="21">
<div align="right"><font size="2">1:13 min</font></div>
</td>
</tr>
<tr height="21">
<td valign="top" width="264" height="21">
<div><font size="2">Bulk insert (1000 at a time)</font></div>
</td>
<td valign="top" width="72" height="21">
<div align="right"><font size="2">1:05 min</font></div>
</td>
</tr>
</tbody>
</table>
<div><font size="2">&nbsp;</font></div>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=347" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/12/mysql-insert-the-power-of-cunning-mind/feed/</wfw:commentRss>
		</item>
		<item>
		<title>рынок труда IT (java) в Торонто</title>
		<link>http://www.katkovonline.com/2006/12/%d1%80%d1%8b%d0%bd%d0%be%d0%ba-%d1%82%d1%80%d1%83%d0%b4%d0%b0-it-java-%d0%b2-%d1%82%d0%be%d1%80%d0%be%d0%bd%d1%82%d0%be/</link>
		<comments>http://www.katkovonline.com/2006/12/%d1%80%d1%8b%d0%bd%d0%be%d0%ba-%d1%82%d1%80%d1%83%d0%b4%d0%b0-it-java-%d0%b2-%d1%82%d0%be%d1%80%d0%be%d0%bd%d1%82%d0%be/#comments</comments>
		<pubDate>Tue, 12 Dec 2006 15:45:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=344</guid>
		<description><![CDATA[Мои исследования рынка труда&#160; IT (java) в Торонто
Это автоматически за 30 дней по данным воркополиса




SQL
500+


Oracle
463


mssql/tsql
235


websphere
129


javascript
123


UML
108


weblogic
106


struts
62


ejb
55


jms MQ?
55


ajax
47


jms
36


hibernate
29


mysql
27


SOAP
23


spring&#160;
20


jboss
14


jsf
5



А это то, что я руками за пару дней насобирал




struts
10.00


Oracle
8.00


UML (Must Have)
6.00


ejb
6.00


spring&#160;
6.00


weblogic
5.00


javascript
4.00


websphere
3.00


SQL
2.00


jms MQ?
2.00


hibernate
2.00


mssql/tsql
1.00


ajax
1.00


jms
1.00


mysql
1.00


SOAP
1.00


jboss
1.00


jsf
1.00




 ]]></description>
			<content:encoded><![CDATA[<p>Мои исследования рынка труда&nbsp; IT (java) в Торонто<br />
<lj-cut text="Смотреть таблицы">Это автоматически за 30 дней по данным воркополиса</p>
<table style="WIDTH: 136pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=181 border=0 x:str>
<colgroup><col style="WIDTH: 88pt; mso-width-source: userset; mso-width-alt: 4278" width=117><col style="WIDTH: 48pt" width=64><br />
<tbody>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 88pt; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" width=117 height=17><strong><font face=Verdana size=2>SQL</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 48pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right width=64 x:num><font face=Arial size=2>500+</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>Oracle</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>463</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>mssql/tsql</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>235</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>websphere</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>129</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>javascript</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>123</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>UML</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>108</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>weblogic</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>106</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>struts</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>62</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>ejb</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>55</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jms MQ?</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>55</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>ajax</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>47</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jms</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>36</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>hibernate</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>29</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>mysql</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>27</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>SOAP</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>23</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17 x:str="spring "><strong><font face=Verdana><font size=2>spring<span style="mso-spacerun: yes">&nbsp;</span></font></font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>20</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jboss</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>14</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jsf</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>5</font></td>
</tr>
</tbody>
</table>
<p>А это то, что я руками за пару дней насобирал</p>
<table style="WIDTH: 149pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=198 border=0 x:str>
<colgroup><col style="WIDTH: 101pt; mso-width-source: userset; mso-width-alt: 4900" width=134><col style="WIDTH: 48pt" width=64><br />
<tbody>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 101pt; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" width=134 height=17><strong><font face=Verdana size=2>struts</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext 0.5pt solid; BORDER-LEFT: windowtext; WIDTH: 48pt; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right width=64 x:num><font face=Arial size=2>10.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>Oracle</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>8.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>UML (Must Have)</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>6.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>ejb</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>6.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17 x:str="spring "><strong><font face=Verdana><font size=2>spring<span style="mso-spacerun: yes">&nbsp;</span></font></font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>6.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>weblogic</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>5.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>javascript</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>4.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>websphere</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>3.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>SQL</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>2.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jms MQ?</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>2.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>hibernate</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>2.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>mssql/tsql</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>1.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>ajax</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>1.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jms</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>1.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>mysql</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>1.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>SOAP</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>1.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jboss</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>1.00</font></td>
</tr>
<tr style="HEIGHT: 12.75pt" height=17>
<td class=xl24 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" height=17><strong><font face=Verdana size=2>jsf</font></strong></td>
<td class=xl25 style="BORDER-RIGHT: windowtext 0.5pt solid; BORDER-TOP: windowtext; BORDER-LEFT: windowtext; BORDER-BOTTOM: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent" align=right x:num><font face=Arial size=2>1.00</font></td>
</tr>
</tbody>
</table>
<p></lj-cut></p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=344" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/12/%d1%80%d1%8b%d0%bd%d0%be%d0%ba-%d1%82%d1%80%d1%83%d0%b4%d0%b0-it-java-%d0%b2-%d1%82%d0%be%d1%80%d0%be%d0%bd%d1%82%d0%be/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java:LiveJournal API:ru_java</title>
		<link>http://www.katkovonline.com/2006/11/javalivejournal-apiru_java/</link>
		<comments>http://www.katkovonline.com/2006/11/javalivejournal-apiru_java/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 07:50:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=336</guid>
		<description><![CDATA[Люди из одинаковых городов представлены одним маркером. 
География&#160;ru_java
&#160;
 ]]></description>
			<content:encoded><![CDATA[<p><img height=258 alt="63,41 КБ" src="http://www.ljplus.ru/img/k/a/katren/ru_java-friends-google-map.gif" width=500 align=left>Люди из одинаковых городов представлены одним маркером. </p>
<p>География&nbsp;<a href="http://community.livejournal.com/ru_java/friends/">ru_java</a></p>
<div style="CLEAR: both">&nbsp;</div>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=336" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/javalivejournal-apiru_java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java:LiveJournal API</title>
		<link>http://www.katkovonline.com/2006/11/javalivejournal-api/</link>
		<comments>http://www.katkovonline.com/2006/11/javalivejournal-api/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 07:43:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=335</guid>
		<description><![CDATA[Продолжаю играться с Java API для LiveJournal который сам и пишу. Вот одно из применений.
Люди из одинаковых городов представлены одним маркером.
География моих френдов так сказать.
&#160;
 ]]></description>
			<content:encoded><![CDATA[<p><img height=292 alt="65,46 КБ" src="http://www.ljplus.ru/img/k/a/katren/katren-friends-google-map.gif" width=500 align=left>Продолжаю играться с Java API для LiveJournal который сам и пишу. Вот одно из применений.<br />
Люди из одинаковых городов представлены одним маркером.</p>
<p>География моих френдов так сказать.</p>
<div style="CLEAR: both">&nbsp;</div>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=335" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/javalivejournal-api/feed/</wfw:commentRss>
		</item>
		<item>
		<title>unicode</title>
		<link>http://www.katkovonline.com/2006/11/unicode/</link>
		<comments>http://www.katkovonline.com/2006/11/unicode/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 20:08:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=332</guid>
		<description><![CDATA[В общей сложности, убил 8 часов на борьбу с юникодом, в Java, Ant, MySQL JDBC, MySQL4, MySQL5. Поборол в конце концов.  Но что забавно - всё началось с юзера под названием &#8220;Pruszcz Gdański&#8221;.
Шлю тебе, неизвестный Принц из Гданська, горячий привет!  Pruszcz Gdański
 ]]></description>
			<content:encoded><![CDATA[<p>В общей сложности, убил 8 часов на борьбу с юникодом, в Java, Ant, MySQL JDBC, MySQL4, MySQL5. Поборол в конце концов. <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Но что забавно - всё началось с юзера под названием &#8220;Pruszcz Gdański&#8221;.<br />
Шлю тебе, неизвестный Принц из Гданська, горячий привет! <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Pruszcz Gdański</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=332" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/unicode/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java:Trails</title>
		<link>http://www.katkovonline.com/2006/11/javatrails/</link>
		<comments>http://www.katkovonline.com/2006/11/javatrails/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 20:01:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=331</guid>
		<description><![CDATA[Вот  тут живет проект который якобы &#8221; по мэппингам или по классам автоматом сделает WEB-интерфейс для редактирования, добавления, удаления итд.&#8221;
Надо посмотреть&#8230;
 ]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.trailsframework.org">Вот  тут</a> живет проект который якобы &#8221; по мэппингам или по классам автоматом сделает WEB-интерфейс для редактирования, добавления, удаления итд.&#8221;<br />
Надо посмотреть&#8230;</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=331" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/javatrails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java: livejournal API</title>
		<link>http://www.katkovonline.com/2006/11/java-livejournal-api/</link>
		<comments>http://www.katkovonline.com/2006/11/java-livejournal-api/#comments</comments>
		<pubDate>Mon, 20 Nov 2006 16:39:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=330</guid>
		<description><![CDATA[Ещё раз убедился, что почти всё что может потребоваться человеку можно купить на ebay программисту можно найти на Sourceforge
Вот например LiveJournal Java API тут
 ]]></description>
			<content:encoded><![CDATA[<p>Ещё раз убедился, что почти всё что может потребоваться <strike>человеку можно купить на <a href="http://www.ebay.com">ebay</a></strike> программисту можно найти на <a href="http://sourceforge.net">Sourceforge</a><br />
Вот например LiveJournal Java API <a href="http://sourceforge.net/projects/ljwindow">тут</a></p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=330" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/java-livejournal-api/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java: Xalan</title>
		<link>http://www.katkovonline.com/2006/11/java-xalan/</link>
		<comments>http://www.katkovonline.com/2006/11/java-xalan/#comments</comments>
		<pubDate>Thu, 16 Nov 2006 17:19:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=327</guid>
		<description><![CDATA[Справедливость восторжествовала, как всегда впрочем. Намедни&#160;господин
alekro&#160;
совершенно справедливо указал,&#160;что зря я не люблю встроенную имплементацию&#160;JAXP&#160;в 1.4&#160;и, &#160;что Xalan уже включен в J2SE 1.4, а я просто готовить его не умею. И действительно как оказалось, Xalan содержит классы для XPath, только они называются по другому и вообще всё немножко не так, как в JDOM, и работает медленее. [...]]]></description>
			<content:encoded><![CDATA[<p>Справедливость восторжествовала, как всегда впрочем. Намедни&nbsp;господин
<div class="ljuser"><a href="http://alekro.livejournal.com/profile"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; VERTICAL-ALIGN: bottom; BORDER-RIGHT-WIDTH: 0px" height="17" alt="[info]" width="17" src="http://stat.livejournal.com/img/userinfo.gif" /></a><a href="http://alekro.livejournal.com/"><b>alekro</b></a>&nbsp;</div>
<p>совершенно справедливо указал,&nbsp;что зря я не люблю встроенную имплементацию&nbsp;JAXP&nbsp;в 1.4&nbsp;и, &nbsp;что Xalan уже включен в J2SE 1.4, а я просто готовить его не умею. И действительно как оказалось, Xalan содержит классы для XPath, только они называются по другому и вообще всё немножко не так, как в JDOM, и работает медленее. Зато никаких новый jar-ов не надо.</p>
<div class="ljcut" text="Читать код">
<p>Встроенный Xalan (код после оптимизации по скорости с прекомпиленными выражениями)&nbsp;:</p>
<pre style="BORDER-RIGHT: #000000 0.01mm solid; PADDING-RIGHT: 4px; BORDER-TOP: #000000 0.01mm solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #000000 0.01mm solid; LINE-HEIGHT: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #000000 0.01mm solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: #ffffff"><span style="FONT-WEIGHT: bold; COLOR: #660e7a; BACKGROUND-COLOR: #ffffff">minusOneExpression </span><span style="BACKGROUND-COLOR: #ffffff">= </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">new</span><span style="BACKGROUND-COLOR: #ffffff"> XPath("<span style="FONT-WEIGHT: bold; COLOR: #008000; BACKGROUND-COLOR: #ffffff"><a>/game/principal/@noBid='true'</a>"</span>, </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">null</span><span style="BACKGROUND-COLOR: #ffffff">, </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">null</span><span style="BACKGROUND-COLOR: #ffffff">, XPath.</span><span style="FONT-WEIGHT: bold; COLOR: #660e7a; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">SELECT)</span><span style="BACKGROUND-COLOR: #ffffff">;
XObject containsLateBid = minusOneExpression.execute(</span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">new</span><span style="BACKGROUND-COLOR: #ffffff"> XPathContext(), doc.getFirstChild(), </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">null</span><span style="BACKGROUND-COLOR: #ffffff">);
containsLateBid.bool()</span></pre>
<p>JDom:
<pre style="BORDER-RIGHT: #000000 0.01mm solid; PADDING-RIGHT: 4px; BORDER-TOP: #000000 0.01mm solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #000000 0.01mm solid; LINE-HEIGHT: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #000000 0.01mm solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: #ffffff"><span style="FONT-WEIGHT: bold; COLOR: #660e7a; BACKGROUND-COLOR: #ffffff">noBidExpression </span><span style="BACKGROUND-COLOR: #ffffff">= XPath.newInstance("</span><span style="FONT-WEIGHT: bold; COLOR: #660e7a; BACKGROUND-COLOR: #ffffff"><span style="FONT-WEIGHT: bold; COLOR: #008000; BACKGROUND-COLOR: #ffffff"><a>/game/principal/@noBid='true'</a>"</span>)</span><span style="BACKGROUND-COLOR: #ffffff">;
Boolean result = (Boolean) </span><span style="FONT-WEIGHT: bold; COLOR: #660e7a; BACKGROUND-COLOR: #ffffff">noBidExpression.</span><span style="BACKGROUND-COLOR: #ffffff">selectSingleNode(doc);
</span><span style="BACKGROUND-COLOR: #ffffff">result.booleanValue()</span></pre>
<p>Следует ли говорить, что в 1.5 всё ещё более по третьему? <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <br /><!--EndFragment--><br />Sun по этому поводу <a href="http://java.sun.com/j2se/1.5.0/docs/guide/xml/jaxp/JAXP-Compatibility_150.html">пишет</a> следующее:</p>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><p>&#8220;&#8230;In J2SE 1.4, the fact that JAXP was built into the Java platform was a mixed blessing. On the one hand, an application could rely on that fact that it was there. On the other, most applications needed features and bug fixes that were available in later versions. But adding new libarires had no effect, because internal classes always take precedence over the classpath&#8230;&#8221; </p></blockquote>
<div>&nbsp;</div>
</div>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=327" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/java-xalan/feed/</wfw:commentRss>
		</item>
		<item>
		<title>java:xml</title>
		<link>http://www.katkovonline.com/2006/11/javaxml/</link>
		<comments>http://www.katkovonline.com/2006/11/javaxml/#comments</comments>
		<pubDate>Tue, 14 Nov 2006 17:15:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=326</guid>
		<description><![CDATA[Что то с памятью моей стало&#8230;
Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4
 ]]></description>
			<content:encoded><![CDATA[<p>Что то с памятью моей стало&#8230;<br />
Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4 Я больше не буду использовать JAXP в 1.4</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=326" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/javaxml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java: конечные автоматы</title>
		<link>http://www.katkovonline.com/2006/11/java-%d0%ba%d0%be%d0%bd%d0%b5%d1%87%d0%bd%d1%8b%d0%b5-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d1%8b/</link>
		<comments>http://www.katkovonline.com/2006/11/java-%d0%ba%d0%be%d0%bd%d0%b5%d1%87%d0%bd%d1%8b%d0%b5-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d1%8b/#comments</comments>
		<pubDate>Fri, 10 Nov 2006 22:36:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=322</guid>
		<description><![CDATA[Сегодня сделал такую простую машину состояний, так вроде оно  называется. Что называется, попробуйте немножко лиспа  Зачем это нужно - если есть набор  правил, и нужно согласно с этими правилами что-то делать то либо нужно писать многоуровневый  IF-ELSE-IF-ELSE либо сделать FSM.
  Многоэтажные конструкции IF-ELSE-IF-ELSE просто писать, но сложно читать. И упаси [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня сделал такую простую машину состояний, так вроде оно  называется. Что называется, попробуйте немножко лиспа <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Зачем это нужно - если есть набор  правил, и нужно согласно с этими правилами что-то делать то либо нужно писать многоуровневый  IF-ELSE-IF-ELSE либо сделать FSM.<lj-cut text="Читать дальше с картинками">
<div style="FLOAT: left"><img height="801" alt="" hspace="15"  width="337" align="left" vspace="15" src="http://www.ljplus.ru/img/k/a/katren/chart.gif" />  Многоэтажные конструкции IF-ELSE-IF-ELSE просто писать, но сложно читать. И упаси боже через  неделю придется покопаться в правилах. FSM легко определить и легко потом читать изменять, но  нужен тот собственный черный ящик который будет правила исполнять. Кстати по правилам легко  генерировать картинки (слева), ещё более упрощая понимание. Вычленил свой код а крохотную  библиотечку, сначала думал может статейку какую написать простенькую, а сейчас уже остыл, может  и не надо это никому.</div>
<p></p>
<div style="FLOAT: left">
Вот собственно код который поясняет эта диаграмма<br/><br />
Вместо &#8220;мяса&#8221; реализации логики тут везде null</p>
<pre style="line-height: 100%;font-family:monospace;background-color:#ffffff;  border-width:0.01mm; border-color:#000000; border-style:solid; padding:4px;"><span  style="background-color:#ffffff;">        Node countTimeOutStatementNode = </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">new</span><span  style="background-color:#ffffff;"> StatementNodeAdaptor(</span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countTimeout"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"orderCheck"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">null</span><span  style="background-color:#ffffff;">);
        Node countOrderFailureStatementNode = </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">new</span><span  style="background-color:#ffffff;"> StatementNodeAdaptor(</span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countOrderFailure"</span><spa n style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countTotal"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">null</span><span  style="background-color:#ffffff;">);
        Node countTotalStatementNode = </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">new</span><span  style="background-color:#ffffff;"> StatementNodeAdaptor(</span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countTotal"</span><span  style="background-color:#ffffff;">, RuleProcessor.</span><span  style="color:#660e7a;background-color:#ffffff;font-weight:bold;font-style:italic;">EndNode.</sp an><span style="background-color:#ffffff;">getName(), </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">null</span><span  style="background-color:#ffffff;">);
        Node countOKStatementNode = </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">new</span><span  style="background-color:#ffffff;"> StatementNodeAdaptor(</span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countOK"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countTotal"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">null</span><span  style="background-color:#ffffff;">);

        Node timeOutCheckNode = </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">new</span><span  style="background-color:#ffffff;"> CheckNodeAdaptor(</span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"timeOutCheck"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countTimeout"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"notOrderCheck"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">null</span><span  style="background-color:#ffffff;">);
        Node orderCheckNode = </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">new</span><span  style="background-color:#ffffff;"> CheckNodeAdaptor(</span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"orderCheck"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countOrderFailure"</span><spa n style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countTotal"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">null</span><span  style="background-color:#ffffff;">);
        Node notOrderCheckNode = </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">new</span><span  style="background-color:#ffffff;"> CheckNodeAdaptor(</span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"notOrderCheck"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countOK"</span><span  style="background-color:#ffffff;">, </span><span  style="color:#008000;background-color:#ffffff;font-weight:bold;">"countOrderFailure"</span><spa n style="background-color:#ffffff;">, </span><span  style="color:#000080;background-color:#ffffff;font-weight:bold;">null</span><span  style="background-color:#ffffff;">);
</span></pre>
</div>
<p></lj-cut></p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=322" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/java-%d0%ba%d0%be%d0%bd%d0%b5%d1%87%d0%bd%d1%8b%d0%b5-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d1%8b/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java:Люди через призму их слов</title>
		<link>http://www.katkovonline.com/2006/11/java%d0%bb%d1%8e%d0%b4%d0%b8-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%bf%d1%80%d0%b8%d0%b7%d0%bc%d1%83-%d0%b8%d1%85-%d1%81%d0%bb%d0%be%d0%b2/</link>
		<comments>http://www.katkovonline.com/2006/11/java%d0%bb%d1%8e%d0%b4%d0%b8-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%bf%d1%80%d0%b8%d0%b7%d0%bc%d1%83-%d0%b8%d1%85-%d1%81%d0%bb%d0%be%d0%b2/#comments</comments>
		<pubDate>Thu, 09 Nov 2006 16:02:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=320</guid>
		<description><![CDATA[Интересная/забавная идея: автоматически анализировать блог человека что бы понять что он за человек. Как полезный побочный эффект можно сравнивать измерения за последовательные временные интервалы и смотреть как человек меняется. Конечно, это не точный психологический портрет но всё же, всё же&#8230;
читать и смотреть здесь
 ]]></description>
			<content:encoded><![CDATA[<p>Интересная/забавная идея: автоматически анализировать блог человека что бы понять что он за человек. Как полезный побочный эффект можно сравнивать измерения за последовательные временные интервалы и смотреть как человек меняется. Конечно, это не точный психологический портрет но всё же, всё же&#8230;<br />
<a href="http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=LookingAtPeopleThroughTheirWords">читать и смотреть здесь</a></p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=320" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/java%d0%bb%d1%8e%d0%b4%d0%b8-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%bf%d1%80%d0%b8%d0%b7%d0%bc%d1%83-%d0%b8%d1%85-%d1%81%d0%bb%d0%be%d0%b2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java: Fuzzy String Matching</title>
		<link>http://www.katkovonline.com/2006/11/java-fuzzy-string-matching/</link>
		<comments>http://www.katkovonline.com/2006/11/java-fuzzy-string-matching/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 18:17:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=317</guid>
		<description><![CDATA[Nice and simple code to do Fuzzy String Matching by Simon White

import java.util.ArrayList;

public class LetterPairSimilarity {
    /**
     * @return lexical similarity value in the range [0,1]
     */
    public static double compareStrings(String str1, String str2) {
       [...]]]></description>
			<content:encoded><![CDATA[<p>Nice and simple code to do Fuzzy String Matching by <a href="http://www.devarticles.com/c/a/Development-Cycles/How-to-Strike-a-Match/"><span class="content_rating">Simon White</span><br /></a></p>
<div class="ljcut" text="source code">
<pre style="BORDER-RIGHT: #000000 0.01mm solid; PADDING-RIGHT: 4px; BORDER-TOP: #000000 0.01mm solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: #000000 0.01mm solid; LINE-HEIGHT: 100%; PADDING-TOP: 4px; BORDER-BOTTOM: #000000 0.01mm solid; FONT-FAMILY: monospace; BACKGROUND-COLOR: #ffffff"><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">import</span><span style="BACKGROUND-COLOR: #ffffff"> java.util.ArrayList;

</span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">public</span><span style="BACKGROUND-COLOR: #ffffff"> </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">class</span><span style="BACKGROUND-COLOR: #ffffff"> LetterPairSimilarity {
    </span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">/**
     * </span><span style="COLOR: #808080; TEXT-DECORATION: underline"><span style="FONT-WEIGHT: bold; COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">@return</span></span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff"> lexical similarity value in the range [0,1]
     */
</span><span style="BACKGROUND-COLOR: #ffffff">    </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">public</span><span style="BACKGROUND-COLOR: #ffffff"> </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">static</span><span style="BACKGROUND-COLOR: #ffffff"> </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">double</span><span style="BACKGROUND-COLOR: #ffffff"> compareStrings(String str1, String str2) {
        ArrayList pairs1 = </span><span style="FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">wordLetterPairs(</span><span style="BACKGROUND-COLOR: #ffffff">str1.toUpperCase());
        ArrayList pairs2 = </span><span style="FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">wordLetterPairs(</span><span style="BACKGROUND-COLOR: #ffffff">str2.toUpperCase());
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> intersection = </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">0</span><span style="BACKGROUND-COLOR: #ffffff">;
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> union = pairs1.size() + pairs2.size();
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">for</span><span style="BACKGROUND-COLOR: #ffffff"> (</span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> i = </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">0</span><span style="BACKGROUND-COLOR: #ffffff">; i &lt; pairs1.size(); i++) {
            Object pair1 = pairs1.get(i);
            </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">for</span><span style="BACKGROUND-COLOR: #ffffff"> (</span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> j = </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">0</span><span style="BACKGROUND-COLOR: #ffffff">; j &lt; pairs2.size(); j++) {
                Object pair2 = pairs2.get(j);
                </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">if</span><span style="BACKGROUND-COLOR: #ffffff"> (pair1.equals(pair2)) {
                    intersection++;
                    pairs2.remove(j);
                    </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">break</span><span style="BACKGROUND-COLOR: #ffffff">;
                }
            }
        }
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">return</span><span style="BACKGROUND-COLOR: #ffffff"> (</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">2.0</span><span style="BACKGROUND-COLOR: #ffffff"> * intersection) / union;
    }

    </span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">/**
     * </span><span style="COLOR: #808080; TEXT-DECORATION: underline"><span style="FONT-WEIGHT: bold; COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">@return</span></span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff"> an ArrayList of 2-character Strings.
     */
</span><span style="BACKGROUND-COLOR: #ffffff">    </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">private</span><span style="BACKGROUND-COLOR: #ffffff"> </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">static</span><span style="BACKGROUND-COLOR: #ffffff"> ArrayList wordLetterPairs(String str) {
        ArrayList allPairs = </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">new</span><span style="BACKGROUND-COLOR: #ffffff"> ArrayList();
        </span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">// Tokenize the string and put the tokens/words into an array
</span><span style="BACKGROUND-COLOR: #ffffff">        String[] words = str.split(</span><span style="FONT-WEIGHT: bold; COLOR: #008000; BACKGROUND-COLOR: #ffffff">"s"</span><span style="BACKGROUND-COLOR: #ffffff">);
        </span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">// For each word
</span><span style="BACKGROUND-COLOR: #ffffff">        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">for</span><span style="BACKGROUND-COLOR: #ffffff"> (</span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> w = </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">0</span><span style="BACKGROUND-COLOR: #ffffff">; w &lt; words.</span><span style="FONT-WEIGHT: bold; COLOR: #660e7a; BACKGROUND-COLOR: #ffffff">length;</span><span style="BACKGROUND-COLOR: #ffffff"> w++) {
            </span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">// Find the pairs of characters
</span><span style="BACKGROUND-COLOR: #ffffff">            String[] pairsInWord = </span><span style="FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">letterPairs(</span><span style="BACKGROUND-COLOR: #ffffff">words[w]);
            </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">for</span><span style="BACKGROUND-COLOR: #ffffff"> (</span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> p = </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">0</span><span style="BACKGROUND-COLOR: #ffffff">; p &lt; pairsInWord.</span><span style="FONT-WEIGHT: bold; COLOR: #660e7a; BACKGROUND-COLOR: #ffffff">length;</span><span style="BACKGROUND-COLOR: #ffffff"> p++) {
                allPairs.add(pairsInWord[p]);
            }
        }
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">return</span><span style="BACKGROUND-COLOR: #ffffff"> allPairs;
    }

    </span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">/**
     * </span><span style="COLOR: #808080; TEXT-DECORATION: underline"><span style="FONT-WEIGHT: bold; COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff">@return</span></span><span style="COLOR: #808080; FONT-STYLE: italic; BACKGROUND-COLOR: #ffffff"> an array of adjacent letter pairs contained in the input string
     */
</span><span style="BACKGROUND-COLOR: #ffffff">    </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">private</span><span style="BACKGROUND-COLOR: #ffffff"> </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">static</span><span style="BACKGROUND-COLOR: #ffffff"> String[] letterPairs(String str) {
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> numPairs = str.length() - </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">1</span><span style="BACKGROUND-COLOR: #ffffff">;
        String[] pairs = </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">new</span><span style="BACKGROUND-COLOR: #ffffff"> String[numPairs];
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">for</span><span style="BACKGROUND-COLOR: #ffffff"> (</span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">int</span><span style="BACKGROUND-COLOR: #ffffff"> i = </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">0</span><span style="BACKGROUND-COLOR: #ffffff">; i &lt; numPairs; i++) {
            pairs[i] = str.substring(i, i + </span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #ffffff">2</span><span style="BACKGROUND-COLOR: #ffffff">);
        }
        </span><span style="FONT-WEIGHT: bold; COLOR: #000080; BACKGROUND-COLOR: #ffffff">return</span><span style="BACKGROUND-COLOR: #ffffff"> pairs;
    }
}
</span></pre>
<p><!--EndFragment--></div>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=317" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/java-fuzzy-string-matching/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java:Toronto JUG</title>
		<link>http://www.katkovonline.com/2006/11/javatoronto-jug/</link>
		<comments>http://www.katkovonline.com/2006/11/javatoronto-jug/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 16:51:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=316</guid>
		<description><![CDATA[JUG notes:

The only reason to introduce DB cluster cache is to make that cluster error prone, otherwise we should not care
InfoQ managed to build new UI for JForum
concept of lazy authorization:
to create a user record for each new customer who enters website and put a special info into cookies. So next time same user shows [...]]]></description>
			<content:encoded><![CDATA[<p>JUG notes:</p>
<ul>
<li>The only reason to introduce DB cluster cache is to make that cluster error prone, otherwise we should not care</li>
<li>InfoQ managed to build new UI for JForum</li>
<li>concept of lazy authorization:<br />
to create a user record for each new customer who enters website and put a special info into cookies. So next time same user shows up same DB record will be used. Whenever that half-registered users logs out a new &#8220;logged out&#8221; DB record is created making a pair. So that half-registered user can log in and log our switching between records inside that pair. When that user decides register himself the old &#8220;logged in&#8221; record is being populated with data.</li>
<li>Magnolia as a content replication system</li>
<li>DWR brings/makes accessible Java classes to the JS client</li>
<li>Some cool AJAX engine - Prototype</li>
<li>Floyd Marinescu wrote some allegedly nice books</li>
</ul>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=316" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/11/javatoronto-jug/feed/</wfw:commentRss>
		</item>
		<item>
		<title>java:httpunit</title>
		<link>http://www.katkovonline.com/2006/10/javahttpunit/</link>
		<comments>http://www.katkovonline.com/2006/10/javahttpunit/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 20:31:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=299</guid>
		<description><![CDATA[Супер идея дня! От создателей httpUnit! Сделать, блин, package scope run-time exception и его бросать. Exception который нельзя поймать! Вау!
 ]]></description>
			<content:encoded><![CDATA[<p>Супер идея дня! От создателей httpUnit! Сделать, блин, package scope run-time exception и его бросать. Exception который нельзя поймать! Вау!</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=299" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/10/javahttpunit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>java: the futility of struts</title>
		<link>http://www.katkovonline.com/2006/10/java-the-futility-of-struts/</link>
		<comments>http://www.katkovonline.com/2006/10/java-the-futility-of-struts/#comments</comments>
		<pubDate>Thu, 19 Oct 2006 19:56:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=292</guid>
		<description><![CDATA[Интересная точка зрения
&#8230;How is the MVC framework that Struts provides, different from the one that the servlet container provides? 
I always tought of a servlet as the &#8216;beginning&#8217; of my application so I saw a need for a framework like Struts. But if you think of the servlet container, as the &#8216;beginning&#8217; of the application, [...]]]></description>
			<content:encoded><![CDATA[<p>Интересная точка зрения<br />
<i>&#8230;How is the MVC framework that Struts provides, different from the one that the servlet container provides? </p>
<p>I always tought of a servlet as the &#8216;beginning&#8217; of my application so I saw a need for a framework like Struts. But if you think of the servlet container, as the &#8216;beginning&#8217; of the application, the servlet becomes nothing more than an equivalent of a Struts Action class. ActionServlet does the same things the container does. It reads its configuration file and delegates processing to configured actions. The container reads its configuration file and delegates processing to configured servlets. If one thinks of a Servlet as an Action then everything seems redundant. The container is basically Struts minus some utility classes. interesting! </i></p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=292" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/10/java-the-futility-of-struts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>To check, or not to check?</title>
		<link>http://www.katkovonline.com/2006/10/to-check-or-not-to-check/</link>
		<comments>http://www.katkovonline.com/2006/10/to-check-or-not-to-check/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 20:16:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=275</guid>
		<description><![CDATA[Занимательная статья про Exceptions
http://www-128.ibm.com/developerworks/java/library/j-jtp05254.html
 ]]></description>
			<content:encoded><![CDATA[<p>Занимательная статья про Exceptions<br />
http://www-128.ibm.com/developerworks/java/library/j-jtp05254.html</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=275" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/10/to-check-or-not-to-check/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IntelliJIdea 6.0</title>
		<link>http://www.katkovonline.com/2006/10/intellijidea-60/</link>
		<comments>http://www.katkovonline.com/2006/10/intellijidea-60/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 06:18:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=269</guid>
		<description><![CDATA[Встроенный в IntelliJIdea 6.0 CodeCoverage не работает с Java младше 5.0 - вот же ж несчастье 
 ]]></description>
			<content:encoded><![CDATA[<p>Встроенный в IntelliJIdea 6.0 CodeCoverage не работает с Java младше 5.0 - вот же ж несчастье <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /></p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=269" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/10/intellijidea-60/feed/</wfw:commentRss>
		</item>
		<item>
		<title>optimism</title>
		<link>http://www.katkovonline.com/2006/08/optimism/</link>
		<comments>http://www.katkovonline.com/2006/08/optimism/#comments</comments>
		<pubDate>Thu, 10 Aug 2006 20:36:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=252</guid>
		<description><![CDATA[Цитата:
How many times have you looked at the Javadoc for a class and wondered whether it was thread-safe?[8][8] If you&#8217;ve never wondered this, we admire your optimism.
 ]]></description>
			<content:encoded><![CDATA[<p>Цитата:</p>
<p>How many times have you looked at the Javadoc for a class and wondered whether it was thread-safe?<sup>[8]</sup><br /><a name="ch04fn08"><sup>[8]</sup></a> If you&#8217;ve never wondered this, we admire your optimism.</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=252" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/08/optimism/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java Concurrency in Practice</title>
		<link>http://www.katkovonline.com/2006/08/java-concurrency-in-practice/</link>
		<comments>http://www.katkovonline.com/2006/08/java-concurrency-in-practice/#comments</comments>
		<pubDate>Thu, 10 Aug 2006 18:07:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=250</guid>
		<description><![CDATA[Который день уже с перерывами читаю эту книжку, не так чтобы увлекательно написанно, но много интересного.
 ]]></description>
			<content:encoded><![CDATA[<p><img height="103" alt="Book Cover" hspace="10" width="78" align="left" vspace="5" border="0" src="http://www.ljplus.ru/img/k/a/katren/JavaConcurrencyInPractice.jpg" />Который день уже с перерывами читаю эту книжку, не так чтобы увлекательно написанно, но много интересного.</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=250" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/08/java-concurrency-in-practice/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Toronto Java Group</title>
		<link>http://www.katkovonline.com/2006/03/toronto-java-group/</link>
		<comments>http://www.katkovonline.com/2006/03/toronto-java-group/#comments</comments>
		<pubDate>Fri, 10 Mar 2006 04:12:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=173</guid>
		<description><![CDATA[Ходил на встречу Торонтовского Java сообщества. Очень познавательно. Люди все очень прилично выглядят и производят впечатление серьезных специалистов. Доклад был про &#8220;что такое Maven и как с ним бороться&#8221; Создатели Maven и рассказывали. А главная идея - давайте не будет давать людям выдумывать новые и замечательные пути собрать проект антом. Пусть энергию тратят на более [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ljplus.ru/img/k/a/katren/java.JPG" target=_blank><img height=150 src="http://www.ljplus.ru/img/k/a/katren/th_java.JPG" width=200 align=left vspace=5 border=0></a>Ходил на встречу Торонтовского Java сообщества. Очень познавательно. Люди все очень прилично выглядят и производят впечатление серьезных специалистов. Доклад был про &#8220;что такое Maven и как с ним бороться&#8221; Создатели Maven и рассказывали. А главная идея - давайте не будет давать людям выдумывать новые и замечательные пути собрать проект антом. Пусть энергию тратят на более полезные вещи.<br />
Жалко пропустил прошлую встречу - создатели Spring про него рассказывали. Говорят народу набилось - в проходах стояли.<br />
Sun Microsystems прислал 4 ящика всякого барахла. Футболки, ручки, книжки и Дюки.<br />
Пошопился&#8230; <img src='http://www.katkovonline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=173" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2006/03/toronto-java-group/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Eclipse</title>
		<link>http://www.katkovonline.com/2005/11/eclipse/</link>
		<comments>http://www.katkovonline.com/2005/11/eclipse/#comments</comments>
		<pubDate>Sat, 26 Nov 2005 02:20:00 +0000</pubDate>
		<dc:creator>Igor Katkov</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.katkovonline.com/?p=106</guid>
		<description><![CDATA[В качестве эпиграфа
Дневник программиста:
Понедельник: Поставил JBuilder- кайф!
Вторник: Поставил Intellij IDEA - вечный кайф!
Среда: Потрахался с Eclipse - слабое подобие левой руки!
Поставил сегодня Eclipse - после IDEA кажется ужасным, все те маленькие штучки которы мне облегчали жизнь там тут отсутствуют.
Знающие люди говорят, что нужно плагинов наставить.
Наставил.
Colorer сломал там внутрях что-то и Eclipse перестал узнавать файлы *.java
Пока [...]]]></description>
			<content:encoded><![CDATA[<p>В качестве эпиграфа</p>
<p><font size=-2><em>Дневник программиста:<br />
Понедельник: Поставил JBuilder- кайф!<br />
Вторник: Поставил Intellij IDEA - вечный кайф!<br />
Среда: Потрахался с Eclipse - слабое подобие левой руки!</em></font></p>
<p>Поставил сегодня Eclipse - после IDEA кажется ужасным, все те маленькие штучки которы мне облегчали жизнь там тут отсутствуют.<br />
Знающие люди говорят, что нужно плагинов наставить.<br />
Наставил.<br />
Colorer сломал там внутрях что-то и Eclipse перестал узнавать файлы *.java<br />
Пока нашел кто виноват, пока снес, мама дорогая&#8230;<br />
Неужели $400 USD не стоят избавления от всего этого?</p>
<p>Качаю MyEclipse всего $30 USD в год, может лучше станет&#8230;</p>
 <img src="http://www.katkovonline.com/wp-content/plugins/feed-statistics.php?view=1&post_id=106" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.katkovonline.com/2005/11/eclipse/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
