Recent Posts

RSS Feeds

Cease and Desist no more?

Despite the mass of folks that got it wrong (specifically Matt Asay Red Hat did not send me the C&D letter, and my essay was not really about C&D's anyway). The dust up about the trademarking of Open Source projects was quite interesting.

Hopefully (but unlikely) the corp lawyers that send out the C&D's will read this and learn.

Permalink     No Comments

Interface 21 and economically rational developers...

Matt hit the nail on the head. Ben has a great point. This is exactly the same stuff that JBoss does/did. Rod is much less 'lawyery' (as Matt said and I've experienced, Rod has not come after me or anyone I've heard of with Cease and Desist letters) about it but that is only because the VC's just got their hooks into him. He will in time be forced to start enforcing Interface 21's trademarks just like JBoss must. And that is as it should be, please understand that I'm not hammering Rod, Interface 21 or even JBoss. (As much as I apparently like to do that, the only reason I've ever hammered on JBoss in the past is because they are something that everyone knows. Makes it much easier to discuss a concrete instance rather than some abstract notion).

So anyway we should try to be economically rational and tie our hard work and knowledge acquisition to truly open solutions instead of just being wowed by getting the source for free. Having the source is great, having freedom is even better.

In my opinion as the open source market matures folks like us (developers and consultants) will start to understand this kind of thing more and more. And as new opensource things come to the market we will be more aware of the fact that joining the Spring community enriches chiefly Interface 21 in the same way that joining the JBoss community chiefly enriches RedHat. Now of course as people involved in these communities we are able to make a living, but its only because we are playing the game by Interface 21's (or JBoss') rule book. If we want to do something with JBoss outside that rule book we are smacked down. In truly open communities like Eclipse or Apache you do get ownership when you join the community, true ownership, not just the source code.

And as I've said a bunch of times in the past that is what makes open source cool for me, I get ownership and freedom to do what I can, or am able, to enrich myself. If I'm good at it I help myself and the community. I help myself cause I get to bill, I help the community because I'm helping someone better understand what the community has built. Thus more people are using the software, more people are able to contribute and the ecosystem grows. The same thing has been happening since the beginning of IT, but its always been the companies that made the community.

We are in an age where big companies are not required for a piece of software to become widely used. Don't believe me? Take a look at appfuse. From Matt's passion to grok java web development came something that more than a couple of people have found useful. And there are many other examples of this kind of thing.

Back to Interface 21 and Spring. You can't justify VC and 10x - 20x revenue buy outs on the DHH philosophy. I tend to be with Matt on this (and alot other things too) that I prefer the DHH model of things, I prefer open communities, truly open, where the community decides direction not a single company or single person. Sure the folks that founded the community should be held in high regard and looked to for direction. But for the committers list to be restricted to one and only one company, that is a recipe for Cease and Desist letters.

All I'm saying is that we should be 'economically rational' and put our weight behind communities that will not come back to squash us.

Permalink     8 Comments

Open source shark jumping?

I read a pointer to this on /. the other day and mentally filed it to go back and see what the fuss was all about. I finally had time tonight. Bottom line, Mr. Gould does not get it. Clearly the IBM press release is about making it so Lotus Notes folks are not stuck with Windows. Their client works in a more open environment. It's all about getting rid of Windows for IBM.

I think the point that he might have made that I wold belive is that Open is becoming more and more diluted as its used to market more and more unrelated stuff. Maybe I should rethink my position on Trade Marks ;-) Maybe I'll shell out the ~$375 it costs to purchase the trade mark on 'Open' and then send IBM a C&D letter.

Permalink     No Comments

Spring, DBUnit and OpenJPA

In an attempt to be economically rational I have been spending some quality time with OpenJPA. My initial impression is that its got great potential. I know Kodo had a loyal following of folks that thought the world of the software and since OpenJPA is Kodo opensourced it stands to reason that its a fairly mature bit of code. What I have discovered in my research thus far is that its cool but poorly documented. The Kodo docs are just different enough to make me crazy and Google has only a few hits that show you how to do stuff. So its early but promising.

Towards realizing that promising end I am going to start blogging bits about OpenJPA in the hope that it helps others get their heads wrapped around it and how it works. I intended to do this with all the other open JPA implementations as well (Cayenne for sure and TopLink as well assuming its not 'owned' by any single company).

So on with the show...

This example takes you through using the following bits together;

  • TestNG which I like tons better than JUnit 4.x or 3.8.x
  • DBUnit
  • Spring - autowire tests to the beans in the context
  • Maven - build the stuff and run the tests
  • OpenJPA - formerly known as Kodo, ORM tool

Some time back I wrote up how to use DbUnit to test your hibernate mappings using a rather simplified financial tracking model (can that really be almost 3 years ago???) It is somewhat like the model Yahoo uses. But the model is of course not that sophistated but its purpose in life is not to unseat Yahoo from the height of fininancial management but rather to illustrate JPA modeling and the testing of the models. So with that bit of background lets take a look at the model;

Model

I used the model unmodified (same JPA annotations) with OpenJPA and then applied the same basic approach to testing the app with DbUnit as I did before. As I tried to prove last time, having these types of tests in place is hugely useful to instill confidence in your mappings.

On to the code... The first thing is the Spring integration. The base class makes some assumptions (your test context is defined in testAppCtx.xml for example) and autowires your test to the beans defined in your context. So I can have a test for the FooService that uses and instance of that service that is injected by Spring simply by having a set method. For example, here is the bean defintion for one of the DAO's tested in this example code;

<bean id="userDao" class="net.dudney.jpaund.dao.jpa.BaseDaoJpa">
  <property name="type" value="net.dudney.jpaund.domain.SiteUser" />
</bean>

Then I have Spring inject that DAO into my test class with a simple property like this;

private BaseDao userDao = null;
...
public BaseDao getUserDao() {
  return userDao;
}

public void setUserDao(BaseDao userDao) {
  this.userDao = userDao;
}
...

Now that my test has a pointer to the DAO I want to test I need some data to test it with, the data is captured in the form of XML for DBUnit and looks like this;

<?xml version='1.0' encoding='UTF-8'?>
<dataset>
  <site_user id="1" version="0" username="benvolio" password="where"/>
  <site_user id="2" version="0" username="tybalt" password="forart"/>
  <site_user id="3" version="0" username="mercutio" password="thou"/>
...
</dataset>

and placed into a file in the src/test/resources folder to be picked up by maven and placed into the test classpath. My test simply returns the path to the file in an overridden method like this;

@Override
public String getDataSetXml() {
  return "net/dudney/jpaund/domain/data.xml";
}

The abstract DbUnitTestBase base class takes care of loading the data for you. The data is loaded before any tests are run from each class courtsey of the @BeforeClass annotation. TestNG will run the method that loads data before any other methods in your test class are run. So you can put data to test your DAO or Service in the database once and then use it in each test. If you modify the data in a way that needs to be undone you can reinitialize the database with your data by calling loadSeedData.

Something I learned also during this expierement is that the OpenJPA Maven2 Plugin is not ready for prime time. Dispite my last post on that topic I would stear clear of the M2 plugin and stick with the ant run plugin as suggest on the OpenJPA home page here.

Finally here is the code.

Good luck and I hope this is helpful in testing your JPA stuff...

Permalink     4 Comments

Economically Rational?

By way of /. I read this. The article is interesting but the really interesting part for the current discussion is in section 4.1 where it states.

Consequently, it makes little sense for the economically 
rational software developer to invest time in commercial open source. 
The value these developers create is tied to the product and the 
owning company. Unless the product is in wide use or the developer
wants to work only for this one company, it makes more sense to 
invest time in a community open source project.

Projects in wide use can still make sense to get involved in, but it makes more sense as a developer (economically) to get involved in community owned projects.

Permalink     1 Comment

How Now Shall We Live?

I have spent considerable time discussing the issue of how we as a community should embrace opensource. One of the issues that I used to illustrate my thinking was JBoss/RedHat owning the trademark and service mark for Hibernate. While that issue generates a lot of interest I think that much of the response was wrong. RedHat is not evil for enforcing their trademarks.

Before I go on, let me say again for the 100th time that I hold no grudge against JBoss or RedHat, they have every right (and from the comments, it appears that they also have the duty) to enforce their trademarks.

Ok with that said what is my issue?

Well I’m glad you asked. As OpenSource becomes more and more dominant in the world of software development (one CEO at a product company told me that his VC’s were not planning on funding another enterprise play that was not opensource) we as developers/entrepreneurs have to have a plan and understanding of this ‘new’ world to keep from getting hoodwinked. (No I don’t think there are monsters in JBoss/RH actively trying to hoodwink anyone so please don’t accuse me of that.) Do you want to get into a community that is dominated by a single company? And if you do what are the ramifications, how will that fact influence your investment in time and knowledge acquisition?

To illustrate what I’m talking about I’d like to go back to the days of closed enterprise software. BEA was one of the main players in the Java EE space back in the day (and they still are from their revenue #’s) if you were doing Java EE development it paid for you to be informed about what BEA was and how it worked. If you could speak BEA you had a job, there was tons to do and your expertise was rewarded because of that rich job market. As a developer or consultant it paid to know WebLogic. The rewards were there and it made sense to dig into the server. There was a free license for developers to use so it was easy to learn, you could get it running on your laptop in 15 minutes. Times were good.

BEA was very good a fostering that community of entrepreneur developers, they had programs that allowed even small independent consultants to sign on as partners. They had great forums that were populated not only be BEA folks but all by a large number of external experts, folks that had downloaded the server, learned enough about it to get a gig and were willing to share that knowledge with others. It was (and I guess still is) a great community.

As opensource started to become more prevalent (and with JBoss the big player in this space) though the dynamic started to change. Knowing BEA got you a job but knowing JBoss was cool. I believe a big part of this ‘cool’ factor was that JBoss was opensource. Developers could not only download the server and learn it for free they could get the source! This was new and different and very cool. Now we could see how all that cool thread management happens (at least in one app server). It was a good time to be a geek.

Inferred in the fact that JBoss was opensource was the feeling of ownership. Folks getting involved felt they had ownership in the success of JBoss. If someone was able to convince their IT department to give JBoss a chance they had ownership in that win. JBoss was opensource and therefore many assumed shared ownership. The inferrence was not acidental either, JBoss actively promoted this idea in posts like this.

And that is where I have a problem. The actual ownership in JBoss that we have is the same ownership we have in BEA. Nothing wrong with knowing BEA or JBoss, its good for your bill rate to know both. However you can’t really share in the ownership of JBoss because a single company owns the goods and IP. As Shaun Connolly points out RedHat owns the trademark and if they don’t protect it they will loose the ability to use it. They (RedHat/JBoss) are building a brand.

I’m sure they have a budget around promoting Hibernate, but the last time I checked the reason Hibernate or JBoss for that matter was successful was not because of a great marketing budget it was because of thousands of folks involved in the community pushing for JBoss to be used. Again, feeling a sense of ownership.

Again, they have every right to enforce the use of their trademarks. I’m not arguing against that at all. The issue is ownership. It is one company (and only one company) that owns the trademark. The thousands of developers that invested in groking Hibernate, JBoss etc have zero ownership in that trademark. They can’t do anything with the mark that is not allowed by the owner or law. So from my current understanding I could offer ‘Training for the Hibernate Implementation of JPA’. Some might ask, well is that so onerous to you? Is it that much trouble to put the extra verbiage into the marketing stuff? No its not, and you can bet if I ever publicly offer anything related to Hibernate or JBoss I will be putting that verbiage in.

This same issue applies to countless ‘professional opensource’ companies out there. Pentaho and Alfresco, both very cool bits of opensource come to mind. And there are lots of others I’m sure. And there is nothing wrong with them trademarking their respective names and other things they use to promote their products. I know folks at both of these companies and I really hope they take over the world and make a ton of money. And again please understand I don’t see anything wrong or evil in this business model.

It comes back to the idea of ownership. I could not get JBoss's contirbutor agreement because you have to login to get at it (AFAIKT) but I could find Alfresco's and Pentaho's. And my understanding is that they are very similar to JBoss's. The careful reader will notice that contributions become the property (wholly) of the companies. Some would point out that the difference between the Apache agreement is not very significant. And I would agree, however Apache is not a company but an organization of individuals with ownership, including the person signing the agreement.

Fundamentally the difference between BEA and JBoss from a developer’s perspective is not very large. Sure I can get the code to JBoss, but apart from that what is different? I could fork the JBoss code and start my own app server, but IMO that destroys the value in the code. The code is valuable because of the community, BEA is valuable because of the community. BEA had a free download before opensource was popular because they got it. Its just like Ballmer screeching about developers. It’s the developers stoopid, they are the folks that make the product.

The difference is that in opensource many developers start to feel a sense of ownership around the products they evangelize. And its not so, we don’t have ownership in JBoss or Hibernate. Just like we don’t have ownership in BEA or IBM or whatever. Again, there is nothing wrong with pursuing JBoss, Hibernate, BEA, IBM etc knowledge. It is very good for your bill rate to know these technologies. Just go in with your eyes open. The response to the hibernate trademark issue was so strong (IMO) because people feel ownership in Hibernate that is not there. The fact is that Hibernate is owned by a company that can (and must) regulate how the developers interact with the product.

Sure JBoss and RedHat would argue that we are symbotic, one can not exist without the other, and besides JBoss would never do anything to hose their developer base. Perhaps, I prefer to play in a space without the posibility of being hosed...

Which finally brings me to why I think communities like Apache and Eclipse are better suited as places for us to invest our time and energy. The feeling of ownership is geniune, no one owns Apache Struts, everyone in the community does, everyone.

Permalink     8 Comments

Once More Into the Breach...

So that was quite an adventure.

The whole trademark issue is very similar to patents in my mind and needs some reform. I am glad we had the opportunity to chat about trademarks and the use of them, esp in open source communities. But the initial point of the actual entry was to talk about the Genuitec people being smacked on for not making their code changes public. Gavin claims one thing while Genuitec claims another.

This goes again back to why I don't like the whole JBoss model of doing open source. What Hibernate now has is a fork of hibernate tools, one maintained by Genuitec and the 'official' one. If committers on Hibernate did not have to have a jboss.com email address but could instead have a genuitec.com email address the fixes/changes could have been discussed in an open forum, agreed on (in one form or another) and then put into the official code base. Now what we have instead is something akin to an un-useable fork. In what possible way does Genuitec posting this code help me or anyone else in the community.

This kind of behavior is what I dislike about 'commercial opensource' as defined by JBoss. I don't like that you have to have a jboss.com email address to commit to the code base. In other communities (like Eclipse or better yet Apache) you don't have to have any particular email address to become a committer, you just have to have merit. Merit gets you access, with Hibernate and JBoss merit gets you a job interview and access if you land the job. A nice big pat on the head and a 'thank you very much' if not.

I don't like that at all. I have posted about stuff I don't like about this kind of 'open', here, here, here, and here. All told I've spent a bunch of time talking about this. To reiterate I don't dislike anyone from Hibernate or JBoss, I have a couple of friends there, I've only met Gavin once in passing at a conference and he seems like a great guy. I don't have any issue with a company asserting its rights pertaining to its trademarks. But I don't like this version of open. I'm not saying its bad or evil or anything I just want people to go into the community with their eyes open. Maybe I would not even care about this issue at all if Hibernate.org was blanketed in (TM)'s everywhere so that it was more obvious. Perhaps a prominent note saying something like 'Hibernate is a trademark owned by RedHat Inc' or something similar would do the trick.

When you invest your time and energy into the Hibernate community, unless you have or get a jboss.com email address you are likely to get nasty grams from people with titles like 'Legal Specialist' if you don't watch your p's and q's. Not so in other communities, that is all I want people to get from this whole discussion. If you are an IT worker and have no aspirations of owning your own company or the like then have at Hibernate its a great tool and technology. If on the other hand you are an entrepreneur it might be good to look elsewhere.

And that is what I was trying to say yesterday, its the entrepreneur's that made Hibernate popular, it was tooling vendors like Genuitec. It was thousands of entrepreneur's telling their clients about Hibernate, it was the thousands of IT geeks reading blogs written by entrepreneur's about how cool Hibernate is that got them to try it, or fight for hibernate with their teams. The community 'made' Hibernate (I'm not referring to the code) but the community does not have the access that I think it should.

Permalink     13 Comments

JBoss - choose what you learn carefully...

I'm a consultant & developer. I like to write code and I like to get paid to write code. I like when people I know make money writing code, I really like it when someone gets stinking rich from writing code.

As a consultant who likes to make money I offer 'value' to my clients by knowing stuff that can make them more money, by delivering software faster, by delivering competitive advantage, etc. I get paid because of my experience and knowledge. As a result it is very important that I stay up on what is going on in the industry and keep abreast on important technologies and trends. As part of my personality I like to do that anyway so its not much effort (its a lot of work but I like it, so not much effort).

About 14 or 15 years ago I happened on relational object mapping tools. The first one I used in 'production' was something called DBKit which was the precursor to EOF from NeXT computer. It stunk, was full of bugs and was way to slow. But, it was full of promise. I was hooked on the idea of making objects from rows based on meta-data. As I got into it and NeXT released EOF (a much better version of R/O mapping) in 1994 I was becoming quite versed in the issues of how R/O mapping worked and what was needed to make a 'real' production system from a framework like this. As NeXT faded and Java took off I switched to Java as I liked making money in 1996 as much as I do today.

I was forced to go without a decent R/O mapping system for a while (and a lot of other very nice features of what is now Cocoa on Apple's OSX). But it was not very long before the R/O frameworks started showing up in Java. TopLink was one of the first to hit the scene that I knew of and since it was from Smalltalk company I just new it would rock! Well I was wrong but it was so much better than JDBC that I used it anyway (around early 1998 I used it the first time in 'production'). Then I went off and did a tools startup that used R/O mapping frameworks, TopLink (and EJB 1.0, yikes) is the only one I remember but there were others. But around the end of that company (InLine Software, mentioned in this press release, ah the glory days) I started looking at a new thing called Hibernate.

For me Hibernate was cool because it did what it should do, did it well enough and was open source so I could use it without paying. What that meant to me as someone returning to the ranks of consultant is that I could hone my skills and not have to pay through the nose to do so. And since there seemed to be some positive buzz developing around the project I figured it would not hurt me to know a technology that was gaining in popularity. I dabbled with 1.x versions but did TopLink in my day job. As Hibernate continued to mature I felt more and more comfortable recommending it over TopLink as it was free and had a similar feature set. By the time 2.x rolled around I finally got to use it on a 'for pay' project. I thought that was just fantastic, and I was really glad to be able to do that.

By this time there was a lot of hype around Hibernate and lots and lots of folks were using it. Now we come to the beginning of the meat of this windy post. Did Hibernate become popular because thousands of folks like me were using it because it was free and liked it enough to fight for it with their bosses and clients or did it become so popular because Hibernate was the perfect solution. My guess is the former. So now fast forward a few years to the JBoss/RedHat days (today).

Hibernate is trademarked by JBoss/RedHat (USPTO #3135582 look it up here). Which means that me and the thousands of other consultants that put in a bunch of time learning the framework cannot profit by publicly claiming Hibernate services. I can claim 'ORMapping' services but who (with money) knows what ORMapping is and why would they pay me for my knowledge about it.

And, we have folks like this that are being bludgeoned by RedHat folks with claims of leaching. Folks like MyEclipse made Hibernate more likely to succeed by providing support (for free) and tools (for really cheap) that make Hibernate more approachable and for that they are called leaches, nice.

And you probably recall this from a couple of years ago. And I've heard rumblings that RedHat is doing similar things to companies offering Hibernate services. Now as I said in the very beginning, I like to make money and I like it when others make money too. I don't think RedHat should be out to be poor, they should be able to pursue a profit.

My issue with JBoss is that they are the ones committing the trespass, they are the ones damaging the community. By trying to drive MyEclipse out of the hibernate business they are damaging the hibernate community. By preventing my (former) company from offering services specifically called 'Hibernate Services' they are damaging the community. Why don't we all pack up and go elsewhere. Cayenne is a good match to Hibernate feature for feature and it even does several things better. Maher if you want to come leach off our community by offering free tech support and tools, we'd love to have you. (disclaimer, I have recently become a committer on Cayenne)

Which brings me to my final point. Open to me means open, if I spend my limited time and energy studying and learning a technology I want to be able to profit from that knowledge. I don't want to be part of a community that only allows me to do that with a jboss.com email address. If I could get away with never touching Hibernate again I would do so. Now I have to convince my clients and friends to do the same. We will see where the industry goes in the next couple of years, and hope...

Permalink     50 Comments

anyone else find this wierd...

I hate to keep posting negative stuff about jboss inc (I love the server and I'm very happy that friends of mine make money working on open source). But I find this disturbing or weird or something.

I just don't like the idea of an open souce project 'acquiring' another project. What it looks like to me is that JBoss Inc bought Rosseta from a partner company and is donating it to the ESB team.

From looking at this post it does not appear that the decision to use Rosseta was a 'community' or 'open' decision but was instead decided by the Inc people and pushed into the 'community'. Not what I'd call open, even if the source is avalible.

I have no problem with company X spending money in any way they like. The only thing I find disturbing is that the community is not really involved in such decisions but is instead informed after the fact. This is an example of what I find 'not open' in the JBoss Inc & JBoss the project model.

This is the kind of 'not open' behavior I was ranting about here.

Permalink     No Comments

Geronimo Live

Well its almost that time, to hop on a plane to SFO and make the anual pilgramage to JavaOne. If you are going to be there too make sure to stop by our booth (#1520, could not find a map on online) and register for Geronimo Live.

Permalink     No Comments

Deploying WebApps to Geronimo

As I posted earlier I'm getting to deploy and test Alfresco and Pentaho on lots of app servers. Today I've been fighting with Geronimo and Alfresco. There are a couple of issues that need to be worked to make Geronimo happy.

  • First: Unlike Tomcat, Geronimo validates the deployment descriptor against the schema so the <description> element must be first in several elements that it is not. I filed the problem under Alfresco Bug #34. I have also attached a substitute web.xml in case you want to try this at home.
  • Second: You have to specify that some of the classes in the alfresco.war/WEB-INF/lib jars must be blocked from other class loaders like this;
  •     <hidden-classes><filter>org.springframework</filter></hidden-classes>
        <hidden-classes><filter>antlr</filter></hidden-classes>
        <context-root>/alfresco</context-root>
        <context-priority-classloader>false</context-priority-classloader>
    
  • Third: You have to specify a dependency on the mysql jdbc driver also in the geronimo-web.xml, like this;
  •     <dependency>
          <groupId>mysql</groupId>
          <type>jar</type>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.0.0-beta-bin</version>
        </dependency>
    
  • This looks a lot like a maven dependency you might be thinking, and you'd be right but the <type> element is in a different place, and yes that was another forehead brusing experiment in irritation. I posted the geronimo-web.xml file here.
  • Finally: Alfresco requires JSE 5.0 (so its not really supported on Geronimo but I love pain) so you have to disable the stuff in Geronimo that requires J2SE 1.4, namely you have to undeploy the DayTrader app and turn off anything in Console->System Module related to corba (i.e. geronimo/client-corba/1.1-SNAPSHOT/car).

Permalink     1 Comment

Cayenne - 1.2 Beta Released

Cayenne 1.2 has gone beta. Check out the full announcement here. I am really excited to see the community grow as it moves over to apache. If you are interested in an ASL alternative for your relational-object mapping stuff go check it out.

Permalink     No Comments

GlassFish & TopLink?

Ok I admit that in Ocotber I was a bit distracted but it totally amazed me when I found out last night that Oracle open sourced 'TopLink Essentials' as part of Glassfish. Looking at this the initial code was checked in in mid October, that is amazing. Why did I not hear about that? Seems like big news to me... But maybe it is just me, I first heard of TopLink when it was a Smalltalk product. Ah showing my age again...

So is Oracle turing over a new leaf in thier approach to Open Source?

I'm not sure because of stuff like this. If Top Link is part of the Glassfish community why are the EJB 3.0 extensions they are offering called out as such? Why not just be 'Glassfish extensions'. But that could just be a lack of community participation expierence on the part of who ever wrote that doco. If you dig into the FishEye link though none of the oracle classes have been repackage to be part of the glassfish package space. Perhaps its seen as little bang for the buck but I'd feel better about their commitment if the code were repackaged to the glassfish package structure. And yes I do know that the glassfish community exists to make me feel better :-)

On the positive side Oracle is donating ADF Faces to the ASF and specifically the MyFaces team. Very cool indeed. So this is very exciting indeed. Maybe Oracle is starting to get it (we will have to wait and see).

Here are some more links about this in no particular order...

So anyway, very interesting times that we live in...

Permalink     2 Comments

OK - last one about JBoss

Well this has been an interesting time, buzz is still flying that Oracle will buy JBoss and lots of fun stuff is being said. I have several comments and thoughts on this topic that would probably take more time to write down and I have so let me just respond to couple of things that I've found interesting in this post.

Of course JBoss is open source, I never meant to imply that it was not open source. What I was trying to say in particular was that the openness of JBoss is not a sure thing over the long haul because of the closed nature of the developer community. The company employees most/all of the contributors to its projects (with the notable exception of Tomcat). While there are some distinct advantages to both the company and the community in this model there are also some gotchas. Most particularly this (look for the entry titled "Rewriting versus Refactoring" posted by Bill Venners) post referenced by Yakov here.

Now contrast this with a community like Tomcat. If/when JBoss is purchased by Oracle (I truly do hope it happens, would be great for JBoss folks and make an already very hot market even hotter) there will be virtually no impact on the Tomcat project, ever. The group of developers on Tomcat are dispursed, only a few are JBoss employees. In other words the committer base is spread across several companies and several individuals that do Tomcat in their spare time. So even if Oracle buys JBoss and removes its support from Tomcat (which would never happen, just hypothetical thinking) the community would feel the blow for sure but Tomcat would go on, both in being free and in development of new free versions. If Oracle dropped its support for JBoss (again, would never happen) where would JBoss go?

Contrast this with something like Eclipse, even though many don't quite trust IBM I think its plain to see that they understand the value of community. The Eclipse.org group is independent of IBM now more than ever. The percentage of IBM committers continues to go down and the percentage of other developers goes up. Even if IBM were to go belly up (ok stop laughing) the Eclipse code base would continue to be developed and contine to be free, this is the value in an open and robust developer community.

In my engineering background I think of a robust developer community as redundancy. Redundancy is ineffecient in may ways but there is no substitute for an additional way to make oxygen if you are half way to the moon and the primary system suddenly drops dead.

So anyway that is my last post about JBoss for a while but I will have more to say about OpenSource companies and models...

Permalink     1 Comment

JBoss, OpenSource and 'sucks' all in one post again!?

First off thanks, Norman, Sam and Nick (hey Nick, good to hear from you :-) for taking the time to comment.

To address Norman's comments; I love people making money from their work in open source, as I tried to say about Sid's comments to the Business Week article. It's a pity when people work on stuff they don't care about, life is too short to waste it doing boring work that you hate. That said I'm very glad that Norman and many other great people are making their living from JBoss. I have no problem with people making money from the code base at all. My problem is that JBoss is not a commons, its direction and content is decided by a company. What is different between that and BEA, IBM etc. That is why I say it's not truly open. Sure the code is avalible, the forums are open but the development is not.

The major reason I find this troublesome is that if JBoss.com (the company) were to go away what becomes of JBoss.org (the code base). I don't know for sure and don't want to speculate. But if the base of developers were widely dispursed throughout many companies and one of the companies went away (say purchased by Oracle) then no big deal, in fact hooray for the community.

Survival of a community/organism is more likely when it is widely dispersed rather than highly centralized. That is part of my worry about JBoss as open source.

Now on to Sam's comments; I love capitalism! I'm all over people making money in fact I'm hoping to score big in the ol' capitalism system myself some day :-). I agree that open source is not communism, which is what I was trying to say about Sid's comments. Sid seems to think that people at Zend, JBoss and Sleepcat exist to make him cool software for free. Sid is a communist (i.e. one who wants a commune, not a politico from the old USSR) and I was calling him on it. I don't like commune's because the person/people in power will have everything and the people out of power will have only what the people in power think they should. Communism does not work and I don't advocate it at all. Viva La Capitialism!

While I don't totally agree with this idea 100% I like Simon Phipps idea about OpenSource as a 'Commons-Based Peer Production' economic system. Simon gave a great keynote at Colorado Software Summit in 2003 you can find here. I really liked his ideas about the commons. The idea was spurred on/based on this paper. My understanding of the basic idea (you should of course read it for yourself and get your own idea) is that the code is a common knowledge base that many become proficent on at different levels. The closest to the code are developers, they drive the code. The developers are able to monitize the knowledge base by providing support, consulting and other services that require intimate knowledge of the code and how it is built. The next level out is the group of people that provide consultation around the code base, they are experts in how to use the code and probably know quite a bit about how its built but have not had time or desire to work on a committership. They monitize the knowledge by providing the consulting services and potentially developing applications around the knowledge base. Finally there is the group of users of the knowledge base, they use the knowledge base, help each other with using the knowledge base via forums etc. This group does not necessarly monitize thier knowledge other than getting a better job somewhere. All three groups are critical to the ecosystem. JBoss has the outter two groups but does not have the inner group, the developers are JBoss.com employees. In fact, Microsoft, BEA and IBM/WebSphere all have the outter two layers in spades. That is what I don't like about JBoss's model.

And finally on to Nick's comments; Nick you hit the nail on the head on the assimilation stuff. In fact here is a great example. Also I have found in my reading on the JBoss forums related to Hibernate many examples of arrogance. Now many OS commiters are arrogant so I guess I can't call them different in that respect but I do think most open source folks could stand to be a little more humble.

For people who did not read Nick's comments make sure to check out the post he did on commercial open source stuff here it does a great job of expressing a lot of the stuff in my head that I've not taken the time to organize in such an eloquent manner. Esp relevant is the first bit on letting go of control.

Ok, thanks for sticking with me on this rather long post and I'm really looking forward to the debate.

(and BTW, Tom thanks for your comments too.)

Permalink     No Comments