OJB did not steal any code!
Thomas Mahler posted comment on my recent <a href= "http://www.rollerweblogger.org/page/roller/20021212#carlos_on_hibernate_vs_ojb">Carlos on Hibernate vs. OJB story and I'm promoting it to a post. I do not want to be unfair to OJB and I'm glad to hear that the issue of stolen code was a simple little mistake. Here is what Thomas had to say:
As one of the core OJB developers I'd like to correct some points.While on this topic, I should also thank Carlos for explaining why he does not like JDO and for pointing out that there is another open source JDO implementation called TJDO. I should have remembered that because I mentioned TJDO in my <a href= "http://www.rollerweblogger.org/page/roller/20021013">comparison of persistence frameworks back in October.
- OJB is not focussing on JDO. OJB is focussing on transactional object persistence. We provide several "personalities" to give users their API of choice.
We currently support ODMG3.0, JDO1.0 and our own abstracted Object level transaction API (called OTM).
OJB has a layered architecture with a persistence kernel reponsible for all the O/R stuff. This kernel is shared by all three toplevel personalities.
We have *not* been working on JDO for months. We are concentrating on a stable 1.0 release. JDO is in the 2.0 scope! So statements like "OJB is losing its way by focussing on JDO" do not make any sense.
- OJB did not steal any code! We have a little JDO prototype that has not been maintained for months. By accident one of our developers checked in some interface definitions from the JDORI codebase. These interfaces were not even referenced by our actual code! We settled this issue within hours by simply deleting the stuff from our CVS.
I don't see why such a minor incident should prevent us from building a OSS JDO implementation?
Lesson 2: Piracy is progressive taxation
Excellent essay by Tim O'Reilly!
For all of these creative artists, most laboring in obscurity, being well-enough known to be pirated would be a crowning achievement. Piracy is a kind of progressive taxation, which may shave a few percentage points off the sales of well-known artists (and I say "may" because even that point is not proven), in exchange for massive benefits to the far greater number for whom exposure may lead to increased revenues. [Tim O'Reilly, Piracy is Progressive Taxation]
Show respect for Andy's readership.
Andy Oliver have hundreds of visitors every day to his blog, probably because he writes about interesting things. He would possibly have even more readers if he didn't crap on his readership by not spending the extra few minutes to present his ideas better.Mr. Incoherence says that Andy Oliver's writing is <a href= "http://www.freeroller.net/page/matsh/20021212#show_respect_for_your_readership">not coherent (scroll down to the bottom of the post), what a crock. Read <a href= "http://freeroller.net/page/acoliver/20021212#my_first_blog_flamewar_or">Andy's response. Here are my two cents. Andy writes in a no-holds-barred blast of the fire-hose style that is great fun to read even if you don't agree with him. If he went back to edit and soften his words, he would lose readers not gain them. There is a place for more formal, pedantic, and boring writing but not at Andy's blog. Perhaps Mr. Incoherence can establish a home for such writing at his place ;-)
Unexpected Christmas gift.
Carlos on Hibernate vs. OJB.
Carlos
says that, right now, the Hibernate
persistence framework is a better choice than Jakarta OJB. He also criticizes Jakarta OJB for it's emphasis on JDO. I have to agree with his assessment of Hibernate vs. Jakarta OJB, but I don't agree 100% with Carlos on JDO.
Carlos does not like JDO, but like it or not JDO is the standard Java
persistence API. Currently, there are only a few small
vendors supporting JDO (SolarMetric, SignSoft, and PrismTech
to name a couple), but someday JDO could become the
defacto standard. If that happens, then
support for the JDO API will a very important feature. For that
very reason, I wanted to use Jakarta OJB in my WROX JSP chapter on
database access. However, I found that the Jakarta OJB
implementation of JDO was just not ready for prime-time. I wanted to
use an open source framework, so I decided to use Hibernate instead.
Plus, the Hibernate docs are very nice.
Now, it has come
out that (apparently) the Jakarta OJB implementation of JDO contains
some stolen code. I guess that means than an open source version
of JDO is not going to happen, at least not in the near future.
I can't speak about the technical merits of JDO. I don't know
enough about JDO to compare JDO vs. any
other persistence API. Perhaps somebody who does (Carlos?) can
break it down for us.
Welcome to Matthew Porter.
Cool! A new Roller-based weblog, by Matthew Porter. Matthew: you might want to turn off the new-users-allowed setting in web.xml unless you really want to host a Roller community on your site.
Defending Struts
<a href= "http://www.raibledesigns.com/page/rd/20021211#design_patterns_marc_fleury_and">Matt <a href= "http://www.mail-archive.com/struts-dev@jakarta.apache.org/msg11563.html">posted the #java chat-channel FAQ's recent critisms of Struts to the Struts mailing list, provoking Ted Husted to come to the defense of Struts. Ted took apart the criticisms one-by-one and left the attacker with nothing but a lame argument "not really quantifiable through bullet points" that "Struts just feels wrong."
Even without those bullets the #java FAQ author continued to fight on with a rebuttal that explains "#java tends to sneer at morons who feel that Struts is THE WAY." Ah, now I understand. The FAQ question should rephrased. It should not be "why are people so down on Struts?" The real FAQ is "why are the snotty geeks in this chat room so annoyed by Struts?" The answer is simple: sour grapes.
I'm sure that there are plenty of valid criticisms of Struts, and that nobody wants to hear those criticisms more than the Struts contributors themselves. Tell them.On the topic of System.out.println
Erik
pointed to the Log4J write-up titled Don't Use
System.out.println the other day and yesterday it was the hot
story on Javablogs (I kid you not). This does not really have anything to
do with Log4J, but here is what the Webpshere best
practices paper that I mentioned earlier says about using System.out.println
in a web application:
Minimize use of System.out.println. Because it seems harmless, this commonly used application development legacy is overlooked for the performance problem it really is. Because System.out.println statements and similar constructs synchronize processing for the duration of disk I/O, they can significantly slow throughput.I did not know that.
Servlet/JSP application performance tips.
Say what you want about big bloated Websphere, but the developer
resources, redbooks, white papers, etc. on the Websphere and DeveloperWorks sites are
great. After I wrote most of my WROX JSP chapter on performance,
I found a very helpful white paper on Websphere
Development Best Practices for Performance and Scalability (340kb
PDF). As far as I can tell, the best practices apply to any J2EE
application server, not just Websphere. Many of the
recommendations apply to EJB applications only, but there are also a
good number that apply to plain-old Servlet/JSP apps, for example:
- Don't store too much in each session
- Don't create sessions at all if you can avoid it
- Use database connection pooling
- Avoid string concatenation
- Minimize thread synchronization
- Don't use SingleThreadedModel
We're supposed to be the good guys.
Don't bother with that cockamamie 911 theory, check this instead: <a href= "http://dubyadubyadubya.com">dubyadubyadubya.com (Flash required).
Blogger API 2.0.
Dave Winer reports that a <a href= "http://groups.yahoo.com/group/bloggerDev/files/documentation.html">developer preview of the XML-RPC-based Blogger API 2.0 has been made available on the BloggerDev group on Yahoo (you'll have to join the group if you want to view the spec). The new spec makes use of XML-RPC structs for just about everything (so it will take some work to support) and finally supports weblog entry titles (but it will be worth it).
Doing my surfing for me.
There was a time when Brett and Mike did my surfing for me, now Erik Thauvin is doing that. He is constantly on top of the cool Java (and other) news. Thanks Erik!
Ag 0.2.
The other day, I posted a new version of my Ag persistence example on SourceForge for download. This new version includes the HSQLDB database and is a lot easier to install and run than before.
Roller update.
I just commited to the Roller 0.9.6 CVS branch a series of changes that should improve the performance of the Roller main page (index.jsp) by making better use of OSCache page caching. I hope that FreeRoller will put these changes in place, because the FreeRoller main page is VERY SLOW! Assuming that the changes work well, I'll label and release Roller 0.9.6.5 on SourceForge sometime next week.
As you may have noticed, Roller 0.9.7 development has been put on the back burner. At the moment, Matt, Lance, and I are all too involved in other side projects to do any significant work on Roller. I'll probably get back into Roller development around Christmas time with some enhancements to Roller's referer tracking.40 foot garland.
Thanks to the "ice storm of the century" we now have a 40 foot long and 3 foot tall Christmas garland of cedar, holly, and magnolia clippings (and logs) lining the curb in front of our house.
Castor JDO: false advertising?
I have to agree with David Jordan's most recent OnJava article. "Castor JDO" is a confusing name for a product that does not support JDO. I don't know or care who was using the JDO acronym first; the Castor folks need to drop JDO from the Castor name.
Webapp configuration.
I have two complaints with the XML-file approach to webapp configuration approach that <a href= "http://freeroller.net/page/jduska/20021206#how_to_handle_configuration_information">Jeff and <a href= "http://www.raibledesigns.com/page/rd/20021206#webapp_configuration">Matt have been discussing (and the one that Roller currently uses):
- It does not work well in a distributed situation. If my application is distributed across multiple servers, then app instances cannot easily share one XML file. In that case, I'd need to copy the XML file to every server. If I want to make configuration changes while the app is running then I'm are out of luck. A better approach would be to store this type of information in a database, not a file.
- There is no meta-data. I would rather not have to write a configuration UI for every webapp that I write. But, to write a generic configuration editor UI, I need to have meta-data about each configuration property. For strings and string-list properties, I'd want a list of possible values. For integer properties , I'd want a range. For a real configuration API, I need meta-data about properties and acceptible values.
Back on the grid.
Like those other RTP bloggers, we are thankful to have our electricity back and thankful to have kind friends and neighbors. Thursday night we stayed with friends who have a working fireplace and a nice little camping stove. Friday morning, we decided to drive up to Washington, DC to stay with the in-laws. We drove back to our house to pack up and much to our happy surprise we found that our power was back.
So, we stayed in town and everybody came over to our place. Our fireplace friends came over to spend the night because they still had no power. My parents and brother from Chapel Hill also came over for the same reason. We had a nice evening and quite a feast with a freezer load of food from Chapel Hill that would have otherwise spoiled. Chapel Hill and Durham were hit harder than Raleigh and power may not be restored over there until Tuesday. So we will probably have visitors in the house for a few more days.
Despite the weather disaster we still managed to pull off a really nice space-themed 6th birthday party for my son Alex. We had about 15 kids under 6 here today making alien balloons, throwing star gliders, playing asteroid toss, running, screaming, and generally driving all of us adults totally insane.A half-inch.
We did get a half-inch here, but it was a half-inch of solid ice. Our holly tree snapped in half, one of our magnolia trees lost two limbs, and our cedar tree uprooted and fell over. It could be worse, I suppose. Now we are without power and the power company says 3-5 days before everbody will be back up. You might not hear to much from me until then.
Roller on the Linux Journal site.
Doc Searls mentions Roller in a post titled Rolling a new blog on the Linux Journal website.
« Previous page | Main | Next page »