<?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-18034007</id><updated>2012-02-16T13:25:45.736+02:00</updated><category term='eclipse3.5 Yoxos onDemand builder'/><title type='text'>brainart on the web</title><subtitle type='html'>backup for ideas</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18034007.post-6535562053042689049</id><published>2011-03-01T09:38:00.001+02:00</published><updated>2011-03-01T09:40:30.133+02:00</updated><title type='text'>Clojure: Truthy and Falsey</title><content type='html'>&lt;div&gt;read about this concept in Clojure - &lt;/div&gt;&lt;a href="http://blog.jayfields.com/2011/02/clojure-truthy-and-falsey.html"&gt;http://blog.jayfields.com/2011/02/clojure-truthy-and-falsey.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-6535562053042689049?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/6535562053042689049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=6535562053042689049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/6535562053042689049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/6535562053042689049'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2011/03/clojure-truthy-and-falsey.html' title='Clojure: Truthy and Falsey'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18034007.post-654843937982910150</id><published>2009-07-31T14:24:00.001+03:00</published><updated>2009-07-31T14:27:15.756+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse3.5 Yoxos onDemand builder'/><title type='text'>Yoxos onDemand Eclipse distro builder</title><content type='html'>As many java developers I migrated to new Eclipse 3.5 release named "Galileo".&lt;br /&gt;Everything worked perfect till the moment when I updated Subversion plugin - Sublipse from 1.6.2 to 1.6.3&lt;br /&gt;&lt;br /&gt;As a result I lost all the additional plugings installed over eclipse including the Subclipse.&lt;br /&gt;The list of installed features shows the plugings, but nothing more. My attempt to recover the eclipse configuration failed.&lt;br /&gt;&lt;br /&gt;I also tried to install everything from scratch, but again I got the same result. The failure was persistenty reproducable.&lt;br /&gt;It seems that the new EPP update manager which is new in Galileo and supposed to be better fails.&lt;br /&gt;&lt;br /&gt;So I decided to use the Yoxos onDemand distro builder to prepare the desired eclipse environment.&lt;br /&gt;It takes me just few minitus to prepare what I wanted, plus the service give you the ability to create a profile that keeps the already distro for late download.&lt;br /&gt;&lt;br /&gt;Finally I have everything working without dealing with the eclipse update manager.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eclipsesource.com/en/yoxos/yoxos-ondemand/"&gt;http://eclipsesource.com/en/yoxos/yoxos-ondemand/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-654843937982910150?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/654843937982910150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=654843937982910150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/654843937982910150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/654843937982910150'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2009/07/yoxos-ondemand-eclipse-distro-builder.html' title='Yoxos onDemand Eclipse distro builder'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18034007.post-7805559689240767484</id><published>2007-09-17T11:59:00.000+03:00</published><updated>2007-09-21T10:01:06.721+03:00</updated><title type='text'>T5 and form component</title><content type='html'>Surprise  or not in Tapestry 5 there is no way to submit https request from non SSL context.&lt;br /&gt;&lt;br /&gt;A good feature in previous release was the ability to provide connection type - http or https.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-7805559689240767484?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/7805559689240767484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=7805559689240767484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/7805559689240767484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/7805559689240767484'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2007/09/surprise-or-not-in-tapestry-5-there-is.html' title='T5 and form component'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18034007.post-2156943604865067646</id><published>2007-09-05T13:50:00.000+03:00</published><updated>2007-09-05T14:17:28.421+03:00</updated><title type='text'>Tapestry 5 approach to override services</title><content type='html'>One of the things I was not happy with early versions of tapestry framework is the ability to override behavior of components rendering.&lt;br /&gt;&lt;br /&gt;When it comes to render strict xhtml then the only thing you can do is start overriding components one by one.&lt;br /&gt;&lt;br /&gt;Now in tapestry 5 the strict xhtml is not supported as expected ( but promised). Probably it will be fixed latter. But till then, I found that now the overriding is much easy with IoC build-in support.&lt;br /&gt;&lt;br /&gt;In order to render your html output as valid xhtml you may do something like this:&lt;br /&gt;&lt;br /&gt;1. Write your own StrictMarkupModel.java that overrides:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt; public EndTagStyle getEndTagStyle(String element)&lt;br /&gt;{&lt;br /&gt;   boolean isEmpty = EMPTY_ELEMENTS.contains(element);&lt;br /&gt;&lt;br /&gt;   return isEmpty ? EndTagStyle.&lt;span style="font-weight: bold;"&gt;ABBREVIATE&lt;/span&gt; : EndTagStyle.REQUIRE;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Write your own MarkupWriterFactoryImpl.java that returns:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;public MarkupWriter newMarkupWriter()&lt;br /&gt; {&lt;br /&gt;   return new MarkupWriterImpl(new StrictMarkupModel(), _componentInvocationMap);&lt;br /&gt; }&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Override the alias to existing service into AppModule.java:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;/span&gt;&lt;/span&gt; public static MarkupWriterFactory buildStrictMarkupWriterFactory(&lt;br /&gt;ComponentInvocationMap componentInvocationMap)&lt;br /&gt;{&lt;br /&gt;       return new MarkupWriterFactoryImpl(componentInvocationMap);&lt;br /&gt;   }&lt;br /&gt;  &lt;br /&gt;   public static void contributeAliasOverrides(@InjectService("StrictMarkupWriterFactory")&lt;br /&gt;           MarkupWriterFactory markupWriterFactory,&lt;br /&gt;Configuration configuration)&lt;br /&gt;   {&lt;br /&gt;       configuration.add(AliasContribution.create(MarkupWriterFactory.class, markupWriterFactory));&lt;br /&gt;   }&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-2156943604865067646?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/2156943604865067646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=2156943604865067646' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/2156943604865067646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/2156943604865067646'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2007/09/tapestry-5-approach-to-override.html' title='Tapestry 5 approach to override services'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18034007.post-116558387428922185</id><published>2006-12-08T15:13:00.000+02:00</published><updated>2007-01-09T11:36:12.983+02:00</updated><title type='text'>my recent picture</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/5395/1081/1600/5277/small2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Strange days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-116558387428922185?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/116558387428922185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=116558387428922185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/116558387428922185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/116558387428922185'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2006/12/my-recent-picture.html' title='my recent picture'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18034007.post-116523476448863940</id><published>2006-12-04T14:09:00.000+02:00</published><updated>2006-12-04T23:47:14.566+02:00</updated><title type='text'>www.lingodeal.com</title><content type='html'>After a few months of marketing studies and the same amount of development the &lt;a href="http://www.lingodeal.com"&gt;www.lingodeal.com&lt;/a&gt; is a fact.&lt;br /&gt;&lt;br /&gt;Now it's in his beta stage and of course still waiting for new UI skin, but it's Up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-116523476448863940?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/116523476448863940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=116523476448863940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/116523476448863940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/116523476448863940'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2006/12/wwwlingodealcom.html' title='www.lingodeal.com'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18034007.post-116435687766392066</id><published>2006-11-24T10:19:00.000+02:00</published><updated>2006-11-24T10:27:57.670+02:00</updated><title type='text'>back to my blog</title><content type='html'>After one year, since my first post, I'm back again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-116435687766392066?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/116435687766392066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=116435687766392066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/116435687766392066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/116435687766392066'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2006/11/back-to-my-blog.html' title='back to my blog'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18034007.post-112982061747402132</id><published>2005-10-20T17:50:00.000+03:00</published><updated>2005-10-20T18:18:44.060+03:00</updated><title type='text'>Crystal Reports optimization</title><content type='html'>&lt;span style="font-weight:bold;"&gt;How to keep grouping on server if there is a formula in record condition?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yesterday I spent a few hours with Crystal Reports 8.5, trying to move all important calculations in a report to Oracle server. My goal was to do all grouping on the server. With such an attitude I hoped to move all the logic to database view and to keep presentation as simple as possible.&lt;br /&gt;&lt;br /&gt;My disappointment rises when I realized that Crystal asks for data with full SQL query when there is a formula in record condition and not with optimized query.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The problem:&lt;/span&gt;&lt;br /&gt;When Crystal "thinks" that the server will not be able to understand its queries, it forwards the db the minimum info, and does the grouping and the elimination of records on the client.&lt;br /&gt;&lt;br /&gt;In my example I had something like this:&lt;br /&gt;&lt;br /&gt;if ({?Service}&lt;&gt;"All") then ({?Service} = {SUMMARY_DOWNLOAD.SERVICE}) else true;&lt;br /&gt;&lt;br /&gt;Where I tried to add where clause, only if the parameter “Service” is different from string “All”.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Solution:&lt;/span&gt;&lt;br /&gt;Try to avoid formulas and use only parameters. &lt;br /&gt;How? &lt;br /&gt;Translate the formula to simple “understandable” sql condition. This approach requires modification of the record condition and DB view as well&lt;br /&gt;&lt;br /&gt;{SUMMARY_DOWNLOAD.SERVICE} = {?Service} or  {SUMMARY_DOWNLOAD.ALL_SERVICE} = {?Service}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Original oracle view:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE VIEW SUMMARY_DOWNLOAD AS&lt;br /&gt;SELECT&lt;br /&gt;    "TRANSACTIONS"."DOWNLOAD_DATE", &lt;br /&gt;    "TRANSACTIONS"."ITEM_NAME", &lt;br /&gt;    "TRANSACTIONS"."FLVSIZE", &lt;br /&gt;    "TRANSACTIONS".ITEM_DESC&lt;br /&gt;FROM&lt;br /&gt;    "TRANSACTIONS" "TRANSACTIONS"&lt;br /&gt;WHERE&lt;br /&gt;    "TRANSACTIONS"."WAS_DOWNLOAD" = '1' AND&lt;br /&gt;    "TRANSACTIONS"."TRANS_STATUS" = 1 AND&lt;br /&gt;ORDER BY&lt;br /&gt;    "TRANSACTIONS"."ITEM_NAME" ASC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;After re-factoring:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE VIEW RPT_SUMMARY_DOWNLOAD AS&lt;br /&gt;SELECT&lt;br /&gt;    "TRANSACTIONS"."DOWNLOAD_DATE", &lt;br /&gt;    "TRANSACTIONS"."ITEM_NAME", &lt;br /&gt;    "TRANSACTIONS"."FLVSIZE", &lt;br /&gt;    "TRANSACTIONS".ITEM_DESC, &lt;br /&gt;    &lt;span style="font-weight:bold;"&gt;'ALL' ALL_SERVICE&lt;/span&gt;&lt;br /&gt;FROM&lt;br /&gt;    "TRANSACTIONS" "TRANSACTIONS"&lt;br /&gt;WHERE&lt;br /&gt;    "TRANSACTIONS"."WAS_DOWNLOAD" = '1' AND&lt;br /&gt;    "TRANSACTIONS"."TRANS_STATUS" = 1 AND&lt;br /&gt;ORDER BY&lt;br /&gt;    "TRANSACTIONS"."ITEM_NAME" ASC&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18034007-112982061747402132?l=brainartweb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brainartweb.blogspot.com/feeds/112982061747402132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18034007&amp;postID=112982061747402132' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/112982061747402132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18034007/posts/default/112982061747402132'/><link rel='alternate' type='text/html' href='http://brainartweb.blogspot.com/2005/10/crystal-reports-optimization.html' title='Crystal Reports optimization'/><author><name>brainart</name><uri>http://www.blogger.com/profile/11469246515309247119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/x/blogger/5395/1081/320/338159/small2.jpg'/></author><thr:total>1</thr:total></entry></feed>
