<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8048296550383388375</id><updated>2012-01-17T02:00:14.700-08:00</updated><category term='javafx'/><category term='augmented'/><category term='Jasper'/><category term='reality'/><category term='funny'/><category term='analytic'/><category term='talk'/><category term='ford'/><category term='IReport'/><category term='tomcat'/><category term='export'/><category term='template'/><category term='font'/><category term='Java'/><category term='service'/><category term='book'/><category term='pdf'/><category term='oracle'/><category term='neal'/><category term='sql'/><category term='remote access'/><category term='Eclipse'/><category term='thoughts'/><category term='windows'/><category term='unicode'/><category term='code'/><category term='jazoon'/><category term='review'/><category term='jconsole'/><category term='not in(select'/><category term='singletone'/><category term='problem'/><title type='text'>Let your mind go and your body will follow</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-7201622186168442377</id><published>2011-07-19T05:31:00.000-07:00</published><updated>2011-07-19T05:38:10.656-07:00</updated><title type='text'>Excellent Netty introduction</title><content type='html'>I'm trying &lt;a href="http://www.jboss.org/netty"&gt;Netty&lt;/a&gt; these days and I find it very nice to work with.&lt;br /&gt;&lt;br /&gt;I came upon &lt;a href="http://www.znetdevelopment.com/blogs/2009/04/21/netty-using-handlers/"&gt;this fine introduction about Netty.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-7201622186168442377?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/7201622186168442377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=7201622186168442377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7201622186168442377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7201622186168442377'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2011/07/excellent-netty-introduction.html' title='Excellent Netty introduction'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-3699685191199597591</id><published>2011-06-21T07:04:00.001-07:00</published><updated>2011-06-21T07:05:57.754-07:00</updated><title type='text'>java.lang.OutOfMemoryError: PermGen space problem</title><content type='html'>We had a few these days.&lt;br /&gt;Came upon this nice article on how to solve them.&lt;br /&gt;&lt;a href="http://blogs.oracle.com/fkieviet/entry/how_to_fix_the_dreaded"&gt;http://blogs.oracle.com/fkieviet/entry/how_to_fix_the_dreaded&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the meantime we just increased it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-3699685191199597591?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/3699685191199597591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=3699685191199597591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/3699685191199597591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/3699685191199597591'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2011/06/javalangoutofmemoryerror-permgen-space.html' title='java.lang.OutOfMemoryError: PermGen space problem'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-8485078210801895040</id><published>2010-06-16T02:52:00.000-07:00</published><updated>2010-10-05T01:39:45.760-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='remote access'/><category scheme='http://www.blogger.com/atom/ns#' term='jconsole'/><title type='text'>JConsole on a remote machine</title><content type='html'>If you want to monitor your app on a remote machine use this when you start it:&lt;br /&gt;&lt;br /&gt;-Dcom.sun.management.jmxremote &lt;br /&gt;-Dcom.sun.management.jmxremote.port=8888 &lt;br /&gt;-Dcom.sun.management.jmxremote.ssl=false&lt;br /&gt;-Dcom.sun.management.jmxremote.authenticate=false&lt;br /&gt;-Djava.rmi.server.hostname=putYourAppRemoteIPHere&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-8485078210801895040?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/8485078210801895040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=8485078210801895040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/8485078210801895040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/8485078210801895040'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/06/jconsole-on-remote-machine.html' title='JConsole on a remote machine'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6032186639302036360</id><published>2010-03-25T03:19:00.000-07:00</published><updated>2010-03-25T03:23:07.199-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Funny 404 page</title><content type='html'>Turn your sound on.&lt;br /&gt;&lt;a href="http://www.homestarrunner.com/systemisdown.html"&gt;System is down!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-6032186639302036360?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6032186639302036360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6032186639302036360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6032186639302036360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6032186639302036360'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/03/funny-404-page.html' title='Funny 404 page'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-2432950920428028053</id><published>2010-03-23T04:10:00.000-07:00</published><updated>2010-03-23T04:15:20.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><title type='text'>More nice thoughts</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Why_the_lucky_stiff"&gt;why the lucky stiff&lt;/a&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/yuj43Hkb9bYH-rcfqZ0H1Q?authkey=Gv1sRgCOvL4v3mtrS_Vg&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_hpCl2UTuFvA/So1Hq855bNI/AAAAAAAAA8k/jRXSGLD1T7o/s800/why.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;From &lt;a href="http://picasaweb.google.com/chobicus/DropBox?authkey=Gv1sRgCOvL4v3mtrS_Vg&amp;feat=embedwebsite"&gt;Drop Box&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-2432950920428028053?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/2432950920428028053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=2432950920428028053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2432950920428028053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2432950920428028053'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/03/more-nice-thoughts.html' title='More nice thoughts'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_hpCl2UTuFvA/So1Hq855bNI/AAAAAAAAA8k/jRXSGLD1T7o/s72-c/why.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-4336668782337008921</id><published>2010-02-19T03:15:00.000-08:00</published><updated>2010-02-19T03:16:44.433-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='augmented'/><category scheme='http://www.blogger.com/atom/ns#' term='reality'/><title type='text'>Blaise Aguera y Arcas demos augmented-reality maps</title><content type='html'>&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=766&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=blaise_aguera;year=2010;theme=a_taste_of_ted2010;theme=new_on_ted_com;theme=the_creative_spark;event=TED2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=766&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=blaise_aguera;year=2010;theme=a_taste_of_ted2010;theme=new_on_ted_com;theme=the_creative_spark;event=TED2010;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-4336668782337008921?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/4336668782337008921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=4336668782337008921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/4336668782337008921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/4336668782337008921'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/02/blaise-aguera-y-arcas-demos-augmented.html' title='Blaise Aguera y Arcas demos augmented-reality maps'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-2606304827361268095</id><published>2010-02-10T06:39:00.000-08:00</published><updated>2010-02-10T06:41:09.428-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><title type='text'>One more</title><content type='html'>"It is not knowledge, but the act of learning, not possession but the act of getting there, which grants the greatest enjoyment. When I have clarified and exhausted a subject, then I turn away from it, in order to go into darkness again; the never-satisfied man is so strange if he has completed a structure, then it is not in order to dwell in it peacefully, but in order to begin another. I imagine the world conqueror must feel thus, who, after one kingdom is scarcely conquered, stretches out his arms for others."&lt;br /&gt;&lt;br /&gt;—KARL FRIEDRICH GAUSS, Letter to Bolyai, 1808.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-2606304827361268095?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/2606304827361268095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=2606304827361268095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2606304827361268095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2606304827361268095'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/02/one-more.html' title='One more'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-7943326277958686748</id><published>2010-02-09T01:45:00.000-08:00</published><updated>2010-02-09T01:56:45.653-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neal'/><category scheme='http://www.blogger.com/atom/ns#' term='ford'/><category scheme='http://www.blogger.com/atom/ns#' term='jazoon'/><category scheme='http://www.blogger.com/atom/ns#' term='talk'/><title type='text'>The Best One From Jazoon 09</title><content type='html'>&lt;object width="474" height="443"&gt;&lt;param name="movie" value="http://www.parleys.com/share/parleysshare2.swf?pageId=345"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="pageId" value="345"&gt;&lt;/param&gt;&lt;embed src="http://www.parleys.com/share/parleysshare2.swf?pageId=345" type="application/x-shockwave-flash" allowfullscreen="true" width="474" height="443"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Really inspiring talk, not only for programmers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-7943326277958686748?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/7943326277958686748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=7943326277958686748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7943326277958686748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7943326277958686748'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/02/best-one-from-jazoon-09.html' title='The Best One From Jazoon 09'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-9221072930324133610</id><published>2010-01-27T04:58:00.000-08:00</published><updated>2010-01-27T05:00:16.720-08:00</updated><title type='text'>Nice one about politicians</title><content type='html'>&lt;a href='http://1.bp.blogspot.com/_hpCl2UTuFvA/S2A4gB4CeWI/AAAAAAAAA-o/2WzvzRZ21rc/s1600-h/graffiti_wall_by_cool_baby.jpg'&gt;&lt;img src='http://1.bp.blogspot.com/_hpCl2UTuFvA/S2A4gB4CeWI/AAAAAAAAA-o/2WzvzRZ21rc/s320/graffiti_wall_by_cool_baby.jpg' border='0' alt='' /&gt;&lt;/a&gt;&amp;nbsp;&lt;div style='clear:both; text-align:NONE'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&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/8048296550383388375-9221072930324133610?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/9221072930324133610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=9221072930324133610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/9221072930324133610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/9221072930324133610'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/01/blog-post.html' title='Nice one about politicians'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hpCl2UTuFvA/S2A4gB4CeWI/AAAAAAAAA-o/2WzvzRZ21rc/s72-c/graffiti_wall_by_cool_baby.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-4612691868254401301</id><published>2010-01-10T00:10:00.000-08:00</published><updated>2010-01-10T00:50:50.305-08:00</updated><title type='text'>Sink A Ship included in the Softpedia Mac OS software database</title><content type='html'>Few months ago I got mail from &lt;a href="http://www.softpedia.com/"&gt;softpedia&lt;/a&gt; saying:&lt;br /&gt; &lt;br /&gt;"Congratulations,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chobicus.blogspot.com/2009/02/javafx-experiment.html"&gt;Sink A Ship&lt;/a&gt;, one of your products, has been added to Softpedia's database&lt;br /&gt;of software programs for Mac OS...&lt;br /&gt;...We are impressed with the quality of your&lt;br /&gt;product and encourage you to keep these high standards in the future..."&lt;br /&gt;&lt;br /&gt;:)&lt;br /&gt;&lt;br /&gt;Although it's simple game, the feeling is nice when you get this kind of email. I didn't write to softpedia and the only places I wrote about the game is here, on blogspot, and on &lt;a href="http://jfxstudio.wordpress.com/2009/02/26/simple-javafx-sink-a-ship-game/"&gt;jfxstudio&lt;/a&gt;, place for sharing JavaFX experiments.&lt;br /&gt;&lt;br /&gt;My experiment with JavaFX turned out to be interesting for kids these days just like the game which "Sink a ship" was based on, &lt;a href="http://www.gamespot.com/c64/action/seawolf/index.html"&gt;"Seawolf"&lt;/a&gt;, was interesting for me and my sister when we were kids.&lt;br /&gt;&lt;br /&gt;Well, show it to your kids and share some ideas for improvements.&lt;br /&gt;&lt;a href="http://mac.softpedia.com/get/Games/Sink-A-Ship.shtml"&gt;&lt;img border="0" src="http://www.softpedia.com/images/softpedia_download_small.gif"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_0OHIDAts60E/SeCQ8MdT61I/AAAAAAAAACc/ONXW9QgqqwM/sinkaShip.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://lh4.ggpht.com/_0OHIDAts60E/SeCQ8MdT61I/AAAAAAAAACc/ONXW9QgqqwM/sinkaShip.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;My better half, my &lt;3 made me work harder to make the game looks like this. I wanted to try JavaFX and my game would look like a bunch of triangles running around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-4612691868254401301?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/4612691868254401301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=4612691868254401301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/4612691868254401301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/4612691868254401301'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2010/01/sink-ship-included-in-softpedia-mac-os.html' title='Sink A Ship included in the Softpedia Mac OS software database'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_0OHIDAts60E/SeCQ8MdT61I/AAAAAAAAACc/ONXW9QgqqwM/s72-c/sinkaShip.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6945166411624804717</id><published>2009-12-23T05:54:00.000-08:00</published><updated>2009-12-23T06:00:52.017-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='service'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>How to set Java memory usage of Tomcat 4.1 started as a Windows service</title><content type='html'>If you try to set Java parameters -Xms or -Xmx in catalina.bat it would work only if you start Tomcat with startup.bat.&lt;br /&gt;If you want to start Tomcat as a service you must dig through registry.&lt;br /&gt;Taken from &lt;a href="http://www.jguru.com/faq/view.jsp?EID=416239"&gt;jguru&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;1. Open up the registry (Run -&gt; Regedit)&lt;br /&gt;&lt;br /&gt;2. Find the entry for your Tomcat service entry.  Either do a search for the service name in the registry or navigate to:&lt;br /&gt;HKEY_LOCAL_MACHINE.SYSTEM.CurrentControlSet.Services.Apache Tomcat 4.1.Parameters&lt;br /&gt;&lt;br /&gt;3. You should see several numbered "JVM Option Number" parameters&lt;br /&gt;&lt;br /&gt;4. Add two new "String Value" parameters, succeeding the ordinal count of those already there, in my case 4 and 5&lt;br /&gt;&lt;br /&gt;5. Add your arguments.  I used: -Xms128m and -Xmx128m&lt;br /&gt;&lt;br /&gt;6. Modify the JVM Option Count accordingly.&lt;br /&gt;&lt;br /&gt;7. Restart your service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-6945166411624804717?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6945166411624804717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6945166411624804717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6945166411624804717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6945166411624804717'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/12/how-to-set-java-memory-usage-of-tomcat.html' title='How to set Java memory usage of Tomcat 4.1 started as a Windows service'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6308349820486122247</id><published>2009-10-22T06:24:00.000-07:00</published><updated>2009-10-22T06:34:32.710-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Punished By Rewards</title><content type='html'>I'm interested in reading:&lt;br /&gt;&lt;a href="http://www.amazon.com/reader/0618001816?_encoding=UTF8&amp;ref_=sib%5Fdp%5Fpt#reader-link"&gt;Punished By Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise, and Other Bribes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Can't find it in bookstores and I have trouble ordering it from Amazon since my country is not in love with the rest of the world!&lt;br /&gt;&lt;br /&gt;Interesting review from Yolanda on Amazon:&lt;br /&gt;"Rewards fail for five reasons. &lt;br /&gt;- First, rewards punish and control by seduction. The failure to win a reward or the threat to remove a reward is functionally identical to the threat to employ a punishment. &lt;br /&gt;- Second, rewards rupture relationships both vertically (student/teacher) and horizontally (student/student). Both rewards and punishment are really about someone maintaining power and control over another and they induce a behavior pattern whereby the subordinate tries to curry favor and impress the rewarder rather than encourage a relationship of trust and openness. Also, rewards lead to destructive competition. &lt;br /&gt;- Third, employing rewards can change superficial behavior effectively, but it ignores the underlying reasons for the problem behavior and so does not effect long-term change. Rewards are not solutions, they are gimmicks, shortcuts, quick fixes that mask problems. &lt;br /&gt;- Fourth, rewards discourage risk taking, creativity, and taking on challenges because the task is now just something that stands in the way of gaining the prize. - Finally, and most tragically, rewards change the way people approach the task. To reward someone for something that many find intrinsically interesting and enjoy doing is to destroy motivation. For example, the Pizza Hut "Book It" reading incentive and summer library reading incentive programs are, according to Kohn, very destructive. Reading is presented not as a pleasurable experience, but as something one has to be bribed to do with a food reward or other token."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-6308349820486122247?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6308349820486122247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6308349820486122247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6308349820486122247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6308349820486122247'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/10/punished-by-rewards.html' title='Punished By Rewards'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6780588971420362699</id><published>2009-10-13T02:49:00.000-07:00</published><updated>2011-01-06T07:57:25.870-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='Jasper'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='export'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><title type='text'>Exporting pdf from Jasper (problem with unicode)</title><content type='html'>In &lt;a href="http://chobicus.blogspot.com/2008/03/getting-serious.html"&gt;my other post&lt;/a&gt; I described how to export from Jasper.&lt;br /&gt;&lt;br /&gt;There is potential problem if you need to use unicode fonts.&lt;br /&gt;&lt;br /&gt;In order to export Jasper to pdf, you need TrueType font that has all the characters that your exported pdf is going to contain.&lt;br /&gt;I had a lot of trouble to find free font that has all the glyphs I need.&lt;br /&gt;Found it on &lt;a href="http://www.myfonts.com"&gt;myfonts&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://new.myfonts.com/fonts/profonts/euro-sans-pro/reg-obl/"&gt;euro-sans-pro&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All you need to write in jrxml file is:&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&amp;lt;font pdffontname="myPathToFonts\fontFileName.ttf" pdfencoding="Identity-H"&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-6780588971420362699?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6780588971420362699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6780588971420362699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6780588971420362699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6780588971420362699'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/10/exporting-pdf-from-jasper.html' title='Exporting pdf from Jasper (problem with unicode)'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-7836259396416300900</id><published>2009-07-29T05:25:00.000-07:00</published><updated>2009-07-29T05:27:50.571-07:00</updated><title type='text'>Cool animation from Mesai</title><content type='html'>&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vN83DfmH9Tw&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/vN83DfmH9Tw&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-7836259396416300900?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/7836259396416300900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=7836259396416300900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7836259396416300900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7836259396416300900'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/07/cool-animation-from-mesai.html' title='Cool animation from Mesai'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-7818012787319825879</id><published>2009-07-13T14:45:00.000-07:00</published><updated>2009-07-13T14:51:19.993-07:00</updated><title type='text'>VIM code formatting</title><content type='html'>I'm experimenting with &lt;a href="http://www.vim.org/about.php"&gt;Vim&lt;/a&gt;.&lt;br /&gt;It's geeky!&lt;br /&gt;:)&lt;br /&gt;&lt;br /&gt;Sandeep Singhal made Vim more interesting to me with his post about formatting:&lt;br /&gt;&lt;a href="http://sandeepsinghal.blogspot.com/2006/12/vim-code-formatting-and-indentation.html"&gt;sandeepsinghal.blogspot.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-7818012787319825879?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/7818012787319825879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=7818012787319825879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7818012787319825879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7818012787319825879'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/07/vim-code-formatting.html' title='VIM code formatting'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-5447889954506128969</id><published>2009-06-30T03:50:00.000-07:00</published><updated>2009-06-30T03:53:16.771-07:00</updated><title type='text'>It's getting sick</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pMkV8E2re9U&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/pMkV8E2re9U&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-5447889954506128969?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/5447889954506128969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=5447889954506128969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/5447889954506128969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/5447889954506128969'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/06/its-getting-sick.html' title='It&apos;s getting sick'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-1058072179346276906</id><published>2009-02-18T16:29:00.000-08:00</published><updated>2009-08-26T02:34:20.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javafx'/><title type='text'>JavaFX Experiment</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_0OHIDAts60E/SeCQ8MdT61I/AAAAAAAAACc/ONXW9QgqqwM/sinkaShip.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://lh4.ggpht.com/_0OHIDAts60E/SeCQ8MdT61I/AAAAAAAAACc/ONXW9QgqqwM/sinkaShip.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sink-a-ship.googlecode.com/svn/trunk/JavaFXSeaWolf/dist/JavaFXSeaWolf.jnlp"&gt;Launch Sink A Ship&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can check out code on:&lt;br /&gt;&lt;a href="http://code.google.com/p/sink-a-ship/"&gt;Google code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-1058072179346276906?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/1058072179346276906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=1058072179346276906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/1058072179346276906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/1058072179346276906'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/02/javafx-experiment.html' title='JavaFX Experiment'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_0OHIDAts60E/SeCQ8MdT61I/AAAAAAAAACc/ONXW9QgqqwM/s72-c/sinkaShip.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-1681585992561793759</id><published>2009-02-09T00:44:00.000-08:00</published><updated>2009-02-09T00:50:54.431-08:00</updated><title type='text'>Open source company business model</title><content type='html'>Interesting article about business model for open source company.&lt;br /&gt;&lt;a href="http://zak.greant.com/hacking-business-models"&gt;Hacking Business Models&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-1681585992561793759?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/1681585992561793759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=1681585992561793759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/1681585992561793759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/1681585992561793759'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/02/open-source-company-business-model.html' title='Open source company business model'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-5156034362806178726</id><published>2009-01-26T05:23:00.000-08:00</published><updated>2009-01-26T05:30:20.693-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='singletone'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><title type='text'>Eclipse Singletone template</title><content type='html'>Eclipse-&gt;Window-&gt;Preferences&lt;br /&gt;&lt;br /&gt;Java-&gt;Editor-&gt;Templates-&gt;New..&lt;br /&gt;Name:Singletone&lt;br /&gt;Description:{whatever}&lt;br /&gt;Pattern should look like:&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;// *** SIngletone impl&lt;br /&gt;private static class InstanceHolder{&lt;br /&gt; private static ${enclosing_type} instance = new ${enclosing_type}();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private ${enclosing_type}() {}&lt;br /&gt;&lt;br /&gt;public static ${enclosing_type} getInstance() {&lt;br /&gt;   return InstanceHolder.instance;&lt;br /&gt;}&lt;br /&gt;// ***&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now every time you need quick singletone implementation you just type single and ctrl+space...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-5156034362806178726?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/5156034362806178726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=5156034362806178726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/5156034362806178726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/5156034362806178726'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/01/eclipse-singletone-template.html' title='Eclipse Singletone template'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6937435265761902517</id><published>2009-01-13T06:51:00.000-08:00</published><updated>2009-01-13T06:57:59.246-08:00</updated><title type='text'>I looove eclipse</title><content type='html'>We are bringing code review in our small team as an experiment. And I like it!&lt;br /&gt;I liked it until I got "... and put brackets around every one statement if/else block..." in review of my code.&lt;br /&gt;Thank you &lt;a href="http://blogs.iona.com/ohurley/2007/10/eclipse_summit_2007_first_day.html"&gt;Oisin&lt;/a&gt; and thank you Eclipse!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/library/os-eclipse-clean/index.html"&gt;Keep your code clean with Eclipse V3.3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-6937435265761902517?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6937435265761902517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6937435265761902517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6937435265761902517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6937435265761902517'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2009/01/i-looove-eclipse.html' title='I looove eclipse'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-7411590254744191667</id><published>2008-11-24T03:31:00.000-08:00</published><updated>2008-11-25T01:37:29.331-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Interesting code-review document</title><content type='html'>&lt;a href="http://smartbear.com/docs/BestPracticesForPeerCodeReview.pdf"&gt;Smartbear best practices&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-7411590254744191667?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/7411590254744191667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=7411590254744191667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7411590254744191667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/7411590254744191667'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2008/11/interesting-code-review-document.html' title='Interesting code-review document'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6841690642536506116</id><published>2008-10-16T05:34:00.000-07:00</published><updated>2008-10-16T05:36:02.671-07:00</updated><title type='text'>Syntax highlighter</title><content type='html'>&lt;p&gt;There was a time when I wanted to give up blogger because poor code formating options.&lt;/p&gt;&lt;p&gt;Google to the rescue:&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;http://code.google.com/p/syntaxhighlighter/&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/8048296550383388375-6841690642536506116?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6841690642536506116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6841690642536506116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6841690642536506116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6841690642536506116'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2008/10/syntax-highlighter.html' title='Syntax highlighter'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-2864805562727141672</id><published>2008-10-16T03:46:00.000-07:00</published><updated>2008-10-23T06:59:10.662-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='not in(select'/><title type='text'>Dangerous SQL usage of "NOT IN"</title><content type='html'>Here is example structure:&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;CREATE TABLE CUSTOMER&lt;br /&gt;(&lt;br /&gt;  ID                           INTEGER          NOT NULL,  &lt;br /&gt;  FIRSTNAME                    VARCHAR          NOT NULL,&lt;br /&gt;  LASTNAME                     VARCHAR          NOT NULL&lt;br /&gt;);&lt;br /&gt;CREATE TABLE CARD&lt;br /&gt;(&lt;br /&gt;  ID                          INTEGER           NOT NULL,&lt;br /&gt;  CUSTOMERID                  INTEGER,&lt;br /&gt;  SOMEDATA                    VARCHAR           DEFAULT 'ffff'&lt;br /&gt;);&lt;br /&gt;insert into card (id, customerid, somedata)&lt;br /&gt;values (1, null, 'abcd');&lt;br /&gt;insert into card (id, customerid, somedata)&lt;br /&gt;values (2, null, 'efgh');&lt;br /&gt;insert into card (id, customerid, somedata)&lt;br /&gt;values (3, null, 'ijkl');&lt;br /&gt;insert into customer (id, firstname, lastname)&lt;br /&gt;values (1, 'John', 'Doe');&lt;br /&gt;insert into customer (id, firstname, lastname)&lt;br /&gt;values (2, 'Jane', 'Doe');&lt;br /&gt;insert into customer (id, firstname, lastname)&lt;br /&gt;values (3, 'Jim', 'Doe');&lt;br /&gt;update card set customerid = 1 where id = 2;&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;    MIN (customer.ID)&lt;br /&gt;FROM customer&lt;br /&gt;WHERE customer.ID NOT IN &lt;br /&gt;    (SELECT customerId FROM card WHERE customerId IS NOT NULL)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Last SELECT statement returns 2 which is ok but if you remove this part "WHERE customerId IS NOT NULL" all you get is NULL.&lt;br /&gt;Database recognizes NULL value as "unknown".&lt;br /&gt;It can't tell "I'm sure there &lt;span style="font-weight:bold;"&gt;IS NO&lt;/span&gt; customer.ID in that SELECT." because there are unknowns!!!&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-2864805562727141672?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/2864805562727141672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=2864805562727141672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2864805562727141672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2864805562727141672'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2008/10/dangerous-sql-usage-of-not-in.html' title='Dangerous SQL usage of &quot;NOT IN&quot;'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-2286203745880042617</id><published>2008-08-14T06:32:00.000-07:00</published><updated>2008-10-23T07:03:11.615-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='analytic'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle analytic functions</title><content type='html'>Simple example:&lt;br /&gt;My firm with employees :)&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;-- Simple table&lt;br /&gt;CREATE TABLE Emp&lt;br /&gt;(&lt;br /&gt;dept VARCHAR2(20) NOT NULL,&lt;br /&gt;nick VARCHAR2(20) NOT NULL,&lt;br /&gt;pay  NUMBER NOT NULL&lt;br /&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;-- All with different pays&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept, nick, pay)VALUES&lt;br /&gt;('Admins' ,'Mike' ,5000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('Admins' ,'Michael' ,4000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('Admins' ,'Wellington' ,3000 );&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;-- First two with same pay checks&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('Programers' ,'Bix' ,5000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('Programers' ,'Pierre' ,5000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('Programers' ,'Ivanhoehoe' ,3000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('Programers' ,'Boldrick' ,2000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('Programers' ,'Payson' ,1000 );&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;-- 3. and 4. with same checks&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('CEOs' ,'Maush' ,50000);&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('CEOs' ,'Pierre' ,4000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('CEOs' ,'Bob' ,3000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('CEOs' ,'Boldrick' ,3000 );&lt;br /&gt;INSERT INTO Emp&lt;br /&gt;(dept ,nick ,pay) VALUES&lt;br /&gt;('CEOs' ,'Vlax' ,1000 );&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-size:180%;"&gt;row_number(), rank(), dense_rank()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Here is the difference in functions:&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;SELECT dept, nick, pay,&lt;br /&gt;row_number() over (partition by dept ORDER BY pay desc) rnum,&lt;br /&gt;rank() over (partition by dept ORDER BY pay desc) rnk,&lt;br /&gt;dense_rank() over (partition by dept ORDER BY pay desc) densrnk&lt;br /&gt;FROM Empdept nick pay RNUM RNK DENSRNK;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Admins&lt;/td&gt;&lt;td&gt;Mike&lt;/td&gt;&lt;td&gt;5,000&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Admins&lt;/td&gt;&lt;td&gt;Michael&lt;/td&gt;&lt;td&gt;4,000&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Admins&lt;/td&gt;&lt;td&gt;Wellington&lt;/td&gt;&lt;td&gt;3,000&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;CEOs&lt;/td&gt;&lt;td&gt;Maush&lt;/td&gt;&lt;td&gt;50,000&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;CEOs&lt;/td&gt;&lt;td&gt;Pierre&lt;/td&gt;&lt;td&gt;4,000&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;CEOs&lt;/td&gt;&lt;td&gt;Bob&lt;/td&gt;&lt;td&gt;3,000&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;CEOs&lt;/td&gt;&lt;td&gt;Boldrick&lt;/td&gt;&lt;td&gt;3,000&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td style="color:red"&gt;3&lt;/td&gt;&lt;td style="color:red"&gt;3&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;CEOs&lt;/td&gt;&lt;td&gt;Vlax&lt;/td&gt;&lt;td&gt;1,000&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td style="color:red"&gt;5&lt;/td&gt;&lt;td style="color:red"&gt;4&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Programers&lt;/td&gt;&lt;td&gt;Bix&lt;/td&gt;&lt;td&gt;5,000&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Programers&lt;/td&gt;&lt;td&gt;Pierre&lt;/td&gt;&lt;td&gt;5,000&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td style="color:red"&gt;1&lt;/td&gt;&lt;td style="color:red"&gt;1&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Programers&lt;/td&gt;&lt;td&gt;Ivanhoe&lt;/td&gt;&lt;td&gt;3,000&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td style="color:red"&gt;3&lt;/td&gt;&lt;td style="color:red"&gt;2&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Programers&lt;/td&gt;&lt;td&gt;Boldrick&lt;/td&gt;&lt;td&gt;2,000&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Programers&lt;/td&gt;&lt;td&gt;Payson&lt;/td&gt;&lt;td&gt;1,000&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-size:180%;"&gt;Partition by&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Watch what "partition by" can do:&lt;br /&gt;If we need 3 most payed emps by department we surround our query with SELECT * FROM( ourQuery ) where rnum &lt; 4&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-size:180%;"&gt;LEAD/LAG&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;-- LEAD/LAG&lt;br /&gt;SELECT dept, nick, pay,&lt;br /&gt;LEAD(pay, 1, 0) OVER (PARTITION BY dept ORDER BY pay DESC NULLS LAST) NEXT_LOWER_SAL,&lt;br /&gt;LAG(pay, 1, 0) OVER (PARTITION BY dept ORDER BY pay DESC NULLS LAST) PREV_HIGHER_SAL&lt;br /&gt;FROM Emp&lt;br /&gt;ORDER BY dept, pay DESC;dept nick pay NEXT_LOWER_SAL PREV_HIGHER_SAL&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Admins Mike 5,000 4,000 0&lt;br /&gt;Admins Michael 4,000 3,000 5,000&lt;br /&gt;Admins Wellington 3,000 0 4,000&lt;br /&gt;CEOs Maush 50,000 4,000 0&lt;br /&gt;CEOs Pierre 4,000 3,000 50,000&lt;br /&gt;CEOs Bob 3,000 3,000 4,000&lt;br /&gt;CEOs Boldrick 3,000 1,000 3,000&lt;br /&gt;CEOs Vlax 1,000 0 3,000&lt;br /&gt;Programers Bix 5,000 5,000 0&lt;br /&gt;Programers Pierre 5,000 3,000 5,000&lt;br /&gt;Programers Ivanhoe 3,000 2,000 5,000&lt;br /&gt;Programers Boldrick 2,000 1,000 3,000&lt;br /&gt;Programers Payson 1,000 0 2,000&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-size:180%;"&gt;FIRST_VALUE and LAST_VALUE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;FIRST_VALUE and LAST_VALUE work on first and last record in table&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;-- FIRST_VALUE/LAST_VALUE&lt;br /&gt;SELECT nick, dept, pay - FIRST_VALUE(pay)&lt;br /&gt;OVER (PARTITION BY dept ORDER BY pay DESC) pay_GAP&lt;br /&gt;FROM Emp&lt;br /&gt;ORDER BY dept, pay_GAP DESCnick dept pay_GAP&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Mike Admins 0&lt;br /&gt;Michael Admins -1,000&lt;br /&gt;Wellington Admins -2,000&lt;br /&gt;Maush CEOs 0&lt;br /&gt;Pierre CEOs -46,000&lt;br /&gt;Bob CEOs -47,000&lt;br /&gt;Boldrick CEOs -47,000&lt;br /&gt;Vlax CEOs -49,000&lt;br /&gt;Bix Programers 0&lt;br /&gt;Pierre Programers 0&lt;br /&gt;Ivanhoe Programers -2,000&lt;br /&gt;Boldrick Programers -3,000&lt;br /&gt;Payson Programers -4,000&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-size:180%;"&gt;KEEP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Dunno what this does.&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;--FIRST/LAST&lt;br /&gt;SELECT dept,&lt;br /&gt;nick,&lt;br /&gt;pay,&lt;br /&gt;MIN(pay) KEEP (DENSE_RANK FIRST ORDER BY pay) OVER (PARTITION BY dept) "Lowest",&lt;br /&gt;MAX(pay) KEEP (DENSE_RANK LAST ORDER BY pay) OVER (PARTITION BY dept) "Highest"&lt;br /&gt;FROM Emp&lt;br /&gt;ORDER BY dept, pay;dept nick pay Lowest Highest&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Admins Wellington 3,000 3,000 5,000&lt;br /&gt;Admins Michael 4,000 3,000 5,000&lt;br /&gt;Admins Mike 5,000 3,000 5,000&lt;br /&gt;CEOs Vlax 1,000 1,000 50,000&lt;br /&gt;CEOs Boldrick 3,000 1,000 50,000&lt;br /&gt;CEOs Bob 3,000 1,000 50,000&lt;br /&gt;CEOs Pierre 4,000 1,000 50,000&lt;br /&gt;CEOs Maush 50,000 1,000 50,000&lt;br /&gt;Programers Payson 1,000 1,000 5,000&lt;br /&gt;Programers Boldrick 2,000 1,000 5,000&lt;br /&gt;Programers Ivanhoe 3,000 1,000 5,000&lt;br /&gt;Programers Pierre 5,000 1,000 5,000&lt;br /&gt;Programers Bix 5,000 1,000 5,000&lt;br /&gt;&lt;br /&gt;Have Fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-2286203745880042617?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/2286203745880042617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=2286203745880042617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2286203745880042617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/2286203745880042617'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2008/08/oracle-analytic-functions.html' title='Oracle analytic functions'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6842131007937396625</id><published>2008-03-03T07:01:00.000-08:00</published><updated>2009-12-17T01:19:34.830-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Jasper'/><category scheme='http://www.blogger.com/atom/ns#' term='IReport'/><title type='text'>Getting serious (Exporting PDF from Jasper)</title><content type='html'>Ok, ok... Blogging is good for your health :) &lt;br /&gt;My boss asked me today did I use JFlex and can I provide quick tutorial.&lt;br /&gt;I used JFLex, JCUp... made some compiling efforts back then. But I can't remember a thing.&lt;br /&gt;So, my first effort in getting serious :) will be my work in progress, using JasperReports and IReport.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IReport crash course&lt;br /&gt;Ok, what is important.&lt;br /&gt;Go to View-&gt;Fields. Field names are in my example "myObjectAttribute1" and "myObjectAttribute2". I'll use them later in Java for my data source method "getFieldValue(JRField jrField)". And thats all for simple report! :)&lt;br /&gt;Put some static text, some pictures... and your text fields for "myObjectAttributes". Something like this:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/chobicus/LetYourMindGoAndYourBodyWillFollow/photo?authkey=jrv-nYIeoHw#5178707413746229154"&gt;&lt;img src="http://lh5.google.com/chobicus/R9529HAGn6I/AAAAAAAAAmo/8iV6x450oa8/s288/ScreenHunter_02%20Mar.%2017%2014.48.gif" /&gt;&lt;/a&gt;&lt;br /&gt;Now save as "MyTemplateName.jrxml".&lt;br /&gt;Compile.&lt;br /&gt;Put it where your Java code can find it.&lt;br /&gt;That's all.&lt;br /&gt;&lt;span&gt;What you need in your Java code&lt;/span&gt;&lt;br /&gt;First you need a DataSource for your report. I needed swing table in my report so I'm getting my table model  ArrayList and making MyDataSource:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt; &lt;br /&gt;public class CustomJasperDataSource implements JRDataSource {&lt;br /&gt;&lt;br /&gt;MyObjectInMyTableClass chartEntry;&lt;br /&gt;&lt;br /&gt;Iterator iterator;&lt;br /&gt;&lt;br /&gt;ArrayList chartEntries;&lt;br /&gt;&lt;br /&gt;public CustomJasperDataSource(ArrayList chartEntries) {&lt;br /&gt;this.chartEntries = chartEntries;&lt;br /&gt;iterator = chartEntries.iterator();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Object getFieldValue(JRField jrField) throws JRException {&lt;br /&gt;if (jrField.getName().equalsIgnoreCase("myObjectAttribute1")) {&lt;br /&gt; return chartEntry.getMyObjectAttribute1();&lt;br /&gt;}&lt;br /&gt;if (jrField.getName().equalsIgnoreCase("myObjectAttribute2")){&lt;br /&gt; return chartEntry.getMyObjectAttribute2();&lt;br /&gt;}&lt;br /&gt;...&lt;br /&gt;return null;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public boolean next() throws JRException {&lt;br /&gt;boolean hasNext = iterator.hasNext();&lt;br /&gt;if (hasNext) {&lt;br /&gt; chartEntry = (MyObjectInMyTableClass) iterator.next();&lt;br /&gt;}&lt;br /&gt;return hasNext;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span&gt;Invoking Jasper&lt;/span&gt;&lt;br /&gt;This is called when you press some swing button:&lt;br /&gt;&lt;pre name="code" class="java"&gt; &lt;br /&gt;protected void jButtonCreatePdfActionPerformed(ActionEvent e) {&lt;br /&gt;&lt;br /&gt; JasperPrint jp = generateReport(myArrayListOfData);&lt;br /&gt; JasperViewer jasperViewer = new JasperViewer(jp, false);&lt;br /&gt; jasperViewer.setVisible(true);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And this is how generateReport method looks like:&lt;br /&gt;&lt;pre name="code" class="java"&gt; &lt;br /&gt;private JasperPrint generateReport(ArrayList data) {&lt;br /&gt;    JasperPrint jasperPrint = null;&lt;br /&gt;    String templateName = "MyTemplateName.jasper";&lt;br /&gt;    try {&lt;br /&gt;        jasperPrint = JasperFillManager.fillReport(templateName,&lt;br /&gt;                new HashMap(), new CustomJasperDataSource(data));&lt;br /&gt;    } catch (JRException e) {&lt;br /&gt;                  doSOmeExcCatching();&lt;br /&gt;    }&lt;br /&gt;    return jasperPrint;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-6842131007937396625?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6842131007937396625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6842131007937396625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6842131007937396625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6842131007937396625'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2008/03/getting-serious.html' title='Getting serious (Exporting PDF from Jasper)'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-6668988565127932624</id><published>2007-09-24T08:03:00.000-07:00</published><updated>2008-03-19T08:29:27.668-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><title type='text'>Some nice thoughts</title><content type='html'>Martin Luther King:"History will record that the greatest tragedy of this period of social transition, was not the vitriolic words and actions of the bad people – but the appalling silence and indifference of the good people. Our generation will not only have to repent for the words and acts of the children of darkness, but also for the fears and apathy of the children of light."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-6668988565127932624?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/6668988565127932624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=6668988565127932624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6668988565127932624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/6668988565127932624'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2007/09/history-will-record-that-greatest.html' title='Some nice thoughts'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8048296550383388375.post-9073526102800763187</id><published>2007-09-12T02:37:00.000-07:00</published><updated>2008-03-19T08:30:48.088-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thoughts'/><title type='text'>Some nice thoughts</title><content type='html'>&lt;a href="http://devizen.com/blog/2007/09/11/ruin/"&gt;http://devizen.com/blog/2007/09/11/ruin/&lt;/a&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Blaise&lt;/span&gt; Pascal:  “We never keep to the present. We … anticipate the future as if we found it too slow in coming and were trying to hurry it up, or we recall the past as if to stay its too rapid flight. We are so unwise that we wander about in times that do not belong to us and do not think of the only one that does; so vain that we dream of times that are not and blindly flee the only one that is… [We] think of how we are going to arrange things over which we have no control for a time we can never be sure of reaching… Thus we never actually live, but hope to live, and since we are always planning how to be happy, it is inevitable that we should never be so.”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8048296550383388375-9073526102800763187?l=chobicus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chobicus.blogspot.com/feeds/9073526102800763187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8048296550383388375&amp;postID=9073526102800763187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/9073526102800763187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8048296550383388375/posts/default/9073526102800763187'/><link rel='alternate' type='text/html' href='http://chobicus.blogspot.com/2007/09/blaise-pascal-we-never-keep-to-present.html' title='Some nice thoughts'/><author><name>Bojan Blagojević</name><uri>https://profiles.google.com/102413062222619107950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-ShyldJ5uEZU/AAAAAAAAAAI/AAAAAAAAAAA/I-sOqTkWoJs/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
