<?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-8181949</id><updated>2011-12-14T20:46:42.849-06:00</updated><title type='text'>Kiss My App</title><subtitle type='html'>Too Dumb to Think Inside the Box.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>53</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8181949.post-136171738626384586</id><published>2007-05-13T01:06:00.000-05:00</published><updated>2007-06-02T22:35:10.944-05:00</updated><title type='text'>More JSF 2 Ideas</title><summary type='text'>While sitting in the concurrency pitfalls session at javaone (nothing new and I totally disagreed with his use of annotations as pure documentation)-- anyways, my mind wandered and I started thinking about Seam, WebBeans, and some of the byte code stuff the JPA is using.  So why can't we do the same with JSF 2?A while back, I wrote a bit on some initial ideas for JSF 2, but was stuck on how to </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/136171738626384586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/136171738626384586'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2007/05/more-jsf-2-ideas.html' title='More JSF 2 Ideas'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-1312479240606404491</id><published>2007-01-24T19:56:00.000-06:00</published><updated>2007-01-24T20:10:36.982-06:00</updated><title type='text'>JavaOne 2007 - "In Case You Missed Last Year!"</title><summary type='text'>I'm beginning to wonder if there's going to be anything exciting this year, or if it's going to be a series of repeat sessions from last year?  JEE 5 was exciting, but many of the new innovations and JSRs are intelligently waiting on baited breath for what's coming in JSE 7-- closures and properties?  Innovations like that can dramatically change the way APIs are presented, the same thing </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/1312479240606404491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=1312479240606404491' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/1312479240606404491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/1312479240606404491'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2007/01/javaone-2007-in-case-you-missed-last.html' title='JavaOne 2007 - &quot;In Case You Missed Last Year!&quot;'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-4324066250652971239</id><published>2007-01-10T23:43:00.000-06:00</published><updated>2007-01-11T21:55:26.735-06:00</updated><title type='text'>Properties as Extensions of Member Variables</title><summary type='text'>There's a great debate on where to go with properties in Java SE 7, largely impart to the fact that the original suggestion at Javaopolis was so-- blah.  I, myself, went back and forth a bit on ideas, but found the C# syntax to be the most promising.  The reason being is ease of refactoring.   All Java programmers are familiar and seem to want only dot notation for property accessors:public class</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/4324066250652971239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=4324066250652971239' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/4324066250652971239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/4324066250652971239'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2007/01/properties-as-extensions-of-member.html' title='Properties as Extensions of Member Variables'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-116314595043532172</id><published>2006-11-10T01:49:00.000-06:00</published><updated>2006-11-10T02:05:50.446-06:00</updated><title type='text'>JSF Facelets Resurrected!</title><summary type='text'>After a long hiatus away from open source with the wedding/work, I've started to working on Facelets again!Contrary to what I said last spring/summer around Avatar, I've decided to continue on the 1.2 release of Facelets which has Avatar fully integrated for alternate/partial communication with JSF from JavaScript.  The DynaFaces stuff isn't picking up in popularity and the code base has grown </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/116314595043532172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=116314595043532172' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116314595043532172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116314595043532172'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2006/11/jsf-facelets-resurrected.html' title='JSF Facelets Resurrected!'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-116210617853185525</id><published>2006-10-29T01:53:00.000-06:00</published><updated>2006-10-29T01:16:18.650-06:00</updated><title type='text'>Extending EL Syntax Part 2</title><summary type='text'>This evening, I got much of the parser updated to handle method invocation and projections.  One thing I found tricky was handling embeded '{' ... '}' since my original syntax said, "whenever you hit '}', exit the expression token set and go back to literal for composite expressions" (value="Hello #{user.name}" as an example).To get around embeded '}', I first tried to isolate a separate token </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/116210617853185525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=116210617853185525' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116210617853185525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116210617853185525'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2006/10/extending-el-syntax-part-2.html' title='Extending EL Syntax Part 2'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-116206594564576699</id><published>2006-10-28T14:50:00.000-05:00</published><updated>2006-10-28T17:32:03.253-05:00</updated><title type='text'>Extending EL Syntax</title><summary type='text'>I've dabbled a bit with EL in the past for both Glassfish and Tomcat.  Performance wise, no one's said the 'larger' feature set has caused performance problems (ELResolvers, ELContext, VariableMapper, etc).  What I have seen, is people complaining about performance with OGNL.  So what I want to see happen is for an EL implementation to fill in the necessary pieces to migrate OGNL users over to </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/116206594564576699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=116206594564576699' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116206594564576699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116206594564576699'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2006/10/extending-el-syntax.html' title='Extending EL Syntax'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-116184481577714115</id><published>2006-10-26T00:55:00.000-05:00</published><updated>2006-10-26T02:21:37.840-05:00</updated><title type='text'>JSF 2.0 Ideas</title><summary type='text'>We've reached the age of annotations, you are seeing tons of APIs revised and nouns/assets being refactored into compact metadata.  The first API to really take this leap with EJB3, followed by an extension from JBoss, called Seam.  I saw this coming a couple years ago in my article for OnJava ;-)Now many other APIs are following suit in various degrees, replacing interfaces and abstract class </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/116184481577714115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=116184481577714115' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116184481577714115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/116184481577714115'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2006/10/jsf-20-ideas.html' title='JSF 2.0 Ideas'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-114063002266015400</id><published>2006-02-22T11:27:00.000-06:00</published><updated>2006-02-22T11:40:22.730-06:00</updated><title type='text'>More On Stateless Components</title><summary type='text'>I've been looking at the SWT API a little bit, while I'm still foggy on some areas, I don't see that it's easy to simply refer to other components or modify the tree on the fly.  If we look at a component tree, and then use the filter/visitor pattern, we could keep lifecycles/state of components more grainular.  As the process or visitor cascades through the component model, it can be lazy </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/114063002266015400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=114063002266015400' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/114063002266015400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/114063002266015400'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2006/02/more-on-stateless-components.html' title='More On Stateless Components'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112892046036773826</id><published>2005-10-09T23:37:00.001-05:00</published><updated>2005-11-29T12:44:32.556-06:00</updated><title type='text'>Occasionally Connected Components</title><summary type='text'>In working with Seam and some of the ideas behind it, I quickly came to realize some of the faults of having stateful UIs.  Take a h:dataTable for a second-- where it's great that we have a stateful dataTable component, but anything that's dynamic-- such as the data itself, must be retained in a stateful scope that matches the UI.  So with something like JSF, you are getting half of the cake.  </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112892046036773826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112892046036773826' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112892046036773826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112892046036773826'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/10/occasionally-connected-components_09.html' title='Occasionally Connected Components'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112820354080071641</id><published>2005-10-01T16:26:00.000-05:00</published><updated>2005-10-01T16:52:20.850-05:00</updated><title type='text'>I'm Done For</title><summary type='text'>I just got engaged... to her :-)</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112820354080071641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112820354080071641' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112820354080071641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112820354080071641'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/10/im-done-for.html' title='I&apos;m Done For'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112664149344714107</id><published>2005-09-13T14:24:00.000-05:00</published><updated>2005-09-13T15:16:24.633-05:00</updated><title type='text'>More on Programmer Pages</title><summary type='text'>I've been tossing around a bit on features that I could add to Facelets that would create more separation between the designer and programmer.  But then I do days worth of 'soul searching' on the best approach and I keep sticking to my guns, backing off from some of the new designer-friendly features.The reason is that all visual tools suck.  Not even dreamweaver can render a page properly with </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112664149344714107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112664149344714107' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112664149344714107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112664149344714107'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/09/more-on-programmer-pages.html' title='More on Programmer Pages'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112628462413059567</id><published>2005-09-09T11:47:00.000-05:00</published><updated>2005-09-09T11:50:24.140-05:00</updated><title type='text'>Facelets Avatar</title><summary type='text'>So it begins.  My goal is to take JSF's component model and Facelet's stateless architecture and figure out how best to handle AJAX functionality across the board.  I already have a few ideas.  At this point, I don't want to get caught up solving all possible scenarios, but Avatar's capabilities should make request types completely agnostic to component implementations.I will try to keep updating</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112628462413059567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112628462413059567' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112628462413059567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112628462413059567'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/09/facelets-avatar.html' title='Facelets Avatar'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112230712239277722</id><published>2005-07-25T10:45:00.000-05:00</published><updated>2005-07-25T10:58:42.400-05:00</updated><title type='text'>Is Glassfish an OS Project?</title><summary type='text'>Right before JavaOne, I was added as the first developer outside of Sun to work on their Glassfish project (open source J2EE 5 server).  This is great, the team is big, or so it seems.  But I'm not sure there are really any other developers contributing.  Why not?  Is it the license or the company?My opinion is that open source is two things-- open code and open processes.  If the Glassfish </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112230712239277722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112230712239277722' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112230712239277722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112230712239277722'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/07/is-glassfish-os-project.html' title='Is Glassfish an OS Project?'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112201517537689041</id><published>2005-07-22T01:50:00.000-05:00</published><updated>2005-07-22T01:53:29.686-05:00</updated><title type='text'>Facelets Documentation</title><summary type='text'>Facelets is going awesome, and I mean a.w.e.s.o.m.e.Between adding features and tweaking the compiler, I've put together some documentation:https://facelets.dev.java.net/nonav/docs/dev/docbook.htmlAlso, I might be moving my blogging over to Java.net.  I would like to start a series on 'JSF Myths' to squelch many misconceptions that 'casually' interested developers complain about.</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112201517537689041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112201517537689041' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112201517537689041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112201517537689041'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/07/facelets-documentation.html' title='Facelets Documentation'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112119010373679528</id><published>2005-07-12T12:27:00.000-05:00</published><updated>2005-07-12T12:43:35.776-05:00</updated><title type='text'>A Small Note on UI Design</title><summary type='text'>All too many times, people designing web pages start out by boxing all of their content out into strict columns with graphical elements.  Graphical elements such as backgrounds or lines that visually separate content.During initial design phases, you may think that everything works visually.  Long term, this can cause problems in your design since it loses it's ability to 'flex'.  I'm not talking</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112119010373679528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112119010373679528' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112119010373679528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112119010373679528'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/07/small-note-on-ui-design.html' title='A Small Note on UI Design'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112109841974284795</id><published>2005-07-11T10:53:00.000-05:00</published><updated>2005-07-11T11:13:39.756-05:00</updated><title type='text'>Oracle's ADF Faces</title><summary type='text'>Adam Winer, from Oracle, e-mailed me late last night and informed me that he had ADF Faces working with Facelets!  It was a great test for Facelets and Adam was able to find several bugs pertaining to backwards compatiblity with JSF 1.1.  For me, the point of getting ADF operational was to catch compatability bugs.  The good thing is that nothing was overly major, except one issue that is </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112109841974284795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112109841974284795' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112109841974284795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112109841974284795'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/07/oracles-adf-faces.html' title='Oracle&apos;s ADF Faces'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-112084971496888123</id><published>2005-07-08T13:50:00.000-05:00</published><updated>2005-07-08T14:08:34.996-05:00</updated><title type='text'>Update</title><summary type='text'>Facelets has been going great.  I'm getting lots of great remarks and help from the community.  Again, thanks to everyone!Now that I have a JSF 1.1 compliant version available that can work with MyFaces too, I'm going to concentrate on putting together a 'dashboard' demo application for Facelets to show off some of the features.Truthfully, I think it will be somewhat difficult to do a proper demo</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/112084971496888123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=112084971496888123' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112084971496888123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/112084971496888123'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/07/update.html' title='Update'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-111793672100403922</id><published>2005-06-04T20:43:00.000-05:00</published><updated>2005-06-04T20:58:41.010-05:00</updated><title type='text'>JSF Talk in the Twin Cities</title><summary type='text'>Adam Winer and I will be presenting on June 21st at OTUG's monthly meeting.I've been writing up the slides, but the title will be "JavaServer Faces, The Web Tier Alignment &amp; J2EE 5".  I want to emphasize interoptability and move away from the common impression that JSF is here to replace everything that was done before.  You can take just about any MVC/View technology out there and leverage it </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/111793672100403922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=111793672100403922' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111793672100403922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111793672100403922'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/06/jsf-talk-in-twin-cities.html' title='JSF Talk in the Twin Cities'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-111689203334008736</id><published>2005-05-23T18:17:00.000-05:00</published><updated>2005-05-23T18:52:54.016-05:00</updated><title type='text'>Validators and Converters in Facelets</title><summary type='text'>Want to wire in a specialized Validator into Facelets with only a few lines of code?First, lets presume your validator is bound to your JSF Application under the id com.mycompany.RegExpValidator.  It has two properties: a String: pattern, and a boolean: caseSensitive.Now, with your application's Jar, add a single file with a taglib.xml extension:&lt;facelet-taglib&gt;  &lt;namespace&gt;http://</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/111689203334008736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=111689203334008736' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111689203334008736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111689203334008736'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/05/validators-and-converters-in-facelets.html' title='Validators and Converters in Facelets'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-111682538989283534</id><published>2005-05-22T17:30:00.000-05:00</published><updated>2005-05-23T00:19:30.230-05:00</updated><title type='text'>Making Facelets mimic Tapestry</title><summary type='text'>Facelets has one very easy way of making any component or any tag replace an existing HTML element.  You can, for example, do something like this:&lt;html xmlns="http://www.w3.org/1999/xhtml"      xmlns:ui="http://java.sun.com/jsf/facelets"&gt;...&lt;span id="intact" jsfc="ui:remove"&gt;  This Text Will Be Removed.&lt;/span&gt;....&lt;/html&gt;With Facelets, id's are left in tact, and at compile time, the 'jsfc' </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/111682538989283534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=111682538989283534' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111682538989283534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111682538989283534'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/05/making-facelets-mimic-tapestry.html' title='Making Facelets mimic Tapestry'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-111627866020463410</id><published>2005-05-16T15:26:00.000-05:00</published><updated>2005-05-16T16:55:29.373-05:00</updated><title type='text'>Facelets: Templating</title><summary type='text'>Pick your poison.  Currently Facelets offers 3 different ways to modularize and decorate your pages/components.Tag FilesDecoratorsIncludesPrefaceFacelets is founded on the idea of compositions.  This means that a UIComponent tree can be defined in multiple Facelet pages and executed in part or whole.  Some other frameworks, like Tapestry, may define a single component within a page, Facelets </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/111627866020463410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=111627866020463410' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111627866020463410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111627866020463410'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/05/facelets-templating.html' title='Facelets: Templating'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-111619008219988866</id><published>2005-05-15T15:22:00.000-05:00</published><updated>2005-05-15T15:48:52.860-05:00</updated><title type='text'>Facelets</title><summary type='text'>I've reappeared from the lab with a new toolkit for developing JavaServer Faces applications; it's called "Facelets".  I've recently opened project page at Java.net, https://facelets.dev.java.net/.BackstoryI, like many in the corporate world, will forever be stuck behind the technology curve thanks to vendor platforms *cough* BEA *cough*.  I've been participating in the JSP 2.1 and JSF 1.2 </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/111619008219988866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=111619008219988866' title='75 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111619008219988866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/111619008219988866'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/05/facelets.html' title='Facelets'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>75</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110995274350881935</id><published>2005-03-04T09:36:00.000-06:00</published><updated>2005-03-07T21:48:56.303-06:00</updated><title type='text'>Stateless Components</title><summary type='text'>Since commenting on Tapestry vs. JSF I've realizing that both aren't exactly ideal, IMHO.  Since then, I've come to the conclusion that components should be stateless and work within a simpler momento system.The 80/20 CaseComponents wear two hats-- displaying and updating.  Most components, the 80% case, purely serve the view while only 20% actually have interactive data.  The situation begs the </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110995274350881935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110995274350881935' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110995274350881935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110995274350881935'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/03/stateless-components.html' title='Stateless Components'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110936281069688420</id><published>2005-02-25T12:54:00.000-06:00</published><updated>2005-03-01T09:20:48.936-06:00</updated><title type='text'>Components: JSF or Tapestry</title><summary type='text'>Based on comparisons between Tapestry and JSF, I've been trying to determine who is actually doing components the 'right' way.The debate should probably start with defining HTML itself as a presentation layer.  HTML is 'now' actually composed of two parts with the help of CSS: structure and presentation.  For those who've read my previous blogs, this is old news.Component development emphasizes </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110936281069688420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110936281069688420' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110936281069688420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110936281069688420'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/02/components-jsf-or-tapestry.html' title='Components: JSF or Tapestry'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110888968525779380</id><published>2005-02-20T01:58:00.000-06:00</published><updated>2005-02-20T17:06:54.383-06:00</updated><title type='text'>Monkey See, Monkey Do</title><summary type='text'>I went snowboarding today with one of my buddies.  He's with a firm that designs/engineers server rooms.  He was talking about how well business is going for the firm in part to the fact that software is written so poorly today that companies just keep on throwing more hardware at the problem to keep performance on par.  He asked if I thought the development trend would ever resolve itself.  No </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110888968525779380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110888968525779380' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110888968525779380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110888968525779380'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/02/monkey-see-monkey-do.html' title='Monkey See, Monkey Do'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110888552847918428</id><published>2005-02-20T00:35:00.000-06:00</published><updated>2005-02-22T10:54:28.113-06:00</updated><title type='text'>Container and Factory Seperation</title><summary type='text'>I recently finished rewriting a simple container that uses Constructor Injection-- woohoo.  I decided to create my own container because I wanted to be able to uniquely manage the lifecycles of a heirarchy of containers: Application, Session, and Request.The idea is that you separate configuration from lifecycle management through the use of 'wormholes'.  This means that objects from the top </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110888552847918428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110888552847918428' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110888552847918428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110888552847918428'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/02/container-and-factory-seperation.html' title='Container and Factory Seperation'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110862118303355360</id><published>2005-02-16T23:23:00.000-06:00</published><updated>2005-02-17T00:21:40.253-06:00</updated><title type='text'>Model 3 Architecture</title><summary type='text'>I've been pondering a bit on web architecture and how component frameworks, such as JSF, should really be interpreted.  Most developers are familiar with Model 1 and Model 2 architectures:Taking from Sun Blueprint Guidelines, "A Model 1 architecture consists of a Web browser directly accessing Web-tier JSP pages. ... A Model 1 application control is decentralized, because the current page being </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110862118303355360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110862118303355360' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110862118303355360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110862118303355360'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/02/model-3-architecture.html' title='Model 3 Architecture'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110847435100207928</id><published>2005-02-15T06:49:00.000-06:00</published><updated>2005-02-15T07:34:22.410-06:00</updated><title type='text'>Framework Consequences</title><summary type='text'>In my blog about dual persistence strategies, someone had commented:Doesn't this result in tight coupling of view and model? What if we wanted to replace hibernate by iBatis, for example?In my experience, this mindset of defensive programming only hurts projects as you spend more time developing ways to cleanly abstract models/services than simplifying the core competancies of the task at hand.In</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110847435100207928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110847435100207928' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110847435100207928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110847435100207928'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/02/framework-consequences.html' title='Framework Consequences'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110721656324602898</id><published>2005-01-31T18:05:00.000-06:00</published><updated>2005-01-31T18:09:23.246-06:00</updated><title type='text'>We're All in the Mood for a Melody</title><summary type='text'>Apologies for not blogging, but I've been fairly busy lately.  I'm hoping to get some more good news on the job front soon :-)</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110721656324602898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110721656324602898' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110721656324602898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110721656324602898'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/01/were-all-in-mood-for-melody.html' title='We&apos;re All in the Mood for a Melody'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110638110724139715</id><published>2005-01-22T01:45:00.000-06:00</published><updated>2005-01-22T19:09:42.496-06:00</updated><title type='text'>In the Year 2000</title><summary type='text'>I was bringing up some discussion on where our development group would like to go with web page development.  A lot of stuff started popping into my head as we talked.The cause for the discussion in the first place is that things have become unbelievably hard to manage in our web pages-- a hodge-podge of HTML, Javascript, Custom tags, Scriplets, and JSTL.  I brought up a few solutions and </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110638110724139715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110638110724139715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110638110724139715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110638110724139715'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/01/in-year-2000.html' title='In the Year 2000'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110622879115828108</id><published>2005-01-20T07:43:00.000-06:00</published><updated>2005-01-20T07:46:31.156-06:00</updated><title type='text'>New Articles</title><summary type='text'>I was lucky enough to get an article at OnJava.com.Alex Winston (who I thought fell of the face of the planet), just posted an awesome article on functional objects (similar to commons-collections, but with generics).</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110622879115828108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110622879115828108' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110622879115828108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110622879115828108'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/01/new-articles.html' title='New Articles'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110600693678449154</id><published>2005-01-17T17:46:00.000-06:00</published><updated>2005-01-19T07:55:30.213-06:00</updated><title type='text'>When Will We Come Full Circle?</title><summary type='text'>Kirill Grouchnikov recently blogged about his distaste for AOP, and I have to completely agree with the guy. Not to my surprise, a few disagreed with him, retorting that, "you don't understand AOP." What aren't we understanding, and more importantly, when will the Java developer community come full circle?I look at things like Groovy and AOP, what are we gaining? What purpose does it serve that</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110600693678449154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110600693678449154' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110600693678449154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110600693678449154'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/01/when-will-we-come-full-circle.html' title='When Will We Come Full Circle?'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110502712976210815</id><published>2005-01-06T09:05:00.000-06:00</published><updated>2005-01-06T16:04:01.150-06:00</updated><title type='text'>Dual Persistence Strategies</title><summary type='text'>I was once asked if it's appropriate to use EJBs when fetching large datasets.  The answer is of course no. To highlight this point, Sun has recently posted comparisons on persistence frameworks.After writing my blog entry on Corporate Development, I realized that I wasn't covering all my bases with persistence.  In the blog, I wrote about using open frameworks like JDO or Hibernate and </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110502712976210815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110502712976210815' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110502712976210815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110502712976210815'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/01/dual-persistence-strategies.html' title='Dual Persistence Strategies'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110497161761403651</id><published>2005-01-05T17:18:00.000-06:00</published><updated>2005-01-06T14:08:46.276-06:00</updated><title type='text'>Taking the Bullet</title><summary type='text'>James Gosling wrote a blog entitled "Sharpen the Axe: the Dark Side".  You can read the blog for yourself, but the quick and dirty is that we all can get too caught up in the path taken instead of the destination.  Although James was generally describing tool development, I believe the same can be applied to application development and pattern usage.James references a quote from Abraham Lincoln</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110497161761403651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110497161761403651' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110497161761403651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110497161761403651'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2005/01/taking-bullet.html' title='Taking the Bullet'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110435442728440223</id><published>2004-12-29T13:24:00.000-06:00</published><updated>2005-01-07T15:05:05.926-06:00</updated><title type='text'>The Corporate Developer</title><summary type='text'>As is such for developers in large companies, you aren't writing a single application for a customer, but you are writing and maintaining seven or eight applications; all with common data structures and requirements. While most of the material we read serves the common case of 'one application for one customer', I don't think there is enough material on the web to support the 'corporate' </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110435442728440223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110435442728440223' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110435442728440223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110435442728440223'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/12/corporate-developer.html' title='The Corporate Developer'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110433595362551694</id><published>2004-12-29T09:27:00.000-06:00</published><updated>2004-12-29T21:38:09.270-06:00</updated><title type='text'>Workflow Continuations</title><summary type='text'>Programmers are looking for simpler ways to define workflows.  The simplest form is using what Fowler calls a transaction script.  Interactions between the client and server are scripted out in simple method calls-- pretty simple, it's kind of like stating the sky is blue.With the web, things aren't as simple.  During client and server interactions, the client can basically hold the '</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110433595362551694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110433595362551694' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110433595362551694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110433595362551694'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/12/workflow-continuations.html' title='Workflow Continuations'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110418182880806118</id><published>2004-12-27T13:39:00.000-06:00</published><updated>2005-07-12T21:09:40.213-05:00</updated><title type='text'>Easing Project Development with CSS</title><summary type='text'>A while back, I wrote a short bit on the benefits of CSS.  Based on some recent debates within the JavaServerFaces community, I'm not sure developers fully understand what CSS can bring to the table of web applications.  CSS isn't simply a new way of marking up HTML, but a new paradigm in web page development.For those with A.D.D., click here to jump right to the summary.  As a proof of concept, </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110418182880806118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110418182880806118' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110418182880806118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110418182880806118'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/12/easing-project-development-with-css.html' title='Easing Project Development with CSS'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110349664025755186</id><published>2004-12-19T16:33:00.000-06:00</published><updated>2004-12-19T16:59:36.840-06:00</updated><title type='text'>Yet Another Servlet Filter You Can't Live Without</title><summary type='text'>At work, we were looking for ways to reduce bandwidth usage on our secure applications.  We already have the compression filter, various object caches, etc-- everything you read about.  Then we started looking into caveats with using SSL and found something surprising-- HTTP 1.1 SSL usage prevents ANY content from being cached on the user's drive.  "So you mean those massive JavaScript and </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110349664025755186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110349664025755186' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110349664025755186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110349664025755186'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/12/yet-another-servlet-filter-you-cant.html' title='Yet Another Servlet Filter You Can&apos;t Live Without'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110273723014973378</id><published>2004-12-10T20:23:00.000-06:00</published><updated>2004-12-31T09:47:50.890-06:00</updated><title type='text'>Validation via Annotation</title><summary type='text'>I've been beating around the bush with posting some of my ideas for validation via annoations. The implementation is extremely simple and offers a protocol independent way of validating input on setter calls. If the validation stuff doesn't interest you, the method of plugging annotations might be applicable to other things.@Retention(RetentionPolicy.RUNTIME)@Target(</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110273723014973378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110273723014973378' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110273723014973378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110273723014973378'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/12/validation-via-annotation.html' title='Validation via Annotation'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110243858579324925</id><published>2004-12-07T10:07:00.000-06:00</published><updated>2005-11-26T22:21:40.023-06:00</updated><title type='text'>Rediscovering OOP</title><summary type='text'>I remember writing Java Battleship in my freshman year of college. You know, it was your first big programming project that everyone has. That first project that you want to set yourself above everyone else in class. Simply coloring squares in a grid? Not for me sir, we are talking actual ovals with holes for the pegs. How about we go one step further and add a simple AI opponent? It's something </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110243858579324925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110243858579324925' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110243858579324925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110243858579324925'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/12/rediscovering-oop.html' title='Rediscovering OOP'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110208965750127176</id><published>2004-12-03T09:26:00.000-06:00</published><updated>2004-12-03T10:02:25.263-06:00</updated><title type='text'>Factory Pattern w/ Delegates</title><summary type='text'>I've been focusing some of my efforts on rounding out a lightweight IoC Factory.  The implementation is fairly simple, you have a Factory object that has Delegates, each Delegate represents a type that can be created by the Factory. The Factory itself only has few methods on it:public interface UserDao { ... }public class UserDaoImpl implements UserDao { ... }public class User { .... }</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110208965750127176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110208965750127176' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110208965750127176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110208965750127176'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/12/factory-pattern-w-delegates.html' title='Factory Pattern w/ Delegates'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110187113400954431</id><published>2004-11-30T21:14:00.000-06:00</published><updated>2004-11-30T23:53:46.760-06:00</updated><title type='text'>Practice What You Preach</title><summary type='text'>This post is actually part II of my Annotation Inheritance blog.  Based on some of recent rants, I'm finally fleshing out my own framework with some of the new features in J2SE 5.The framework is another MVC framework, but don't leave yet... it's goal is to be completely configureless-- no XML files to manage along side your code.  My hope is that when it's finished, I can look at rolling back </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110187113400954431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110187113400954431' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110187113400954431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110187113400954431'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/11/practice-what-you-preach.html' title='Practice What You Preach'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110183787201040567</id><published>2004-11-30T11:19:00.001-06:00</published><updated>2004-12-01T07:15:46.456-06:00</updated><title type='text'>Annotation Inheritance Part 1</title><summary type='text'>With the new metadata JSR, the group decided no to allow any extensibility or inhertance with Annotations themselves (the spec only describes inheritance of annotated properties on objects themselves).  I started to think about how a system could check for user defined annotations (since things like instanceof will not work).  e.g. Being able to label a property with a Validator annotation, but </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110183787201040567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110183787201040567' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110183787201040567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110183787201040567'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/11/annotation-inheritance-part-1.html' title='Annotation Inheritance Part 1'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110170320100016781</id><published>2004-11-28T21:08:00.000-06:00</published><updated>2004-11-28T22:40:01.000-06:00</updated><title type='text'>Ego Tripping at the Gates of Hell</title><summary type='text'>In my initial rant about AOP, I hoped to spawn some serious debate from the Java community over what and how AOP should be used, if it at all.  Two very lengthy threads insued at TheServerSide.com and Sun's Java Forums.  I was offered some good examples of AOP usage, some poor examples of AOP usage, and an abundance of hubris comments.  To all I say, "Thanks!"I spent some time reflecting on my </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110170320100016781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110170320100016781' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110170320100016781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110170320100016781'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/11/ego-tripping-at-gates-of-hell.html' title='Ego Tripping at the Gates of Hell'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110124033003799669</id><published>2004-11-23T13:56:00.000-06:00</published><updated>2004-11-23T14:05:30.036-06:00</updated><title type='text'>The Annotated Dream</title><summary type='text'>IMHO, the most prominent feature in J2SE5 is not generics, enums, or new for loops; it's annotations.Annotations are better than Aspects since they are explicitly declared on your methods/fields/classes and checked by the default compiler.  You may argue that Aspects and annotations aren't the same thing, but I believe Aspects are there to provide additional behavior within a specific context </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110124033003799669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110124033003799669' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110124033003799669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110124033003799669'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/11/annotated-dream.html' title='The Annotated Dream'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110073097471897873</id><published>2004-11-17T16:04:00.000-06:00</published><updated>2004-11-18T08:07:38.080-06:00</updated><title type='text'>I have an AOP Framework for You</title><summary type='text'>Today I came upon a new AOP framework that performs 5 times faster than the next implementation. It allows type safe mixin's, decorating interceptors, and can be easily run in any debugger. It's called 'Java'.I've been writing code for my company long enough that I'm now running into those, "now why the hell is it doing that?" situations. What gets me through the learning curve is my trusty IDE</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110073097471897873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110073097471897873' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110073097471897873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110073097471897873'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/11/i-have-aop-framework-for-you.html' title='I have an AOP Framework for You'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-110006926164487439</id><published>2004-11-10T01:13:00.000-06:00</published><updated>2004-11-17T17:02:53.523-06:00</updated><title type='text'>Containers</title><summary type='text'>Today, theserverside.com had a couple articles of interest, one was an open discussion on controller features and another was a web cast on the future of J2EE. Much of the controller discussion was people wanting everything under the sky rolled into their controllers-- tons of complexity and inevitably more XML configuration files. The J2EE web cast was quite reassuring in that top developers on </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/110006926164487439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=110006926164487439' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110006926164487439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/110006926164487439'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/11/containers.html' title='Containers'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-109666187625715641</id><published>2004-10-01T13:41:00.000-05:00</published><updated>2004-10-01T15:22:03.563-05:00</updated><title type='text'>Impendence Mismatch</title><summary type='text'>Companies today are divided between two religions-- monotheism and deism. The monotheists' development is dictated by a single, powerful god (Microsoft, BEA, IBM, etc). The deists believe there is a single god, but it doesn't dictate their daily life at all and are free to make decisions openly (decide on Hibernate, OJB, Struts, JSF, etc).Which religion does your company follow and is one </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/109666187625715641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=109666187625715641' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109666187625715641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109666187625715641'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/10/impendence-mismatch.html' title='Impendence Mismatch'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-109590765106255076</id><published>2004-09-22T21:42:00.000-05:00</published><updated>2004-09-22T21:47:31.063-05:00</updated><title type='text'>Java or .Net</title><summary type='text'>I'm writing this entry while reading a book titled "C# for Java Developers".Java is cool, but I'm tired of having to learn 5 different ways of doing one thing.  Not only playing a guessing game of possible solutions, but once picking a solution, books tell you to wrap the solution up in a facade, adding more complexity to your application.That's not to say that patterns are patterns, in any </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/109590765106255076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=109590765106255076' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109590765106255076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109590765106255076'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/09/java-or-net.html' title='Java or .Net'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-109505573439641946</id><published>2004-09-13T01:38:00.000-05:00</published><updated>2004-09-13T01:10:55.050-05:00</updated><title type='text'>Refactoring With 'Chain of Responsibility'</title><summary type='text'>I've been thinking a lot lately about all of the complex business logic we have to handle at the company I work at.  Sadly, we do the best we can in OO terms, much of the logic is dispersed and replicated across different applications.Recently one of our older purchasing applications need some changes to the logic of starting an order in our system.  At the same time, another developer was </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/109505573439641946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=109505573439641946' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109505573439641946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109505573439641946'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/09/refactoring-with-chain-of.html' title='Refactoring With &apos;Chain of Responsibility&apos;'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-109423582178897574</id><published>2004-09-03T13:01:00.000-05:00</published><updated>2004-09-05T13:10:15.406-05:00</updated><title type='text'>Test Driven Development</title><summary type='text'>I last ranted on MVC frameworks on how they tie your business in. I also mentioned a little bit about unit testing. Developers talk about Test Driven development. What does that mean? Does that mean that I'm constantly running tests on everything I write? No, not really. Test Driven development is where the test environment drives your code/model.Let me explain with a simple use case of logging</summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/109423582178897574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=109423582178897574' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109423582178897574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109423582178897574'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/09/test-driven-development.html' title='Test Driven Development'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-109419160862548428</id><published>2004-09-03T01:42:00.000-05:00</published><updated>2004-09-03T12:57:51.490-05:00</updated><title type='text'>MVC Frameworks</title><summary type='text'>After playing with multiple MVC frameworks, I've come to a reoccuring conclusion that they are crap. If I want to use Struts, I have to write Actions and ActionForms, if I want to use WebWork, I have to write Actions, if I want to use Spring's I have to write the same types of objects. JSF is kind of what I'm looking for. Basically, MVC frameworks shouldn't require me to write code to adapt to </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/109419160862548428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=109419160862548428' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109419160862548428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109419160862548428'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/09/mvc-frameworks.html' title='MVC Frameworks'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8181949.post-109418983101092954</id><published>2004-09-02T23:48:00.000-05:00</published><updated>2004-12-27T16:50:46.003-06:00</updated><title type='text'>The State of Presentation Design</title><summary type='text'> Web applications are broken up into layers-- one of which is the presentation layer. Developers at heart, are lazy folks and would like to have a presentation layer that works for all types of clients.I've been reading about advances in CSS. Dan Cederholm has an awesome book out called "Web Standards Solutions" in which he describes how to simplify your HTML markup and through CSS. You can </summary><link rel='replies' type='application/atom+xml' href='http://hookom.blogspot.com/feeds/109418983101092954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8181949&amp;postID=109418983101092954' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109418983101092954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8181949/posts/default/109418983101092954'/><link rel='alternate' type='text/html' href='http://hookom.blogspot.com/2004/09/state-of-presentation-design.html' title='The State of Presentation Design'/><author><name>Jacob Hookom</name><uri>http://www.blogger.com/profile/15287497779663965560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
