WebSphere App Developer at the RTP-WUG.
I'm not going to be able to make it to the RTP WebShere Users Group meeting tomorrow (Tuesday Nov. 26), but it sounds like an interesting meeting, especially the Struts Builder bit.
WSAD is the successor to IBM's VisualAge for Java. It was first released at the version 4 level about a year ago, and now, with version 5, it moves to an Eclipse 2.0 base, and adds full J2EE 1.3 support, as well as numerous enhancements. Roger's talk will introduce WSAD 5.0, with an emphasis on the Web Development side. He will also demonstrate some of the new items, including Struts Builder and Cheat Sheets.[From the RTP-WUG meeting annoucement]
Leo is 5 months old.
I'm working at home this week on various geekly projects and I'm spending lots of time with Leo. He was already a happy little guy, but now that he can sit up he is overjoyed. You can see he is so proud of himself. I think that this time, from about 4 months to a 9 months old, is the sweetest time in baby development. Babies at this age can't move around and get into trouble. They can smile, laugh, coo, goo, and babble in a pleasant way, but they can't talk back at you. They never say "Dad, you are so lame" even when they should.
File access from Servlet apps.
<a href=
"http://freeroller.net/page/jduska/20021125#managing_files_within_a_web">Jeff Duska is forgetting a couple of things that many Servlet/JSP developers (myself included) often forget. He is forgetting the distributed nature of Servlet apps and he is forgetting the WAR.
Someday, when your app becomes incredibly popular, you might find that you need to distribute the load across multiple worker processes on multiple computers. All the major app servers support this, does your app? In a distributed configuration, if your app writes a file to the file-system on one computer, you won't be able to get to that file on another computer. If you want all instances of your app to share a file, then this is a problem. If you are just writing a simple little temporary file, which sounds like Jeff's case, then this is generally not a problem.
Even if you are only writing a temporary file, you still don't want to write it inside your Servlet context. When your app is packaged in a WAR file, may not be able to open files inside the Servlet context. If you are just writing a temporary file, it might be better to use one of the static <a href=
"http://java.sun.com/j2se/1.4/docs/api/java/io/File.html">java.io.File.createTempFile() methods to get a file.
FreeRoller running 0.9.6.4.
RSS feed fixes.
Everything old is new again.
No, it's not just you Darren.
I use Aggie and I
have noticed that posts from Roller-based blogs often show up as
new when they are in fact old. Others have reported similar
problems with FeedReader and
now you are seeing this problem with Radio's aggregator. I'm
hoping that by fixing the following two bugs will resolve this problem:
Dragon Tales.
I knew that Alan Williamson,
Editor-and-Chief of Java Developer's Journal, was the CTO of N-ary Consultancy. I did not
know that N-ary has it's own blogging software and that this software
runs the Blog-city site.
The blogging
software appears to be Cold Fusion based, but it may be a fusion of
CFML and JSP. Blog-City is powered by Blue Dragon,
N-ary's own proprietary app server that has the "unique ability to
combine JSP and CFML and to share resources between those pages."
Wait, isn't that what Cold Fusion
MX for J2EE does?
Disclaimer: The title Dragon Tales is not meant to imply that anybody is telling a lie. My kids like the PBS show <a href= "http://pbskids.org/dragontales/">Dragon Tales and <a href= "http://pbskids.org/dragontales/dragon_ord/coloring_book/coloring_images/ord.html">Ord is the first thing that pops into my mind when I hear "blue dragon."
Render unto Castor...
Dominic
DaSilva and Mike
Cannon Brookes both read my recent Roller
persistence proposal as a proposal to escape from the Castor persistence framework. That
is really not really the case. I want to make it easier for Roller to
make full use of Castor and at the same time I want to separate the
Roller business logic from from the Castor-based persistence logic.
I don't like the fact that the Roller business tier is littered
with calls to Castor and I want to separate concerns.
Why can't Roller make full use of Castor now? The answer is in
the history. Roller is constrained by it's own EJB legacy.
When I originally wrote Roller back in the Spring of 2001, I
implemented the Roller manager objects as EJB Session Beans and the
domain objects as EJB Entity Beans. I quickly learned that EJB
Entity Beans are way too heavy. I started to take advantage of
XDoclet's ability to generate light-weight Value Objects.
Eventually, I came up with an architecture where the presentation
tier knew nothing about EJB. The presentation tier only knows
about the business tier interfaces and the Value Objects that those
interfaces returned or accepted as arguments. Once I got to that
point, I was able to completely swap out EJB and switch over to Castor.
So, Roller uses Castor for all persistence now, but it still uses the
EJB Value Objects generated by XDoclet. To add a new persistent
object to Roller, you create an abstract class that extends
javax.ejb.EntityBean and you mark that class up with XDoclet @ejb,
@castor, and @struts tags. This new class will not actually be
used by Roller at runtime. It is used at build time as the basis
for XDoclet code generation that generates Roller's Value Objects, Castor mapping file, and Struts form beans.
As I state in the proposal, I'd like to stop using the Value Objects
for persistence. They are just dumb data buckets and we need them
to be real business objects. That said, I hate the idea of
hand-maintaining code that was once generated. I'm conflicted.
Now, on to the other issue: separating the Roller business logic
from from the Castor-based persistence logic and possibly attaining persistence layer pluggability. I feel less
strongly about this because 1) if Roller moves from Value Objects to
full fledged business objects then much of the business logic can
reside in those objects and 2) Castor works pretty well and at this
point no other persistence framework offers a compelling reason to
switch.
Like
Dominic, I'm on a "quest for a good Java/XML O/R mapping
framework." None of the competing persistence frameworks offer me
a really compelling reason to do the work required to switch, so I hope
to learn to use Castor better and and at the same time try to design away some of that work.
One other thing. I tried to get some design assistance from the
Castor and XDoclet folks in the past, but I came up short.
If you are an XDoclet/Castor expert, please speak up and help us
make Roller a best practices example of XDoclet/Castor usage.
Read the Roller <a href=
"http://www.onjava.com/pub/a/onjava/2002/04/17/wblogosj2ee.html">article,
read the <a href=
"http://article.gmane.org/gmane.comp.java.roller.devel/335">proposal,
get on your high horse, stand on your soap box, or climb the stairs
into your ivory tower, and tell us what we are doing wrong and how we
can do better.
There is no clear winner.
Triangle-based Webperformance, Inc. has published a <a href= "http://webperformanceinc.com/library/ServletReport/index.html">Servlet Container Performance Report that compares Tomcat, Orion, Jetty, Resin, SunOne, and Websphere. The testing methodology and the results are interesting and really show off the Webperformance product. The conclusion is that there is no clear winner in the Servlet-only performance race. UPDATE: Webperformance left Weblogic out of the review, but Kasia did not.
dot-Net smackdown.
BasicPortal
The goal of this [BasicPortal] project is to leverage a combination of several of the Apache Foundation's Jakarta projects into a simple vertical sample application that contains the functionality common to 80% of web projects -- we let developers customize the last 20%.
On the Struts mailing list, somebody asked for Struts-based CMS and Basic Portal was the answer. BasicPortal aims to be a best practices sample app, so I'm going to take a close look at the persistence layer.Dominic's weblogger demos.
Persistence proposal.
Good programming practices.
.Net cleans up the gigantic mess
Without
a doubt, .NET is one of the great simplifying tools in the world of
software. It goes a long way towards cleaning up a gigantic mess.
That's actually not such a great achievement when you realize it's
Microsoft that created this mess by building badly designed software
year after year, refusing to do any thinking and planning, going at it
straight from a programming point of view. And they knew. [Why
We Don't Build Software for Users, interview with father of Visual
Basic Alan Cooper]
I know that is a month old article, but I just found it. I don't normally read Visual Studio Magazine. Mr. Cooper also makes some interesting points about the engineering approach to software development, exemplified by UML, and the craft approach, exemplified by XP.
Not just another...
EAI.
It's not just another Internet-economy
acronym-turned-anachronism [<a href=
"http://eai.ittoolbox.com/documents/document.asp?i=2100">Enterprise
Application Integration 101, Andrew K. Reese]
That's right Mr. Reese, EAI is the premier Internet-economy acronym-turned-anachronism. I'm joking, of course. I really don't know enough about EAI to make such a claim, but when somebody says that A is not just another B my bullshit detector starts to hum.
gmane.org.
Happy birthday Rebel.
ignoreHosts.
Spam via Referer log.
I guess I need to get busy again. I'm working on a fix for referer spam in Roller 0.9.7. Roller will check the validity of each referer ensuring that the refering page exists and that it contains a referering link. Roller will also have the ability to ignore URLs that contains certain key words.
UPDATE: today's spam is coming in from a site called voodoomachine and another site whose name is a just little too nasty to mention. It does not appear to be a one time thing, the hits are still coming in from the spam machine. What a drag. If this continues throughout the day, I'll be taking the referer log off of my page template. What a drag.
« Previous page | Main | Next page »