(Note: This is slightly tongue-in-cheek.)
These
threads
on the struts-user mailing list just go to show how tricky a problem
persistence frameworks are. Not strictly technically speaking, but
more of a personal sense. I see persistence in a class of problems
that are: a) extremely common, b) fairly simple to understand, c)
fairly simple to code a framework that functions. (See also: anything
to do with databases, templating, web application frameworks, code
generation.)
The problem (if you can call it that) is that everyone creates a
persistence framework. They're not really different from one
another except in the way your favorite pair of jeans feels better
than any other -- a distinction without a difference as Barb likes to
say. But you get used to your way of doing things, even if it's
not more functional than another way, your jeans start getting frayed
at the cuffs. So you stick with your homegrown solution that has some
bumps here and there, and one hierarchy of code has some nasty funk emanating and
needs to be refactored, but there will be time after this project is
wrapped up...
This is a kind of hubris run
amok. I don't know if you can point to a particular cause, although if
you were an armchair psychologist you'd probably generalize about
solitary programmers being big fish in small ponds. But you'd be
wrong just as often as you're right.
There is a certain pleasure in finding a tool that fits nearly all
your requirements and modifying it meet the rest of them. It gives you
a focus that you may not get with your home brew, since you know you
can't change everything. Broken windows are
still an issue, but instead of feeling the burden of direct
responsibility -- another item for my TODO list! -- you can simply
point it out to the project leader, who knows the project better
anyway and has a better eye for prioritization than you do. After all,
don't you have plenty of mountains to climb as it is?
Gotta love java:
Matts on 2002-10-07T10:24:56
VelocityServlet : Error processing the template
org.apache.velocity.exception.VelocityException
org.apache.velocity.exceptio
n .VelocityException
at org.tigris.eyebrowse.servlets.EyebrowseServlet.handleRequest(Unknown Source)
at org.apache.velocity.servlet.VelocityServlet.doRequest(VelocityServlet.java:372)
at org.apache.velocity.servlet.VelocityServlet.doGet(VelocityServlet.java:333)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
t erChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
. java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
2 43)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
2 01)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.jav
a :170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:16
3 )
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:101
1 )
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
at java.lang.Thread.run(Thread.java:536)
Re:Gotta love java:
lachoy on 2002-10-07T12:01:38
Word: check this out and the heat another blogger gave me for poking fun. Sheesh!