<?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-5735215760242515296</id><updated>2012-01-10T13:25:28.684+02:00</updated><category term='rest'/><category term='jquery'/><category term='iPhone'/><category term='Programming Languages'/><category term='Itea'/><category term='groovy'/><category term='seam'/><category term='Cache'/><category term='Software Management'/><category term='Distributed'/><category term='Hypothesis'/><category term='Objective-C'/><category term='Clustering'/><category term='Hibernate'/><category term='JSF'/><category term='CDI'/><category term='pattern recognition'/><category term='QMass'/><category term='Oracle'/><category term='Java'/><category term='JEE'/><category term='OpenGL'/><category term='Weld'/><category term='sum'/><title type='text'>on the art of the software development</title><subtitle type='html'>My notes, thoughts on software development, about java, jee, objective-c, application servers, and more...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-8190820201272579138</id><published>2012-01-10T13:22:00.000+02:00</published><updated>2012-01-10T13:25:28.690+02:00</updated><title type='text'>QMass M1</title><summary type='text'>It has been a while since I wrote anything on QMass. Here are the updates :


Grid now tries to persists it's values, asynchronously, on given databases. Currently MongoDB is the default but this would be pluggable.
I have tried various scripting languages for the console. I was not very happy with Groovy because it had too many dependencies and kind of a overkill for my needs. I replaced it with</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/8190820201272579138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2012/01/qmass-m1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8190820201272579138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8190820201272579138'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2012/01/qmass-m1.html' title='QMass M1'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-8784081895176282939</id><published>2011-11-28T13:43:00.001+02:00</published><updated>2011-12-14T14:13:01.495+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pattern recognition'/><title type='text'>Recognizing The Letters as Being Drawn With The Mouse</title><summary type='text'>While playing-out with a Kinect device, I think I will be writing more about this later, I had an idea. I could detect letters being drawn with the mouse and convert them to key presses enabling the user, use the mouse  like a keyboard. It's basically same problem like they do with these pens.

So while drawing the above with the mouse my app. prints "BABA" on where the cursor is. There are two </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/8784081895176282939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/11/recognizing-letters-as-being-drawn-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8784081895176282939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8784081895176282939'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/11/recognizing-letters-as-being-drawn-with.html' title='Recognizing The Letters as Being Drawn With The Mouse'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-vnS5sELBOVs/TtN5JYUKtaI/AAAAAAAAE7k/pAUPaXVzaa4/s72-c/baba.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5353626692959924578</id><published>2011-10-31T14:42:00.000+02:00</published><updated>2011-11-01T09:37:56.418+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Itea'/><title type='text'>Hot R&amp;D Topics At Itea 2011 co-summit</title><summary type='text'>Last week I attended the Itea2/Artemis co-summit. It's a showcase of Itea funded R&amp;D projects.
This year apparently most projects are  focused on embeded software (Artemis), M2M Networks and Green Energy.
There are several projects that focus on M2M architecture/applications, including ours A2Nets, which would allow M2M devices to connect and exchange information with each other. Notable </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5353626692959924578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/10/hot-r-topics-at-itea-2011-co-summit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5353626692959924578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5353626692959924578'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/10/hot-r-topics-at-itea-2011-co-summit.html' title='Hot R&amp;D Topics At Itea 2011 co-summit'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2414426393186067603</id><published>2011-09-23T14:32:00.001+03:00</published><updated>2011-09-23T15:02:25.180+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Creating a JSF2 Console Component</title><summary type='text'>Since most of the people coming to my site are still looking for JSF how-to's here is one more. This is an how-to on creating a console component, like the one here, with just the JSF2 api.
A shell like console's basic requirements look like this ; 

Should prompt the user to enter a command. 
Evaluate the command and print the result.
Should limit the text to be entered only on the prompt line </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2414426393186067603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/09/creating-jsf2-console-component.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2414426393186067603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2414426393186067603'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/09/creating-jsf2-console-component.html' title='Creating a JSF2 Console Component'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-7872479768138237782</id><published>2011-08-27T12:20:00.004+03:00</published><updated>2011-08-27T12:35:14.367+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distributed'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='QMass'/><title type='text'>QMass, P2P Communication over TCP</title><summary type='text'>I have done significant refactoring and added new features to QMass :P2P, TCP communication, UDP for cluster discovery codeA new console app working online or at command shellSignificant performance improvementsYou may try out the console at http://qmass.cloudfoundry.com , which spans 8 instances.And here is my new logo :</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/7872479768138237782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/08/qmass-p2p-communication-over-tcp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/7872479768138237782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/7872479768138237782'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/08/qmass-p2p-communication-over-tcp.html' title='QMass, P2P Communication over TCP'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-cVenvuOKMYM/Tli56u85CQI/AAAAAAAAE0A/T-V0DCcw7ic/s72-c/qmass.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2193899679796000778</id><published>2011-06-07T12:03:00.013+03:00</published><updated>2011-06-21T11:11:32.645+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Clustering'/><category scheme='http://www.blogger.com/atom/ns#' term='QMass'/><title type='text'>QMass as an Data Grid</title><summary type='text'>Memcached defines it's self as in-memory object system. Hazelcast defines it's self as a distributed data grid. What they mean is there is cluster of instances that form a data grid, where a key value pair is hold on only one instance.I started developing QMass with cache data in mind. Particularly for use with Hibernate 2nd level cache where "a key value pair is hold on only one instance" </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2193899679796000778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/06/qmass-as-data-grid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2193899679796000778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2193899679796000778'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/06/qmass-as-data-grid.html' title='QMass as an Data Grid'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-7877676052639383804</id><published>2011-05-24T16:31:00.005+03:00</published><updated>2011-05-24T16:39:33.058+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Clustering'/><title type='text'>QMass for Sharing Sessions</title><summary type='text'>I have just committed code that adds session sharing support to QMass.By defining a filter QMass will share session attributes amongst cluster. It serializes/deserializes the values and does not work synchronously just yet. QMass project page, QMass wiki</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/7877676052639383804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/05/qmass-for-sharing-sessions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/7877676052639383804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/7877676052639383804'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/05/qmass-for-sharing-sessions.html' title='QMass for Sharing Sessions'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-8228447361350050280</id><published>2011-05-17T09:41:00.002+03:00</published><updated>2011-05-17T09:50:12.765+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Tip to Detect Connection Leaks</title><summary type='text'>To detect potential connections on a Weblogic backed connection pool set the "Inactive Connection Timeout" close to zero. Setting this feature will cause the application server to forcibly close the connections which have been left inactive for the timeout period. It will print out a stack trace which will guide you where the connection is acquired and not yet released so that you could </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/8228447361350050280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/05/tip-to-detect-connection-leaks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8228447361350050280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8228447361350050280'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/05/tip-to-detect-connection-leaks.html' title='Tip to Detect Connection Leaks'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5504903759898074806</id><published>2011-05-14T14:24:00.007+03:00</published><updated>2011-05-16T11:32:31.787+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Paging with Hibernate</title><summary type='text'>Hibernate query api has setFirstResults and setMaxResults methods that restricts the result set for ceratain amaount. Typical usage inside a generic method would be like :public List find(String queryString, Object[] queryArgs, int first, int max) { Query q = getEntityManager().createQuery(queryString); if (queryArgs != null) {    setParameters(q, queryArgs); } q.setFirstResult(first); </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5504903759898074806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/05/paging-with-hibernate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5504903759898074806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5504903759898074806'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/05/paging-with-hibernate.html' title='Paging with Hibernate'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-4002122943467173780</id><published>2011-04-19T16:35:00.007+03:00</published><updated>2011-04-29T13:48:36.900+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Clustering'/><category scheme='http://www.blogger.com/atom/ns#' term='Cache'/><title type='text'>QMass, An API for Cluster Wide Operations</title><summary type='text'>I have started a new clustering api for Java. You can access the project page at http://code.google.com/p/qmass/. Very first version is ready to be downloaded.It's first application is an hibernate cache provider implementation. You can start using it by simply defining org.mca.qmass.cache.hibernate.provider.QMassHibernateCacheProvider as the hibernate cache provider. By default it will try to </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/4002122943467173780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/04/qmass-api-for-cluster-wide-operations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4002122943467173780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4002122943467173780'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/04/qmass-api-for-cluster-wide-operations.html' title='QMass, An API for Cluster Wide Operations'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-8154008408245513328</id><published>2011-04-14T11:51:00.016+03:00</published><updated>2011-04-25T12:04:22.952+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Languages'/><title type='text'>New Languages on the JVM</title><summary type='text'>In case you didn't notice there is a trend for developing new languages that run on top of JVM. Jython, JRuby, Scala, Groovy, Clojure are examples. It seems latest addition will be the RedHat's Ceylon.I have tried some of these languages. I wrote my impressions on Groovy here. After 6 years of professional experience with Java, here is what I would do to fix it and what I wont touch.Don't touch </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/8154008408245513328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/04/new-languages-on-jvm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8154008408245513328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8154008408245513328'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/04/new-languages-on-jvm.html' title='New Languages on the JVM'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-115527238827329422</id><published>2011-03-29T10:19:00.006+03:00</published><updated>2011-03-29T11:16:27.234+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Cache'/><title type='text'>Comparing different cache products</title><summary type='text'>My app. relies heavily on cache to function. Although I use cache on the view, I use it mostly as Hibernate 2nd level cache. Here are some of the products I used and what I think about them.EhcacheI think this was used to be called Easy Hibernate Cache and Hibernate people promoted it's use. Now it's owned by Terracotta. I used this quite for a while, it's light, fast and mostly easy to use. </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/115527238827329422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2011/03/comparing-different-cache-products.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/115527238827329422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/115527238827329422'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2011/03/comparing-different-cache-products.html' title='Comparing different cache products'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-4382614698939088851</id><published>2010-12-29T14:08:00.012+02:00</published><updated>2010-12-30T11:04:10.259+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate Id Generation and Oracle Sequences</title><summary type='text'>I thought that @SequenceGenerator allocationSize attribute defined the number to increment the sequence. The API says that anyway... If you forget the fact that, you can't increment the Oracle Sequences more or less than the number you specified while you created them, you may find your self in a trap.By default you create your sequences with an increment of 1. This becomes a problem if your app.</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/4382614698939088851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/12/hibernate-id-generation-and-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4382614698939088851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4382614698939088851'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/12/hibernate-id-generation-and-oracle.html' title='Hibernate Id Generation and Oracle Sequences'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-1502735259997519722</id><published>2010-12-27T16:22:00.003+02:00</published><updated>2010-12-28T10:58:45.384+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java Frameworks Presentation</title><summary type='text'>My little last minute in-house java frameworks presentation :Java frameworksView more presentations from Murat Can ALPAY.</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/1502735259997519722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/12/java-frameworks-presentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1502735259997519722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1502735259997519722'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/12/java-frameworks-presentation.html' title='Java Frameworks Presentation'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-4743863957702760635</id><published>2010-11-26T15:51:00.006+02:00</published><updated>2010-11-29T09:31:12.118+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>About JSF</title><summary type='text'>I have been using JSF for at least 5 years I think. And here I am thinking how can I make my menu item, which is a JSF component, to open up its link on a new window. I know I should check the reference document and there is probably an attribute for it but that seems too much hassle. I could have set the target attribute on a standard html anchor. There is always an answer with JSF but it's not </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/4743863957702760635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/11/about-jsf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4743863957702760635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4743863957702760635'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/11/about-jsf.html' title='About JSF'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2794434875750138540</id><published>2010-10-25T11:17:00.005+03:00</published><updated>2010-10-25T14:50:28.420+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cache'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>JSF Page Fragment Caching</title><summary type='text'>Problem : Our menu took ages to render.Our application menu had links to various functions of the apps., 400+ nodes, which needed to be authorized based on EL. JSF has to execute certain EL for each node and decide if its to be rendered and than actually render the menu.Solution : Cache it.Simplest solution is to cache your menu. Our menu changes when the users roles changes which doesn't happen </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2794434875750138540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/10/jsf-page-fragment-caching.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2794434875750138540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2794434875750138540'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/10/jsf-page-fragment-caching.html' title='JSF Page Fragment Caching'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-3360507504884818270</id><published>2010-05-27T17:05:00.002+03:00</published><updated>2010-05-27T17:17:01.073+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Facelet tip</title><summary type='text'>A quick facelet tip. If you needed an extra attribute on a component you can add and access it easily with facelets. Here I needed to add an node attribute on boolean check box, which is part of rich faces tree.&lt;h:selectBooleanCheckbox id="tree_cbx" value="#{tree.getNode(item).selected}"                     node="#{tree.getNode(item)}"&gt;&lt;a4j:support ajaxSingle="true" event="onchange"             </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/3360507504884818270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/05/facelet-tip.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3360507504884818270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3360507504884818270'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/05/facelet-tip.html' title='Facelet tip'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5453016889076473573</id><published>2010-05-19T11:01:00.006+03:00</published><updated>2010-05-19T11:38:30.665+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sum'/><title type='text'>Status</title><summary type='text'>I should have started using Maven earlier. If you want to manage an inhouse repository check out the Artifactory. Ill make better use of it on my next project.Hudson: More capable than CC, easily configurable UI, pluggable, integrates with svn, maven, ant... And don't forget to revert before update.HTML5 Canvas looks cool. 3D Games + Drawing tools +  ?. If you haven't already check this out ; </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5453016889076473573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/05/status.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5453016889076473573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5453016889076473573'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/05/status.html' title='Status'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-3098855950824512141</id><published>2010-03-24T10:14:00.007+02:00</published><updated>2010-03-24T17:31:46.183+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate Usage Strategy</title><summary type='text'>Lately I got to refresh my hibernate knowledge. On previous posts I wrote about my experience with hibernate here and how things could get tangled up trying to load objects.When using hibernate most important decision you have to make is how you are going to manage sessions. Basically you have to choose from a method scoped (service) session or conversation scoped long running sessions. My choice</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/3098855950824512141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/03/hibernate-usage-strategy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3098855950824512141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3098855950824512141'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/03/hibernate-usage-strategy.html' title='Hibernate Usage Strategy'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-244397229459702302</id><published>2010-02-15T09:44:00.006+02:00</published><updated>2010-02-15T13:14:03.997+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><title type='text'>What I been up to last couple of weeks</title><summary type='text'>Day job kept quite busy last couple of weeks. Our new project is not managed in a agile way so after some months of preparing "big docs" we have finally hit the stage of coding. Just before starting to code, we have realised that we needed to change some of the architectural decisions we assumed and do some work on our code-base. We would have done that a lot earlier probably if we were on a </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/244397229459702302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/02/what-i-been-up-to-last-couple-of-weeks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/244397229459702302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/244397229459702302'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/02/what-i-been-up-to-last-couple-of-weeks.html' title='What I been up to last couple of weeks'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-8014267651183412656</id><published>2010-01-11T12:01:00.002+02:00</published><updated>2010-01-11T14:00:57.488+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Multipart Requests and JSF</title><summary type='text'>Multipart requests are used when client needs to upload files to server. A multipart request has a different encoding and requires to be parsed.JSF2 doesn't come with any fileupload component nor it has any support with multipart requests. A multipart request to JSF (mojarra impl. 2.0.2) just executes the 'restore view' and 'render response' phases, simply because JSF can't extract the request </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/8014267651183412656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2010/01/multipart-requests-and-jsf.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8014267651183412656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8014267651183412656'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2010/01/multipart-requests-and-jsf.html' title='Multipart Requests and JSF'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-1107220927085615684</id><published>2009-12-21T16:30:00.007+02:00</published><updated>2009-12-23T14:17:32.227+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='CDI'/><title type='text'>JSF PhaseListeners With Annotations</title><summary type='text'>Although JSF 2 moved most of it's configuration to annotations still some must be made on xml's, like the phase listeners.The most straight forward way to implement a mechanism that would enable defining them with annotations are treating phase listeners as singletons. Than we could simply annotate static methods with after phase, before phase annotations.A second and more elegant/useful way </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/1107220927085615684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/12/jsf-phaselisteners-with-annotations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1107220927085615684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1107220927085615684'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/12/jsf-phaselisteners-with-annotations.html' title='JSF PhaseListeners With Annotations'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2448202124501341745</id><published>2009-12-16T10:38:00.007+02:00</published><updated>2009-12-16T11:46:14.374+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Weld'/><title type='text'>Developing Custom Scopes/Contexts For Weld</title><summary type='text'>This one came up while developing an example JEE6 project, which I'll add it up here in the future. The case is I had a textbox bound to a request scoped bean. When user triggers the paint action the value in the textbox is to be added to the list below and the textbox should be empty. I thought marking the component request scoped should have been enough to empty its values but it </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2448202124501341745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/12/developing-custom-scopescontexts-for.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2448202124501341745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2448202124501341745'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/12/developing-custom-scopescontexts-for.html' title='Developing Custom Scopes/Contexts For Weld'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NgWFHxby4Y0/SyigFOuE-LI/AAAAAAAADWU/JFLdKG9Mqyo/s72-c/wall.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2219866885565105222</id><published>2009-12-09T13:42:00.012+02:00</published><updated>2009-12-09T16:01:19.714+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Weld'/><category scheme='http://www.blogger.com/atom/ns#' term='CDI'/><title type='text'>State of the 'Dependecy Injection'</title><summary type='text'>"Dependecy Injection" is one of the most popular design patterns on the Java platform. It was suggested by Martin Fowler, here, instead of the term "Inversion of control". Article was published on 2004. What it brings to a application is a way to create, compose, use and destroy any java object, which are called beans.The leading framework that first used this approach was the "the Spring </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2219866885565105222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/12/state-of-dependecy-injection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2219866885565105222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2219866885565105222'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/12/state-of-dependecy-injection.html' title='State of the &apos;Dependecy Injection&apos;'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NgWFHxby4Y0/Sx-O7Q9DkpI/AAAAAAAADTE/Kh4C9XqXBiQ/s72-c/Weld.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-4148793165450018847</id><published>2009-11-19T10:14:00.005+02:00</published><updated>2009-11-23T11:20:36.331+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Sinek, spreadsheet component, for JSF 2</title><summary type='text'>Here are some notes on developing a spreadsheet component for JSF. Here is how it looks like :Cells contents are being updated with ajax, user is able to add rows/columns by clicking the buttons on the bottom-right corner. I am calling this component 'sinek'. Probably I will rename it later. To check the source code click here. Here are the parts that make up the component :org.mca.sinek.jsf This</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/4148793165450018847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/11/sinek-spreadsheet-component-for-jsf-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4148793165450018847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4148793165450018847'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/11/sinek-spreadsheet-component-for-jsf-2.html' title='Sinek, spreadsheet component, for JSF 2'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NgWFHxby4Y0/Swo84Teo5xI/AAAAAAAADIM/2vbj9iSWyLw/s72-c/sheet1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-6446759454789206190</id><published>2009-11-12T16:29:00.006+02:00</published><updated>2009-12-09T13:48:56.100+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>JSF 2 Mind-Map</title><summary type='text'></summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/6446759454789206190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/11/jsf-2-mind-map.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/6446759454789206190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/6446759454789206190'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/11/jsf-2-mind-map.html' title='JSF 2 Mind-Map'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NgWFHxby4Y0/Sx-OnoQCyUI/AAAAAAAADS8/YgW7AYhM6rc/s72-c/Faces.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-4714330410696318717</id><published>2009-11-10T12:04:00.010+02:00</published><updated>2009-11-10T16:27:32.408+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>JSF2 Notes</title><summary type='text'>These are the notes I derived from blogs on JSF 2 :From Ed Burns's blog, http://www.java.net/blogs/edburns/Composite ComponentsEd Burn's have a number of articles on developing 'composite components'. CC's are for creating true components that we can attach converters, listeners etc. Previously you could do the similar things with the help of the facelets, which was somewhat limited. Rick </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/4714330410696318717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/11/jsf2-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4714330410696318717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4714330410696318717'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/11/jsf2-notes.html' title='JSF2 Notes'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5152735723318165759</id><published>2009-10-27T11:22:00.002+02:00</published><updated>2009-10-27T11:26:41.810+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>ICEFaces</title><summary type='text'>Nice people at 'Packt Publishing' are sending me a copy of their new ICEfaces book, 'ICEfaces 1.8: Next Generation Enterprise Web Development', for me to review. You can check it out here.</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5152735723318165759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/10/icefaces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5152735723318165759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5152735723318165759'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/10/icefaces.html' title='ICEFaces'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-4372940243184323764</id><published>2009-10-21T11:50:00.013+03:00</published><updated>2009-10-21T17:43:17.645+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate Journey</title><summary type='text'>NowSo we have started our new project and by default (not my decision, not saying its a bad decision either, just saying that there could be a better decision) we are going to be using Hibernate.For those who don't know Hibernate is 'the' ORM solution. ORM is for 'Object Relation Mapping' which is pretty much self explanatory. It maps your relational data model, such as a database schema, to the </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/4372940243184323764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/10/hibernate-journey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4372940243184323764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4372940243184323764'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/10/hibernate-journey.html' title='Hibernate Journey'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NgWFHxby4Y0/St8I8etz9rI/AAAAAAAADCc/9Z99s4Rk01s/s72-c/classdiagram.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-8624920695685380703</id><published>2009-09-23T10:19:00.006+03:00</published><updated>2009-09-23T10:43:44.352+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Choosing an Expression Language</title><summary type='text'>On previous posts I talked about that I liked Jboss-EL. Here is an example of what you can do with jboss-el and not with the standard el:1:  #{cityService.listCities(selectedCountry)}This EL is usefull on scenerios where the user selects a country from a combo (selectedCountry) which fires a ajax call and witch returns the cities of the country listing them in a sub combo.Since I relay wanted use</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/8624920695685380703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/09/choosing-expression-language.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8624920695685380703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8624920695685380703'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/09/choosing-expression-language.html' title='Choosing an Expression Language'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-6997192521241638800</id><published>2009-09-07T10:36:00.015+03:00</published><updated>2009-09-10T16:56:23.319+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>a ping-pong game (2)</title><summary type='text'>Continuing where we left from part 1. First we need a platform that the user control. Our platform will be a BarCallbacks with key handler. To control the movement of the objects we will introduce a new object 'World' which will handle the movement code. The world object is a timer object that will tick every few seconds and recalculate the coordinates of the registered vectors and redisplay the </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/6997192521241638800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/09/ping-pong-game-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/6997192521241638800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/6997192521241638800'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/09/ping-pong-game-2.html' title='a ping-pong game (2)'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NgWFHxby4Y0/SqkExrM7xEI/AAAAAAAAC9E/8EOoP6yqboc/s72-c/Picture+4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-1972586632017755433</id><published>2009-09-01T10:30:00.014+03:00</published><updated>2009-09-01T15:01:14.216+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>What should new JEE developers learn</title><summary type='text'>We now started a new Enterprise project for Telecom and my first job is helping the new team get started. We are using, and seems will be using, the JSF, Spring and Hibernate technology stack. I am told that although some of them know some of the technologies we use, none know all.So what should they learn and where to start; JEEThe request &amp; response lifecycle, State on AS. How does Session </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/1972586632017755433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/09/what-should-new-jee-developers-learn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1972586632017755433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1972586632017755433'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/09/what-should-new-jee-developers-learn.html' title='What should new JEE developers learn'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5891540049552893619</id><published>2009-08-31T13:47:00.012+03:00</published><updated>2009-08-31T16:17:12.816+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>a ping-pong game (1)</title><summary type='text'>One of the goals that I postponed long ago was learning OpenGL and creating games with it. I started learning OpenGL, and started building a toy project on the process. I decided to build a ping-pong game which will be simply a ball moving and hitting around. A simple 2D toy project.I chose to develop on my mac with XCode &amp; Objective-C. XCode is a simple IDE that works fast and Objective-C is a </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5891540049552893619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/08/ping-pong-game-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5891540049552893619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5891540049552893619'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/08/ping-pong-game-1.html' title='a ping-pong game (1)'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NgWFHxby4Y0/SpvL537SioI/AAAAAAAAC8M/iVsc71rE9HA/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-1977534952015187466</id><published>2009-07-29T11:17:00.010+03:00</published><updated>2009-07-29T11:44:20.983+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><title type='text'>Summing up the photo gallery (part 6)</title><summary type='text'>I started building a photo gallery app., flickr in mind, as a means to learn the seam framework. To sum up here is my previous posts :1. "little restfull photo gallery example, with seam, which seams fine", here.2. "seamy photo gallery, securing it (part 2)", here.3. "seamy photo gallery, securing it (part 2)", here.4. "seamy photo gallery, resting easier (part 4)", here.5. "seamy photo gallery, </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/1977534952015187466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/07/summing-up-photo-gallery-part-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1977534952015187466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1977534952015187466'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/07/summing-up-photo-gallery-part-6.html' title='Summing up the photo gallery (part 6)'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_NgWFHxby4Y0/SnAI2n-Xt7I/AAAAAAAACjU/t54pf4OLJXw/s72-c/balonlar.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5190152434814349830</id><published>2009-07-02T15:21:00.008+03:00</published><updated>2009-07-03T12:53:17.820+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>Groovy Impressions</title><summary type='text'>Groovy is a superset of the Java programming language with dynamic language constructs. Here are my notes on Groovy.1. Java is GroovyEvery Java sentence is a valid Groovy sentence but not the other way around. Which means you can use every Java library out there with Groovy classes. Infact Groovy classes in the end compile into Java code.2. Loose SyntaxNo need for a main method. No more a class </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5190152434814349830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/07/groovy-impressions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5190152434814349830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5190152434814349830'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/07/groovy-impressions.html' title='Groovy Impressions'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-1170457422639334909</id><published>2009-06-19T11:05:00.004+03:00</published><updated>2009-06-19T11:14:05.958+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>SCWCD</title><summary type='text'>I hate exams. Especially multi choice tests. Yet I have worked on the SCWCD exam fort the last weeks. I choose the "Head First Servlets and JSP" book to study for the exam mainly because it had more stars than this one. Besides "Head First ..." books are usually more brain friendly. Read the "Head First Design Patterns", a very good introduction to design patterns, so that you know what I mean by</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/1170457422639334909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/06/scwcd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1170457422639334909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1170457422639334909'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/06/scwcd.html' title='SCWCD'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5559832359593476973</id><published>2009-05-28T10:02:00.009+03:00</published><updated>2009-06-01T09:36:40.850+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><title type='text'>seamy photo gallery, writing an authentication filter (part 5)</title><summary type='text'>On the 4th part I used an simple authentication filter, to secure my urls, that come out of the box. It only supported basic &amp; digest authentication. With basic authentication what you get is a ugly browser dependent box which asks the credentials of the user. On IE its like:Instead of that I wanted the user to use the login page which I created. In order to do that I first removed basic </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5559832359593476973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/05/seamy-photo-gallery-writing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5559832359593476973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5559832359593476973'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/05/seamy-photo-gallery-writing.html' title='seamy photo gallery, writing an authentication filter (part 5)'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NgWFHxby4Y0/Sh44G_hCqBI/AAAAAAAABVM/tWm8Re6htSE/s72-c/basicauth.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2697832788274188810</id><published>2009-05-27T10:09:00.005+03:00</published><updated>2009-05-27T10:57:16.756+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><title type='text'>seamy photo gallery, resting easier (part 4)</title><summary type='text'>On my previous post I made a restful photo gallery that has a nice little feature where upon a restful request like 'http://.../mygallery/photo/photo/yoda' served the image named 'yoda' to the user. In order to achive that what I did was first I edited the pages.xml so that it could extract the name (id) part from the request url:&lt;page view-id="/photo/photo.xhtml" login-required="true"&gt;&lt;rewrite </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2697832788274188810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/05/seamy-photo-gallery-resting-easier-part.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2697832788274188810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2697832788274188810'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/05/seamy-photo-gallery-resting-easier-part.html' title='seamy photo gallery, resting easier (part 4)'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-4759123440914255268</id><published>2009-05-20T10:31:00.010+03:00</published><updated>2009-05-20T13:39:39.967+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><title type='text'>Moving the keyboard out of the way</title><summary type='text'>After happily doing a little work for iphone, being content for that I was finished with it, I made realize that the text boxes near the bottom of the screen disappeared when the keyboard appeared after saying "hmmmm...", I started searching for a solution. Apples iphone developer library suggest this solution and here I am going to write about how I used it in my project. Here is how the problem</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/4759123440914255268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/05/moving-keyboard-out-of-way.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4759123440914255268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/4759123440914255268'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/05/moving-keyboard-out-of-way.html' title='Moving the keyboard out of the way'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_NgWFHxby4Y0/ShO4efaFVBI/AAAAAAAABR0/FzX8VhOpcpM/s72-c/Picture+2.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-1379027772225860200</id><published>2009-05-04T09:41:00.008+03:00</published><updated>2009-05-09T09:43:59.972+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><title type='text'>seamy photo gallery, securing it (part 3)</title><summary type='text'>Previous part was about setting up security so that we have a admin user that could approve photos and an ordinary one. We have done basic authentication on this part we will look at handling authorization exceptions, securing our view and code based on authority.First thing I did was adding approve and disapprove (delete the photo) methods to my photoService and make them authorized :@Restrict("</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/1379027772225860200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/05/seamy-photo-gallery-securing-it-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1379027772225860200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1379027772225860200'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/05/seamy-photo-gallery-securing-it-part-3.html' title='seamy photo gallery, securing it (part 3)'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-3167254044723084654</id><published>2009-04-29T09:57:00.009+03:00</published><updated>2009-05-09T09:45:32.950+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><title type='text'>seamy photo gallery, securing it (part 2)</title><summary type='text'>The new requirement that I wanted was "photos should be approved before being shown in the main page". For that I needed users with approving privledge or role, therefore it was time to dive in to the seam security part. I used simplest User and Role classes that I could think them and configured them :&lt;security:jpa-identity-storeuser-class="domain.User"role-class="domain.Role" /&gt;Seam requires </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/3167254044723084654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/04/seamy-photo-gallery-securing-it-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3167254044723084654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3167254044723084654'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/04/seamy-photo-gallery-securing-it-part-2.html' title='seamy photo gallery, securing it (part 2)'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-1953338357435829265</id><published>2009-04-29T09:30:00.015+03:00</published><updated>2009-05-09T09:46:33.158+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Management'/><title type='text'>Bulldozer coding</title><summary type='text'>Jaroslav Tulach, designer of NetBeans API, defines the bulldozer coding as  instead of designing elegant solutions to problems at hand, you choose to use heavy libraries which are good for manythings in "Practical API Design". Which kind of reminds me of the Developer Jar Ratio that I wrote here.Up side of the aproach is you are supposedly getting things done more quickly therefore increased </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/1953338357435829265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/04/bulldozer-coding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1953338357435829265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/1953338357435829265'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/04/bulldozer-coding.html' title='Bulldozer coding'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2211163996508811045</id><published>2009-04-22T09:11:00.006+03:00</published><updated>2009-05-09T09:52:13.663+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><title type='text'>more notes on seam</title><summary type='text'>Here is more tips on seam;I found out that blog example I wrote about has a little bit of history behind it. Apparently it was developed in response to a blog of Simon Brown. He publishes a set of blogger application requirements to compare web frameworks. Although Gavin argues that a blogger application hardly JEE, he still developes the example. Read more on it here http://relation.to/Bloggers/</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2211163996508811045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/04/more-notes-on-seam.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2211163996508811045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2211163996508811045'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/04/more-notes-on-seam.html' title='more notes on seam'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-2436704379635236274</id><published>2009-04-15T09:17:00.022+03:00</published><updated>2009-05-09T09:48:00.147+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><title type='text'>little restfull photo gallery example, with seam, which seams fine</title><summary type='text'>I have decided it was time to check out the seam framework since many of my friends gave it a thumbs up. Starting with the blog example that comes with the package I have built a little restfull image gallery. Which looked liked this;I started with a simple Photo domain object which has name as the id, and the data byte array as the photo file:@Entity@Name("newPhoto")@Scope(ScopeType.SESSION)</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/2436704379635236274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/04/little-restfull-photo-gallery-example.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2436704379635236274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/2436704379635236274'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/04/little-restfull-photo-gallery-example.html' title='little restfull photo gallery example, with seam, which seams fine'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NgWFHxby4Y0/SeWLL3ebQlI/AAAAAAAABKQ/USk5Ekh7OBg/s72-c/galeri.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-3443474182893465967</id><published>2009-04-01T11:40:00.017+03:00</published><updated>2009-05-09T09:49:02.046+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Hypothesis'/><title type='text'>Developer JAR Ratio Hypothesis</title><summary type='text'>Ever felt like you are dealing with 3rd party jars and library's more than you have to ? They may make things easy but they come with a lot to know and nasty bugs that you have to track down. I believe making the decision of using a 3rd party jar, or building the solution yourself is not an easy one. On the one side of the problem is you don't want to reinvent the wheel and use the established </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/3443474182893465967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/04/developer-jar-ratio-hypothesis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3443474182893465967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/3443474182893465967'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/04/developer-jar-ratio-hypothesis.html' title='Developer JAR Ratio Hypothesis'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_NgWFHxby4Y0/SeLkS8rQdHI/AAAAAAAABJY/NXQDi7o9jXo/s72-c/a-(12).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-8935375484656298777</id><published>2009-03-12T13:40:00.008+02:00</published><updated>2009-05-09T09:49:30.598+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><title type='text'>a Java developers Objective-C comments</title><summary type='text'>This my language flame post ;)So last month I have started developing for iPhone. In order to do so you have to use Objective-C because by default iPhone does not come with Java Virtual Machine. These are the things I most stumbled on Objective-C:1. Square brackets !When procedural language people see Lisp code first thing they say is : "What's with all that parentheses ?". Objective-C allthough </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/8935375484656298777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/03/java-developers-objective-c-comments.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8935375484656298777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/8935375484656298777'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/03/java-developers-objective-c-comments.html' title='a Java developers Objective-C comments'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NgWFHxby4Y0/SdG-FZ6OkCI/AAAAAAAABIc/AurQBK-xrPc/s72-c/kd.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-7512656679030548579</id><published>2009-03-11T11:32:00.003+02:00</published><updated>2009-05-09T09:50:28.671+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Use OGNL expressions to fill your SelectOneMenu</title><summary type='text'>JSF selectOneMenu component is loaded with "selectItems" tag. Like; &lt;h:selectOneMenu id="som_city" value="#{valueObject.city}"&gt;&lt;t:selectItems value="#{cityService.getCities}" itemLabel="#{val.name}" itemValue="#{val.this}" var="val" /&gt;&lt;/h:selectOneMenu&gt;With the help of some converter we are able to list cities in the combo with the expression "#{cityService.getCities}". But often what we realy </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/7512656679030548579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/03/use-ognl-expressions-to-fill-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/7512656679030548579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/7512656679030548579'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/03/use-ognl-expressions-to-fill-your.html' title='Use OGNL expressions to fill your SelectOneMenu'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5724761729750839827</id><published>2009-03-11T10:57:00.005+02:00</published><updated>2009-05-09T09:51:07.568+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Smart JSF DataTable Columns</title><summary type='text'>One of the common  and simple requirements of enterprise projects is that stylising your columns based on the data it contains like if the column is displaying a date it should be centered, if its a number it should be aligned right. The following will show you how you can make a smart enough datatable which knows what type needs what style.I did this on the richfaces datatable but same logic </summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5724761729750839827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/03/smart-jsf-datatable-columns.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5724761729750839827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5724761729750839827'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/03/smart-jsf-datatable-columns.html' title='Smart JSF DataTable Columns'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NgWFHxby4Y0/SSUkDqx1z9I/AAAAAAAAAOk/cPsSULETElw/s72-c/2006-07-02_copy_paste1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5735215760242515296.post-5239949889275293881</id><published>2009-03-11T10:53:00.003+02:00</published><updated>2009-03-11T11:26:59.468+02:00</updated><title type='text'>Reorginized my blog</title><summary type='text'>My old blog is now at http://mcalalala.blogspot.com/. This one will be on software development while the other one will be on anything else...</summary><link rel='replies' type='application/atom+xml' href='http://mcatr.blogspot.com/feeds/5239949889275293881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mcatr.blogspot.com/2009/03/reorginized-my-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5239949889275293881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5735215760242515296/posts/default/5239949889275293881'/><link rel='alternate' type='text/html' href='http://mcatr.blogspot.com/2009/03/reorginized-my-blog.html' title='Reorginized my blog'/><author><name>Murat Can ALPAY</name><uri>https://profiles.google.com/110412862987866811244</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-03SrDw2BMdA/AAAAAAAAAAI/AAAAAAAAE5I/rOkogMbQpGg/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
