<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-18273211</atom:id><lastBuildDate>Thu, 12 Jan 2012 20:32:25 +0000</lastBuildDate><category>teamwork</category><category>virtualization</category><category>trails</category><category>web.development</category><category>javascript</category><category>erlang</category><category>books</category><category>magic</category><category>maven</category><category>unit-testing</category><category>events</category><category>graphs</category><category>social</category><category>wow</category><category>protocols</category><category>http</category><category>threading</category><category>academia</category><category>classloader</category><category>frameworks</category><category>spring</category><category>internet</category><category>remoting</category><category>sports</category><category>windows</category><category>freelance</category><category>cmd</category><category>7z</category><category>rant</category><category>hardware</category><category>opensourse</category><category>humor</category><category>linux</category><category>scripting</category><category>hack</category><category>math</category><category>distributed</category><category>continuous.integration</category><category>scala</category><category>jQuery</category><category>genetics</category><category>liberalism</category><category>folklore</category><category>cv</category><category>jls</category><category>java</category><category>msdn-aa</category><category>patterns</category><category>process</category><category>os</category><category>security</category><category>howto</category><category>peering</category><category>iasa</category><category>streaming</category><category>grids</category><category>bash</category><category>cdn</category><category>gui</category><category>dotfile</category><category>versioning</category><category>building</category><category>tcp/ip</category><category>resume</category><category>interview</category><category>generics</category><category>persistence</category><category>design</category><category>middleware</category><category>profiling</category><category>svn</category><category>ioc</category><title>Anton's Development Memos and Rants</title><description>Clustering, web development and general middleware gotchas</description><link>http://java.akraievoy.org/</link><managingEditor>noreply@blogger.com (Anton S. Kraievoy)</managingEditor><generator>Blogger</generator><openSearch:totalResults>164</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/java-akraievoy-org" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="java-akraievoy-org" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-4697449593136121139</guid><pubDate>Sat, 05 Nov 2011 10:22:00 +0000</pubDate><atom:updated>2011-11-05T12:22:52.371+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frameworks</category><category domain="http://www.blogger.com/atom/ns#">opensourse</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">erlang</category><category domain="http://www.blogger.com/atom/ns#">humor</category><title>org.akraievoy.couch</title><description>&lt;p&gt;&lt;a href="https://github.com/akraievoy/org_akraievoy_couch/tree/master/src/main/java/org/akraievoy/couch" target="_self"&gt;Simplistic Java persistence for CouchDB&lt;/a&gt;. The root persistable entity is named Squab. Relaxing, heh.&lt;/p&gt;&lt;p&gt;&lt;a href="https://github.com/akraievoy/mvn_repo/tree/master/releases/org/akraievoy/couch/1.3.2" target="_blank"&gt;Binary/source jars&lt;/a&gt; have been posted to my semi-private maven repo.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-4697449593136121139?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/11/orgakraievoycouch.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-3609753082402224466</guid><pubDate>Fri, 07 Oct 2011 14:23:00 +0000</pubDate><atom:updated>2011-10-07T17:23:01.002+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rant</category><category domain="http://www.blogger.com/atom/ns#">bash</category><category domain="http://www.blogger.com/atom/ns#">humor</category><category domain="http://www.blogger.com/atom/ns#">security</category><category domain="http://www.blogger.com/atom/ns#">folklore</category><title>Don't ever memorize passwords after 6PM</title><description>&lt;p&gt;I've lost several evenings of configuration tweaks and chat logs after getting into this with my upsized truecrypt volume couple of months ago. I've created a password for the volume, rebooted, entered the password once and was flipping my netbook in-out of sleep for couple of weeks. And then I've rebooted once again and... see below for details. The next password was shorter, but I managed to forget it too, was bruteforcing it for couple of nights with &lt;a href="https://gist.github.com/1262986" target="_blank"&gt;simple bash script&lt;/a&gt;.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img style="vertical-align: middle; border: 0;" src="http://imgs.xkcd.com/comics/password_strength.png" alt="Password Strength XKCD" width="740" height="601" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-3609753082402224466?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/10/don-ever-memorize-passwords-after-6pm.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-4014420140903705021</guid><pubDate>Wed, 05 Oct 2011 08:33:00 +0000</pubDate><atom:updated>2011-10-05T11:33:00.109+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">academia</category><category domain="http://www.blogger.com/atom/ns#">books</category><category domain="http://www.blogger.com/atom/ns#">events</category><title>Free Stanford online courses and related</title><description>&lt;p&gt;Free Stanford online courses: Enrollment deadline is the next Monday or so.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Database class here: http://db-class.com/&lt;/li&gt;&lt;li&gt;Machine Learning class here: http://ml-class.org/&lt;/li&gt;&lt;li&gt;AI class here: http://www.ai-class.com/&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Also there's some extra non-interactive resources for some of &lt;a href="http://see.stanford.edu/see/courses.aspx" target="_blank"&gt;courses taught at Stanford Engineering&lt;/a&gt;. Which might be of some interest. Particularly that &lt;a href="http://itunes.apple.com/itunes-u/iphone-application-development/id384233225#ls=1" target="_blank"&gt;pack of videos for iPhone app development course&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;One extra Google hint: a &lt;a href="http://www.openculture.com/freeonlinecourses" target="_blank"&gt;page which links to some 400 of free online courses&lt;/a&gt;. Definitely, time is now the most precious resource of all. :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-4014420140903705021?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/10/free-stanford-online-courses-and.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-2361166816369742728</guid><pubDate>Thu, 22 Sep 2011 20:46:00 +0000</pubDate><atom:updated>2011-09-22T23:48:32.068+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iasa</category><category domain="http://www.blogger.com/atom/ns#">academia</category><category domain="http://www.blogger.com/atom/ns#">msdn-aa</category><title>MSDN AA</title><description>&lt;p&gt;Всех, кто обратился ко мне в почте, я добавил в систему. Если вы обращались и получили от меня письмо, но не получили приглашение от системы - дайте мне знать, будем смотреть в ошибки с импортом.&lt;/p&gt;&lt;p&gt;Систему дистрибуции значительно обновили, потому я пока не могу точно сказать по какой схеме распространяются продукты. По идее можно сгрузить дистрибутивы и бесплатно получить ключи ко всем продуктам (в зависимости от группы). Замечу, что количество ключей ограничено: при выдаче дополнительных ключей одному человеку предыдущие инвалидируются.&lt;/p&gt;&lt;p&gt;Сотрудники кафедры ММСА находятся либо в группе lab installers, либо в группе faculty/staff. Если вам (сотрудникам) нужны какие-либо продукты из тех к которым у вас нет доступа - дайте мне знать.&lt;/p&gt;&lt;p&gt;Я пока что не знаю будет ли студентам доступны ключи к Win7 Ultimate и всем продуктам MS Office, скорее всего будет доступно отнюдь не все.&lt;/p&gt;&lt;p&gt;При регистрации в системе вводите реальные данные: имя, фамилию, группу. Также используйте для регистрации только личный почтовый адрес.&lt;strong&gt; Любые отклонения в этом вопросе караются банхаммером без всяких предупреждений. Также знайте, что при завершении обучения&amp;nbsp;вы не имеете&amp;nbsp;права&amp;nbsp;пользоваться полученными ключами и должны все деинсталлировать.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TODO&lt;/strong&gt;: EULA/fine print.&lt;/p&gt;&lt;p&gt;Связаться со мной по вопросам регистрации можно по адресу iasa @ akraievoy.org, желательно указать "MSDN AA" в заголовке письма.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-2361166816369742728?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/09/msdn-aa.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-2131435297627506274</guid><pubDate>Tue, 06 Sep 2011 20:50:00 +0000</pubDate><atom:updated>2011-09-07T00:51:07.743+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">teamwork</category><category domain="http://www.blogger.com/atom/ns#">wow</category><category domain="http://www.blogger.com/atom/ns#">humor</category><category domain="http://www.blogger.com/atom/ns#">continuous.integration</category><category domain="http://www.blogger.com/atom/ns#">folklore</category><title>Chuck Norris Plugin for Hudson : Evolved</title><description>&lt;div style="text-align: center;"&gt;&lt;object width="560" height="345"&gt;&lt;embed type="application/x-shockwave-flash" width="560" height="345" src="http://www.youtube.com/v/1EGk2rvZe8A?version=3&amp;amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;UPD&lt;/strong&gt;: no, Buzz did not scrape the embedding properly, so here's &lt;a href="http://youtu.be/1EGk2rvZe8A" target="_blank"&gt;the link&lt;/a&gt;. And, BTW, Hudson Chuck Norris plugin was described &lt;a href="https://wiki.jenkins-ci.org/display/JENKINS/ChuckNorris+Plugin" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-2131435297627506274?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/09/chuck-norris-plugin-for-hudson-evolved.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-3813629634618319066</guid><pubDate>Tue, 06 Sep 2011 07:05:00 +0000</pubDate><atom:updated>2011-09-06T20:26:49.390+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">web.development</category><title>My First Bookmarklet</title><description>&lt;p style="text-align: center;"&gt;&lt;a href="javascript:if(true){var doc=window.document; doc.getElementById(&amp;quot;sidebar-right&amp;quot;).style.display=&amp;quot;none&amp;quot;;doc.getElementById(&amp;quot;sidebar-left&amp;quot;).style.display=&amp;quot;none&amp;quot;;doc.getElementById(&amp;quot;main&amp;quot;).style.margin=0;doc.getElementById(&amp;quot;squeeze&amp;quot;).style.margin=0;}"&gt;Remove sidebars on ZeroHedge&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;UPD&lt;/strong&gt;: the same script may be enacted via Javascript Injector extension for Chrome.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-3813629634618319066?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/09/my-first-bookmarklet.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-2951221575615017022</guid><pubDate>Thu, 21 Jul 2011 05:30:00 +0000</pubDate><atom:updated>2011-07-20T21:01:51.107+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">interview</category><category domain="http://www.blogger.com/atom/ns#">profiling</category><category domain="http://www.blogger.com/atom/ns#">cv</category><title>Programmer Competence Matrix + Language profiling/popularity</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm" target="_blank"&gt;Programmer Competency Matrix&lt;/a&gt; allows you to estimate your current skillset, but won't give you any advice as to what to look into to boost it all up.&lt;br /&gt;
So for making a decision about&amp;nbsp;platform for&amp;nbsp;your side-project or pet-project: see the &lt;a href="http://shootout.alioth.debian.org/u32q/compare.php?lang=clojure" target="_blank"&gt;Computer Language Benchmarks Game&lt;/a&gt;. And then of course you'd likely want to look on &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_programming_languages" target="_blank"&gt;comparisons&lt;/a&gt; (&lt;a href="http://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" target="_blank"&gt;russian version&lt;/a&gt; is quite better at that for some reason). Some popularity indexes may be also helpful: &lt;a href="http://langpop.com/" target="_blank"&gt;langpop.com&lt;/a&gt;, &lt;a href="http://lang-index.sourceforge.net/"&gt;lang-index @ sourceforge&lt;/a&gt;, &lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;TIOBE index&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPD&lt;/b&gt;: another page with &lt;a href="http://www.opennet.ru/opennews/art.shtml?num=31114" target="_blank"&gt;language performance comparison&lt;/a&gt; (russian). A thought aside: there's no benchmark for green threads with in-process scheduling (which should look like load testing), where V8 and Erlang would shine.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-2951221575615017022?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/03/programmer-competence-matrix-language.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-5264232694905776579</guid><pubDate>Wed, 20 Jul 2011 19:31:00 +0000</pubDate><atom:updated>2011-07-20T22:44:51.026+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frameworks</category><category domain="http://www.blogger.com/atom/ns#">web.development</category><category domain="http://www.blogger.com/atom/ns#">erlang</category><category domain="http://www.blogger.com/atom/ns#">threading</category><category domain="http://www.blogger.com/atom/ns#">scala</category><title>Scala / Erlang / Node.JS</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.infoq.com/news/2008/06/scala-vs-erlang" target="_blank"&gt;The multicore crises: Scala vs. Erlang by Niclas Nilsson&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.planeterlang.org/en/planet/article/Erlang_vs._Scala/" target="_blank"&gt;Erlang vs. Scala by Yariv Sadan&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://chicagoboss.org/projects/chicagoboss/wiki/Comparison_of_Erlang_Web_Frameworks" target="_blank"&gt;Erlang webapp frameworks comparison by Evan Miller&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
I'd recommend this &lt;a href="http://learnyousomeerlang.com/" target="_blank"&gt;informal intro into Erlang&lt;/a&gt;. Was quite nice for me till the moment author got into building Finite State Automata upon OTP. The examples in that section were brain-melting and I definitely lost the thread of author's thought (either none or massive bunch were present there at the moment). Some of the pictures have quite nice humorous messages encoded in the alt, so hovering them relaxes you a bit here and there. Nice idea.&lt;br /&gt;
&lt;br /&gt;
And another trend worth checking. This&amp;nbsp;of course&amp;nbsp;is a gross oversimplification but the direction is more or less clear. Scala is not a programming language for Google, it's the theatre or something, so no Scala trend for you in there.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MLNTINEQgYU/Tict_WXaK6I/AAAAAAAAAYA/fhSTIqRXIdM/s1600/erlang_node_js_coffeescript.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://1.bp.blogspot.com/-MLNTINEQgYU/Tict_WXaK6I/AAAAAAAAAYA/fhSTIqRXIdM/s400/erlang_node_js_coffeescript.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
P.S. I have some extra links into realm of Erlang so stay tuned if you're interested.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-5264232694905776579?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/07/scalaerlangnodejs.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-MLNTINEQgYU/Tict_WXaK6I/AAAAAAAAAYA/fhSTIqRXIdM/s72-c/erlang_node_js_coffeescript.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-629144685744121516</guid><pubDate>Wed, 20 Jul 2011 17:50:00 +0000</pubDate><atom:updated>2011-07-20T20:50:22.983+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">academia</category><category domain="http://www.blogger.com/atom/ns#">books</category><title>The Case for Extensive Reading</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;blockquote dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;span lang="EN-GB"&gt;Most language teachers do not require their learners to read much. Instead, they consider extensive reading as somehow supportive, or supplemental and rarely they set fluent reading for homework. This chapter has argued that it is&amp;nbsp;&lt;i&gt;fundamental mistake&lt;/i&gt;&amp;nbsp;to consider sustained silent reading as supplemental, or optional. Extensive reading (or listening) is the&lt;i&gt;only&lt;/i&gt;&amp;nbsp;way in which learners can get access to language at their own comfort level, read something they want to read, at the pace they feel comfortable with, which will allow them to meet the language enough times to pick up a&amp;nbsp;&lt;i&gt;sense&lt;/i&gt;&amp;nbsp;of how the language fits together and to consolidate what they know. It is impossible for teachers to teach a “sense” of language. We do not have time, and it is not our job. It is the learners’ job to get that sense for themselves. This&amp;nbsp;&lt;i&gt;depth&lt;/i&gt;&amp;nbsp;of knowledge of language must, and can only, be acquired through constant massive exposure. It is a massive task that requires massive amounts of reading and listening on top of our normal course book work.&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;© &lt;a href="http://www.robwaring.org/er/what_and_why/er_is_vital.htm" target="_blank"&gt;Rob Waring&lt;/a&gt;, via Dmytro Korduban&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-629144685744121516?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/07/case-for-extensive-reading.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-3133089740613180977</guid><pubDate>Thu, 14 Jul 2011 14:45:00 +0000</pubDate><atom:updated>2011-07-14T17:45:37.080+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rant</category><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">teamwork</category><category domain="http://www.blogger.com/atom/ns#">humor</category><title>Best of Geek and Poke</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EjUUCj4ccJ4/Th8Agj_ev4I/AAAAAAAAAXU/RqLTshgzMJk/s1600/geekpoke.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="291" src="http://1.bp.blogspot.com/-EjUUCj4ccJ4/Th8Agj_ev4I/AAAAAAAAAXU/RqLTshgzMJk/s640/geekpoke.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://geekandpoke.typepad.com/geekandpoke/2011/03/coders-are-humble.html" target="_blank"&gt;(c)&lt;/a&gt; &lt;a href="http://geekandpoke.typepad.com/geekandpoke/2011/01/geeks-1.html" target="_blank"&gt;(c)&lt;/a&gt; &lt;a href="http://geekandpoke.typepad.com/geekandpoke/2010/11/todoxls.html" target="_blank"&gt;(c)&lt;/a&gt; &lt;a href="http://geekandpoke.typepad.com/geekandpoke/2010/10/geekpokes-list-of-best-practices-today-continuous-integration.html" target="_blank"&gt;(c)&lt;/a&gt; &lt;a href="http://geekandpoke.typepad.com/geekandpoke/2010/10/being-a-code-made-easy-chapter-1.html" target="_blank"&gt;(c)&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-3133089740613180977?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/07/best-of-geek-and-poke.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-EjUUCj4ccJ4/Th8Agj_ev4I/AAAAAAAAAXU/RqLTshgzMJk/s72-c/geekpoke.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-3455978663138539811</guid><pubDate>Sat, 02 Jul 2011 13:37:00 +0000</pubDate><atom:updated>2011-07-02T18:30:54.929+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">web.development</category><category domain="http://www.blogger.com/atom/ns#">internet</category><title>User Agents Trends</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;blockquote&gt;Operating Systems: Browsers and Operation Systems (OS) are identified by the "referrer" string sent by users' browsers.&lt;br /&gt;
&lt;pre&gt;% Visits from OS | 11/1/09-2/1/10 | 11/1/10-2/1/11 | Difference
Windows          |   89.9%        |    84.8%       |   -5.1%
Macintosh        |    4.5%        |     5.2%       |   +0.7%
Linux            |    0.6%        |     0.7%       |   +0.1%
Other            |    &lt;b&gt;5%&lt;/b&gt;          |     &lt;b&gt;9.3%&lt;/b&gt;       |   &lt;b&gt;+4.3%&lt;/b&gt;&lt;/pre&gt;&lt;/blockquote&gt;The data is courtesy of Google Analytics team and spans "hundreds of thousands of sites". Looks like there's some revolution going on in the "Other" category. Quite interesting.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-3455978663138539811?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/07/user-agents-trends.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-3412261366003946888</guid><pubDate>Mon, 27 Jun 2011 07:00:00 +0000</pubDate><atom:updated>2011-06-27T10:00:04.115+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">events</category><category domain="http://www.blogger.com/atom/ns#">profiling</category><title>JEE Materials + Upcoming events</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://jeeconf.com/materials/"&gt;JEEConf materials&lt;/a&gt;&amp;nbsp;(Check these solid Java &lt;a href="http://jeeconf.com/program/performance"&gt;profiling&lt;/a&gt;/&lt;a href="http://jeeconf.com/program/garbage-collector"&gt;memory&lt;/a&gt; tweaking guides by Oracle's insiders)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://jeeconf.com/materials/"&gt;&lt;/a&gt;&lt;a href="http://xpinjection.com/2011/06/24/developers-club-new-gathering/"&gt;Клуб Анонимных Разработчиков&lt;/a&gt;&amp;nbsp;(Kiev, July 5th)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.developers.org.ua/calendar/tags/%D0%A5%D0%B0%D0%BA%D0%B0%D1%82%D0%BE%D0%BD/"&gt;Hackathons&lt;/a&gt;&amp;nbsp;(Lviv, July 9-10th)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-3412261366003946888?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/06/jee-materials-upcoming-events.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-7488541703956999934</guid><pubDate>Fri, 17 Jun 2011 16:20:00 +0000</pubDate><atom:updated>2011-06-17T19:20:56.958+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">unit-testing</category><title>EasyMock’s all-concrete or all-matchers requirement</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We've been burned by this while&lt;b&gt; trying to mix easymock expectation with a constant String value&lt;/b&gt;.&lt;br /&gt;
&lt;blockquote&gt;The way to avoid these problems is to decide not to use EasyMock at all, instead creating your own hand-rolled doubles. And if you decide to use EasyMock in your project, ...&lt;br /&gt;
&lt;br /&gt;
* Make sure at least someone on your team understands how EasyMock works under the hood.&lt;br /&gt;
* Be aware of EasyMock’s all-concrete or all-matchers requirement, and that violations of this requirement can be violated by automated refactoring.&lt;br /&gt;
* If you use EasyMock matchers, make sure that they are produced while marshalling the arguments to call the mock method, and not beforehand.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;via &lt;a href="http://effectivejavatesting.wordpress.com/2008/11/25/beware-easymock/" target="_blank"&gt;Effective Java Testing&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-7488541703956999934?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/06/easymocks-all-concrete-or-all-matchers.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-7476542043778960688</guid><pubDate>Sun, 12 Jun 2011 09:02:00 +0000</pubDate><atom:updated>2011-06-12T12:03:22.971+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">academia</category><category domain="http://www.blogger.com/atom/ns#">security</category><title>Secure Digests</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="https://www.cosic.esat.kuleuven.be/fse2009/slides/2402_1150_Schlaeffer.pdf" target="_blank"&gt;The Rebound Attack: Cryptanalysis of Reduced Whirlpool and Grøstl&lt;/a&gt; (Florian Mendel, Christian Rechberger, Martin Schlaffer, Søren Thomsen) --- prioritizing collision attacks to lower the try count&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://eprint.iacr.org/2008/270.pdf" target="_blank"&gt;New Collision attacks Against Up To 24-step SHA-2&lt;/a&gt; (Somitra Kumar Sanadhya, Palash Sarkar) --- the very first SHA-512 collisions exhibited.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://eprint.iacr.org/2008/270.pdf" target="_blank"&gt;On Corrective Patterns for the SHA-2 Family&lt;/a&gt; (Philip Hawkes, Michael Paddon, Gregory Rose) --- early paper on reducing efforts to produce SHA-2 collision&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.daemonology.net/papers/htt.pdf" target="_blank"&gt;Cache missing for fun and profit&lt;/a&gt; (Colin Persival) --- leaking data from a secured thread via processor cache&lt;br /&gt;
&lt;br /&gt;
&lt;a href="chrome://downloads/home/anton/Documents/_files/fips-197.pdf" target="_blank"&gt;The AES spec&lt;/a&gt;, as of 2001.&lt;br /&gt;
&lt;br /&gt;
Several different hash implementations at&amp;nbsp;&lt;a href="http://etherhack.co.uk/contents.html" target="_blank"&gt;etherhack.co.uk&lt;/a&gt;, and another whirlpool implementation at&amp;nbsp;&lt;a href="http://www.sunsean.com/Whirlpool.html" target="_blank"&gt;sunsean.com&lt;/a&gt;. Also check the &lt;a href="http://www.larc.usp.br/~pbarreto/hflounge.html" target="_blank"&gt;Hash Function Lounge&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-7476542043778960688?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/06/secure-digests.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-2599126269437236400</guid><pubDate>Mon, 06 Jun 2011 17:30:00 +0000</pubDate><atom:updated>2011-06-06T20:30:00.522+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">iasa</category><category domain="http://www.blogger.com/atom/ns#">academia</category><title>ELW : Plotting the database volume</title><description>&lt;pre&gt;-rw-r--r-- 1 root root   24651199 2011-03-02 23:57 elw-data-110302.7z
-rw-r--r-- 1 root root   24634590 2011-03-03 00:42 elw-data-110303.7z
-rw-r--r-- 1 root root   24916696 2011-03-05 05:01 elw-data-110305.7z
-rw-r--r-- 1 root root   24922820 2011-03-12 05:01 elw-data-110312.7z
-rw-r--r-- 1 root root   25308559 2011-03-20 20:52 elw-data-110320.7z
-rw-r--r-- 1 root root   25397933 2011-03-26 05:01 elw-data-110326.7z
-rw-r--r-- 1 root root   26031946 2011-04-02 05:00 elw-data-110402.7z
-rw-r--r-- 1 root root   27216064 2011-04-09 05:01 elw-data-110409.7z
-rw-r--r-- 1 root root   27486042 2011-04-14 09:25 elw-data-110414.7z
-rw-r--r-- 1 root root   29464877 2011-04-16 05:01 elw-data-110416.7z
-rw-r--r-- 1 root root   30669374 2011-04-23 05:01 elw-data-110423.7z
-rw-r--r-- 1 root root   32029750 2011-04-30 05:01 elw-data-110430.7z
-rw-r--r-- 1 root root   32123905 2011-05-07 05:01 elw-data-110507.7z
-rw-r--r-- 1 root root   33887952 2011-05-14 05:01 elw-data-110514.7z
-rw-r--r-- 1 root root   35841114 2011-05-21 05:01 elw-data-110521.7z
-rw-r--r-- 1 root root   36450177 2011-05-28 05:01 elw-data-110528.7z
-rw-r--r-- 1 root root   41561291 2011-06-05 23:09 elw-data-110605.7z
&lt;/pre&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"dataSourceUrl":"//spreadsheets.google.com/spreadsheet/tq?key=0AivEH8WEvtHAdFg0UVk3RDZMcElmTUgxejFnRzNsQUE&amp;transpose=0&amp;headers=-1&amp;range=A2%3AB18&amp;gid=0&amp;pub=1","options":{"displayAnnotations":true,"showTip":true,"dataMode":"markers","fontColor":"#fff","midColor":"#36c","pointSize":0,"colors":["#3366CC","#DC3912","#FF9900","#109618","#990099","#0099C6","#DD4477","#66AA00","#B82E2E","#316395"],"headerColor":"#3d85c6","smoothLine":false,"lineWidth":2,"maxColor":"#222","headerHeight":40,"labelPosition":"right","is3D":false,"fontSize":"14px","hasLabelsColumn":true,"wmode":"opaque","hAxis":{"maxAlternation":1},"maxDepth":2,"allowCollapse":true,"minColor":"#ccc","mapType":"hybrid","width":480,"height":320},"state":{},"chartType":"AnnotatedTimeLine","chartName":"Chart 1"} &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-2599126269437236400?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/06/elw-plotting-database-volume.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-2351739209302106119</guid><pubDate>Thu, 19 May 2011 06:28:00 +0000</pubDate><atom:updated>2011-05-19T09:28:13.573+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">cv</category><category domain="http://www.blogger.com/atom/ns#">freelance</category><title>The way to long-term freelance jobs</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;blockquote&gt;Doing good work, on time and within budget, is only the starting point. Here are some ways to really shine, and foster a longer-term collaboration:&lt;ul style="text-align: left;"&gt;&lt;li&gt;Contribute ideas. Go beyond the call of duty. When you can suggest improvements, either for the immediate task at hand or to complement the employer's efforts in general, you show that you brings ideas and initiative, as well as technical skill.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Beat deadlines. The employer wants to feel like he's getting more than he's paying for, so you want to surpass expectations whenever possible. Coming in ahead of schedule is a no-cost way to impress.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Be responsive and available. You're not there in the same office, but do your best to prove that distance is no challenge. This can mean checking your emails outside local "business hours," and finding other ways to minimize the impact of time zones on your relationship.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Earn trust. If you don't know how to do something, admit it. If you're eager to tackle a challenge, but lack the experience, tell the employer — he may give you the go-ahead, but being honest upfront will keep expectations realistic and help him make a smart decision about assigning the work.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Communicate smoothly. Sometimes emails between you and your employer may be unclear, or seem negative. Work to fix communication issues early on. You want your employer to view communicating with you as a pleasure, not a chore.&lt;/li&gt;
&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Be "low maintenance." The employer gives you work to make his life easier, to get it off his plate. Try to get all the information you need early on in the assignment phase. Never hesitate to ask followup questions, and give progress reports at the expected intervals. But try to get everything you need up front to make the employer feel like working with you is an easy choice.&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;via ODesk Newsletter&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-2351739209302106119?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/05/way-to-long-term-freelance-jobs.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-8167151330187875262</guid><pubDate>Mon, 16 May 2011 13:21:00 +0000</pubDate><atom:updated>2011-05-16T16:24:01.723+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">teamwork</category><category domain="http://www.blogger.com/atom/ns#">wow</category><category domain="http://www.blogger.com/atom/ns#">continuous.integration</category><title>CI Feature Matrix</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix" target="_blank"&gt;CI Feature Matrix&lt;/a&gt;&amp;nbsp;@&amp;nbsp;thoughtworks.org&lt;br /&gt;
&lt;br /&gt;
Quite an interesting observation: compare biased comparisons of &lt;a href="http://ant.apache.org/ivy/m2comparison.html" target="_blank"&gt;Ivy&lt;/a&gt; and &lt;a href="http://docs.codehaus.org/display/MAVEN/Feature+Comparisons" target="_blank"&gt;Maven&lt;/a&gt; against each other, each proving itself to be superior.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-8167151330187875262?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/05/ci-feature-matrix.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-6635715915820822471</guid><pubDate>Fri, 13 May 2011 14:05:00 +0000</pubDate><atom:updated>2011-05-13T21:12:12.384+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">humor</category><category domain="http://www.blogger.com/atom/ns#">windows</category><category domain="http://www.blogger.com/atom/ns#">magic</category><category domain="http://www.blogger.com/atom/ns#">folklore</category><title>Google vs Windows</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ODInd-rZiAA/Tb_kSmLo-3I/AAAAAAAAAWY/mSvCei7bMTs/s1600/google_vs_windows.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-ODInd-rZiAA/Tb_kSmLo-3I/AAAAAAAAAWY/mSvCei7bMTs/s1600/google_vs_windows.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-6635715915820822471?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/05/google-vs-windows.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-ODInd-rZiAA/Tb_kSmLo-3I/AAAAAAAAAWY/mSvCei7bMTs/s72-c/google_vs_windows.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-9088647082890296143</guid><pubDate>Fri, 06 May 2011 14:05:00 +0000</pubDate><atom:updated>2011-05-06T17:05:00.140+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opensourse</category><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">liberalism</category><category domain="http://www.blogger.com/atom/ns#">humor</category><category domain="http://www.blogger.com/atom/ns#">folklore</category><title>OSS Licensing Walk-Through</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-lPUCZvgmXLE/Tb-3f-D5IQI/AAAAAAAAAWQ/gWsu8-_O9TU/s1600/OSS%2BLicense.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-lPUCZvgmXLE/Tb-3f-D5IQI/AAAAAAAAAWQ/gWsu8-_O9TU/s400/OSS%2BLicense.png" width="311" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-9088647082890296143?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/05/oss-licensing-walk-through.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-lPUCZvgmXLE/Tb-3f-D5IQI/AAAAAAAAAWQ/gWsu8-_O9TU/s72-c/OSS%2BLicense.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-1617766136881412331</guid><pubDate>Wed, 04 May 2011 05:00:00 +0000</pubDate><atom:updated>2011-05-04T08:00:08.148+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">interview</category><category domain="http://www.blogger.com/atom/ns#">folklore</category><title>Interview Improvements</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;blockquote&gt;So what should a developer job interview look like then? Simple: eliminate the exam part of the interview altogether. Instead, ask a few open-ended questions that invite your candidates to elaborate about their programming work.&lt;br /&gt;
- What's the last project you worked on at your former employer?&lt;br /&gt;
- Tell me about some of your favorite projects.&lt;br /&gt;
- What projects are you working on in your spare time?&lt;br /&gt;
- What online hacker communities do you participate in?&lt;br /&gt;
- Tell me about some (programming/technical) issues that you feel passionately about.&lt;br /&gt;
These questions are designed to reveal a great deal about the person you have in front of you. They can help you decide whether the candidate is interested in the same things as you, whether you like their way of thinking, and where their real interests lie. It's tougher for them to bullshit their way through here, because the interviewer can drill deeper into a large number of issues as they present themselves.&lt;br /&gt;
What about actual coding ability? Well, take a few moments after the interview and look into some code the candidate wrote. Maybe for an open source project, maybe they have to send you something that's not public, doesn't matter. Looking at actual production code tells you so much more than having them write contrived fiveliners on the whiteboard.&lt;br /&gt;
I'm sure you can come up with even more questions and other ways to engage the interviewee. At this point, pretty much any idea will be an improvement.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://devinterviews.pen.io/" target="_blank"&gt;Hiring Developers: You're Doing It Wrong&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt;I don’t think there is one right developer interviewing technique. It is worth mastering a variety of interviewing techniques and then adjusting based on the job requirements, team composition, manager style and company culture.&lt;br /&gt;
&lt;br /&gt;
Here is an initial (incomplete) list. I’ll update with new content from comments &amp;amp; conversations.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://blog.simeonov.com/2011/03/30/getting-developer-interviewing-right/" target="_blank"&gt;Getting developer interviewing right&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-1617766136881412331?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/05/interview-improvements.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-1080245479634175365</guid><pubDate>Fri, 29 Apr 2011 14:00:00 +0000</pubDate><atom:updated>2011-04-29T20:26:27.712+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">humor</category><category domain="http://www.blogger.com/atom/ns#">folklore</category><title>C's Eccentric View Of Arrays</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;blockquote&gt;&lt;span style="font-weight: normal;"&gt;C compilers transform&amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span class="code" style="color: #000099; font-family: 'Lucida Console', courier, 'courier new', monospace;"&gt;myArray[i]&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&amp;nbsp;into&amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span class="code" style="color: #000099; font-family: 'Lucida Console', courier, 'courier new', monospace;"&gt;*(myArray + i)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;, which is equivalent to&amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span class="code" style="color: #000099; font-family: 'Lucida Console', courier, 'courier new', monospace;"&gt;*(i + myArray)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&amp;nbsp;which is equivalent to&amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span class="code" style="color: #000099; font-family: 'Lucida Console', courier, 'courier new', monospace;"&gt;i[myArray]&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;. Experts know to put this to good use. To really disguise things, generate the index with a function:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #000099; font-family: 'Lucida Console', courier, 'courier new', monospace;"&gt;int myfunc(int q, int p) { return p%q; }&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="code" style="color: #000099; font-family: 'Lucida Console', courier, 'courier new', monospace;"&gt; ...&lt;/span&gt;&lt;br /&gt;
&lt;span class="code" style="color: #000099; font-family: 'Lucida Console', courier, 'courier new', monospace;"&gt; myfunc(6291, 8)[Array];&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;(c) &lt;a href="http://thc.org/root/phun/unmaintain.html" target="_blank"&gt;How to Write Unmaintainable Code&lt;/a&gt;&lt;/div&gt;This looks like a rather bad joke, but who knows &lt;b&gt;all the ways&lt;/b&gt; of C compiler...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-1080245479634175365?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/04/c-eccentric-view-of-arrays.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-5053750087904051676</guid><pubDate>Thu, 21 Apr 2011 18:58:00 +0000</pubDate><atom:updated>2011-04-21T21:58:25.289+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frameworks</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">trails</category><title>JSR 305 : javax.annotations</title><description>&lt;p&gt;Intro on &lt;a href="http://today.java.net/pub/a/today/2008/09/11/jsr-305-annotations.html" target="_blank"&gt;most usable annotations of the JSR 305&lt;/a&gt;. And the maven dependency snippet:&lt;/p&gt;&lt;div style="font: monospace;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;com.google.code.findbugs&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;jsr305&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;1.3.9&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-5053750087904051676?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/04/jsr-305-javaxannotations.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-3315709692223414927</guid><pubDate>Sun, 17 Apr 2011 12:17:00 +0000</pubDate><atom:updated>2011-05-08T13:53:28.928+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rant</category><category domain="http://www.blogger.com/atom/ns#">social</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">teamwork</category><category domain="http://www.blogger.com/atom/ns#">books</category><category domain="http://www.blogger.com/atom/ns#">folklore</category><title>Agile Basecamp Ukraine : Impressions/Summary</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In general: conference was quite positive emotionally and mostly light on the brain (almost no complex theories/metrics/formulas out there). Lots of interesting edutainment-like report formats and talk-provocative meetings. The place was also quite nice, I regret I did not take any photos while being there.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.dataart.ru/contacts/kiev.htm" target="_blank"&gt;DataArt&lt;/a&gt;'s after-party rocked, that's for sure: but I did not really see any technical (or at least PR) report on the company's projects/teams/positions itself, which would fit quite nicely&amp;nbsp;(at least)&amp;nbsp;into the Open Space section (I guess).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPD&lt;/b&gt;: So, here's the link to &lt;a href="http://www.slideshare.net/event/agile-base-camp-kiev/slideshows" target="_blank"&gt;conference presentations on SlideShare&lt;/a&gt;. Also I've updated books and ideas section, so check'em out. My personal TODO: compensate for missing presentation on &lt;a href="http://www.slideshare.net/alimenkou/agile-estimation-techniques" target="_blank"&gt;Estimation Techniques&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;General Agile Resources&lt;/strong&gt;:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://agilemanifesto.org/principles.html" target="_blank"&gt;Agile manifesto&lt;/a&gt;&amp;nbsp;(the very basics);&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.mountaingoatsoftware.com/" target="_blank"&gt;Mike Kohn's blog&lt;/a&gt;, and &lt;a href="http://www.mountaingoatsoftware.com/" target="_blank"&gt;his site&lt;/a&gt;&amp;nbsp;(evangelist);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method" target="_blank"&gt;DSDM&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Crystal_Clear_(software_development)" target="_blank"&gt;Crystal Clear&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://leansoftwareengineering.com/ksse/scrum-ban/" target="_blank"&gt;Scrum-ban&lt;/a&gt;&amp;nbsp;(some of adjoined methodologies);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://christopheravery.com/" target="_blank"&gt;Chris Avery&lt;/a&gt;&amp;nbsp;(team management);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tastycupcakes.org/" target="_blank"&gt;Tasty Cupcakes&lt;/a&gt; (educational games, some of them being Agile-centric);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.infoq.com/presentations/cockburn-bury-not-praise-agile" target="_blank"&gt;Bury Agile, not praise it&lt;/a&gt;&amp;nbsp;(one hour of Agile evangelism and top-level discussion).&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;Recent Books on Agile&lt;/strong&gt;, (and links to the authors' blogs):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/User-Stories-Applied-Software-Development/dp/0321205685" target="_blank"&gt;User Stories Applied: For Agile Software Development&lt;/a&gt; &lt;a href="http://www.amazon.com/Agile-Estimating-Planning-Mike-Cohn/dp/0131479415" target="_blank"&gt;Agile Estimating and Planning&lt;/a&gt; (&lt;a href="http://blog.mountaingoatsoftware.com/" target="_blank"&gt;Mike Kohn&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/dp/0321601912" target="_blank"&gt;Continuous Delivery&lt;/a&gt;&amp;nbsp;(&lt;a href="http://continuousdelivery.com/" target="_blank"&gt;Jez Humble&lt;/a&gt;);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.livelib.ru/book/1000307565" target="_blank"&gt;Scrum and XP from the Trenches&lt;/a&gt; (&lt;a href="http://blog.crisp.se/henrikkniberg" target="_blank"&gt;Henrik Kniberg&lt;/a&gt;);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://crushitbook.com/" target="_blank"&gt;Crush It&lt;/a&gt; (&lt;a href="http://garyvaynerchuk.com/"&gt;Gary Vaynerchuck&lt;/a&gt;) - looks like some brain-bender for a startup manager&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.deliveringhappiness.com/about-2/" target="_blank"&gt;Delivering Happiness&lt;/a&gt; (Tony Hsieh) - looks like another enterpreneurish brain-twister...&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;Ukrainian Agile resources&lt;/strong&gt; (no particular order here):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://tim.com.ua/" target="_blank"&gt;The Improved Methods&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://club.dataart.ru/" target="_blank"&gt;DataArt Club&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.scrumguides.com/2010/12/why-we-do-this.html" target="_blank"&gt;ScrumGuides.com&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.agileukraine.org/" target="_blank"&gt;Agile Group Ukraine&lt;/a&gt;&amp;nbsp;(and the&amp;nbsp;&lt;a href="http://groups.google.com/group/agile-ukraine/" target="_blank"&gt;google group&lt;/a&gt;);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://agileee.org/" target="_blank"&gt;Agile Eastern Europe&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://xpinjection.com/" target="_blank"&gt;XP Injection&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;And couple of other sites of possible interest&lt;/b&gt;:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://pmi.org.ua/ru/" target="_blank"&gt;Project management institute&lt;/a&gt;&amp;nbsp;(and &lt;a href="http://pmant.livejournal.com/24543.html" target="_blank"&gt;discussion of agile PP certificates&lt;/a&gt;);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://pm-zone.org/" target="_blank"&gt;PM Zone&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://it-hunt.com/" target="_blank"&gt;IT HR-ов Харькова&lt;/a&gt;;&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;Some tools which were discussed on the conference&lt;/strong&gt;:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://demo.redmine.org/" target="_blank"&gt;redmine&lt;/a&gt;&amp;nbsp;(tracker with lots of Agile-ish yummies) - missed some of core plugins though;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kuroikaze85.wordpress.com/2010/12/28/gitosis-deploy-server/" target="_blank"&gt;gitosis&lt;/a&gt;&amp;nbsp;(some kind of large-scale git management tool);&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jenkins-ci.org/" target="_blank"&gt;jenkins&lt;/a&gt; (a fork-off/rebranding of Hudson, was new to me).&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;Nice ideas&lt;/strong&gt; having crossed my mind while I was listening (no particular order here, too):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;ROI metrics / Survey integration: which basically means that customer feedback surveys are aligned with sales so we (roughly speaking) are able to estimate profit we get for each vote on any particular feature&lt;/li&gt;
&lt;li&gt;Web-version of Scrum/Kanban board for a distributed team: oh this all really has something to do with HTML5, like that Spaaze project I've recently seen; just do that thingy via HTML5, and cast it off to the wall with a projector or wide plasma or something...&lt;/li&gt;
&lt;li&gt;Start-up evaluations / Vision brainstorming: I really liked that &lt;a href="http://www.slideshare.net/Nfilippov/vision-crafting" target="_blank"&gt;presentation on Vision elaboration&lt;/a&gt; and would use that on any of my ideas before I start designing or coding.&lt;/li&gt;
&lt;li&gt;free HTML5 mindmapping (yeah, ditch java from this domain, at last): well, I am late as usual: &lt;a href="http://mind42.com/about" target="_blank"&gt;mind42&lt;/a&gt;, &lt;a href="https://bubbl.us/" target="_blank"&gt;bubbl.us&lt;/a&gt;, &lt;a href="https://www.mindmeister.com/ru/home/signup_editions" target="_blank"&gt;MindMeister&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;some time tracker/todo manager startup which beats RTM? The main idea is that if your application is quite well-profiled you may bite reasonable share of a crowded market: I'd recently searched for these applications and still have no proper solution: I'd like to see Hamster being cross-platform and having the Pomodoro features of workrave;&lt;/li&gt;
&lt;li&gt;switch my lecture style to this Lightning Talks format: some of lectures, at least course section intros/outros would be quite engaging/igniting the students to work on the course... ;)&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;Particular/remarkable idioms&lt;/strong&gt;: soft commit, focus factor, planning poker.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-3315709692223414927?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/04/agile-basecamp-ukraine.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-2970929905019382510</guid><pubDate>Tue, 12 Apr 2011 07:30:00 +0000</pubDate><atom:updated>2011-04-12T10:30:02.222+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frameworks</category><category domain="http://www.blogger.com/atom/ns#">middleware</category><category domain="http://www.blogger.com/atom/ns#">spring</category><category domain="http://www.blogger.com/atom/ns#">ioc</category><category domain="http://www.blogger.com/atom/ns#">classloader</category><category domain="http://www.blogger.com/atom/ns#">trails</category><title>Custom Namespaces for Spring Configurations</title><description>&lt;p style="text-align: justify;"&gt;Well, this feature is explained in the Spring docs (section &lt;a href="http://springcert.sourceforge.net/2.5/core/#extensible-xml-using" target="_blank"&gt;B.6. Using a custom extension in your Spring XML configuration&lt;/a&gt;) and TheServerSide.com had thorough article on that matter:&lt;/p&gt;&lt;blockquote&gt;&lt;p style="text-align: justify;"&gt;Please note that these two files should be present in the META-INF directory of your JAR. In fact, if you open the spring.jar under the META-INF directory, you can see the details of all the schema and handlers for the namespaces that comes with Spring.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="text-align: right;"&gt;&lt;a href="http://www.theserverside.com/news/1364131/Authoring-Custom-Namespaces-in-Spring-20" target="_blank"&gt;Authoring Custom Namespaces in Spring 2.0&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Couple of extra hints: as your project in most cases should run fine from an IDE, you'll have to pre-bundle a jar with at least those two files (spring.handlers and spring.schemas) in META-INF (no other way to do that w/o packaging a custom jar on each run). And, notice that spring.schemas uses schema location as an url, not schema URI.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-2970929905019382510?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/04/custom-namespaces-for-spring.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-18273211.post-244624311060509323</guid><pubDate>Mon, 11 Apr 2011 08:30:00 +0000</pubDate><atom:updated>2011-04-11T11:30:00.623+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">frameworks</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">graphs</category><category domain="http://www.blogger.com/atom/ns#">academia</category><category domain="http://www.blogger.com/atom/ns#">gui</category><title>Graph Visualization Frameworks</title><description>&lt;p&gt;The &lt;a href="http://www.manageability.org/blog/stuff/open-source-graph-network-visualization-in-java/view" target="_blank"&gt;most extensive list of Graph Visualization Frameworks&lt;/a&gt;, ever.&lt;/p&gt;&lt;p&gt;My eye was caught by &lt;a href="http://csbi.sourceforge.net/faq.html" target="_blank"&gt;GINY&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.piccolo2d.org/learn/grapheditor.html" target="_blank"&gt;Piccolo2D&lt;/a&gt;. Looks like GINY might be forked and implemented atop of Trove's, not Colt's primitives.&lt;/p&gt;&lt;p&gt;Well, trying &lt;a href="http://vis.stanford.edu/protovis/" target="_blank"&gt;protovis&lt;/a&gt; seems to be more promising and effective endeavour, so no forks of GINY, at least for the time being.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18273211-244624311060509323?l=java.akraievoy.org' alt='' /&gt;&lt;/div&gt;</description><link>http://java.akraievoy.org/2011/04/graph-visualization-frameworks.html</link><author>noreply@blogger.com (Anton S. Kraievoy)</author><thr:total>0</thr:total></item></channel></rss>

