NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed. (sponsored)
In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.
Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.
Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
Saying that an OS/WebServer/DB/language stack is language independent is patently absurd. Of course it is laguage independent, its a stack! It is also Web Server independent, OS independent, and DB independent. Jeez!
ActiveGrid's site can't handle the load generated by this thread
I found this hilarious considering the talk about horizontal scalability etc. Check out the screenshot below, it pops up every so often on the homepage of their site:
> Well, jokes aside, in the radio interview, they do
> say companies like Google, Amazon and some of the
> other big servers rely exclusively on LAMP for
> handling their huge loads. Why is this? Could it be
> them running on legacy systems? Or is LAMP truly the
> better fit for those scenarios?
I've said this before, and I'll say it again. Anyway who uses Google as an example of ANY technology scaling is using a strawman.
The Google architecture and requirements are so unlike mainstream enterprise architecture, it simply "doesn't count". Google could have been running DOS on C-64's, and it would "scale".
Amazon is a large, read-only site, with a small transactional component. It's architecture also "scales" regardless of technology.
With sites like Amazon and Google, it's easy to throw blades and bandwidth at their front end performance problems. In the end, I bet Amazon has a some very large, high end iron running their financials and master transaction stores.
And this is the key that folks don't seem to be grasping.
It is NOT the language that makes a systems scalable, it's the architecture of the overall system.
Most any language can be used if a) your system is architected properly and b) that architecture suits your domain.
If you write your app in a way that doesn't take in to account the ramifications of horizontal scaling, then I don't care if you write your system in hand optimized assembly, you're not going to scale. Rather you will run out of room either in CPU performance, or in general OS overhead.
Folks seem to like to wear "I wrote it in LAMP" as some badge of honor, like see this great accomplishment I have achieved using stone knives and bear skins.
If you write in Java, you're a corporate drone, but if you write on top of LAMP, you're on the frontier, cutting edge of society.
We've had Java for 10 years, the Enterprise stack for 7 years. While there are the notable disaster stories in Java, there are a lot of unsung success stories running some enormous systems.
We're not going anywhere, and we're not slowing down.
> And the 'M' in LAMP is no prize either.
> As of 4.0.17 our tables still enjoy randomly
> corrupting themselves.
The GPL License used by MySql and others isn't really a prize either for commercial development... maybe BSD licensing is better i.e. Postgres (which has more features anyway)?
The commercial license for MySQL costs at least $595 per server per year
Postgres allows you to use the database for free in any situation commercial, open source, or whatever you desire.
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
--- Abbreviated MySQL Commercial License Details ---
http://www.mysql.com/company/legal/licensing/commercial-license.html The Commercial License is an agreement with MySQL AB for organizations that do not want to release their application source code. Commercially licensed customers get a commercially supported product with assurances from MySQL. Commercially licensed users are also free from the requirement of making their own application open source.
When your application is not licensed under either the GPL-compatible Free Software License as defined by the Free Software Foundation or approved by OSI, and you intend to or you may distribute MySQL software, you must first obtain a commercial license to the MySQL product.
Typical examples of MySQL distribution include:
Selling software that includes MySQL to customers who install the software on their own machines.
Selling software that requires customers to install MySQL themselves on their own machines.
Building a hardware system that includes MySQL and selling that hardware system to customers for installation at their own locations.
Specifically:
If you include the MySQL server with an application that is not licensed under the GPL or GPL-compatible license, you need a commercial license for the MySQL server.
If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries.
If you include one or more of the MySQL drivers in your non-GPL application (so that your application can run with MySQL), you need a commercial license for the driver(s) in question. The MySQL drivers currently include an ODBC driver, a JDBC driver and the C language library.
GPL users have no direct legal relationship with MySQL AB. The commercial license, on the other hand, is MySQL AB's private license, and provides a direct legal relationship with MySQL AB.
> If you include one or more of the MySQL drivers in
> your non-GPL application (so that your application
> can run with MySQL), you need a commercial license
> for the driver(s) in question. The MySQL drivers
> currently include an ODBC driver, a JDBC driver and
> the C language library.
Yea, that's the nut that most folks overlook. If you use their drivers, they want their nickel, unless your entire app is GPL. Now, I don't know what this means if your app is pure PHP.
Re: ActiveGrid's site can't handle the load generated by this thread
They should be running Tangosol Coherence I'm sure Cameron can adapt the best distributed caching product out there to serve LAMPS too, huh ? :-D .
Ok Cameron, I've given you a business ideea. If you'll be selling caching products for this LAMPS movement in the future it will be because I came up with the ideea :-D .
> I don't think anybody today starts with a blank page
> and writes a PHP application. There is a wealth of
> frameworks that already exist to make the job of
> building a web site rather trivial.
Ok, so you are smart enough and have enough time to learn a framework and use PHP properly.
But you are not smart enough (it is too complex!) and it takes too long to learn a Java framework.
Its exactly the opposite for anyone who has had any experience with Java and no experience in PHP.
JSP-only was a simple minded example - there are plenty of frameworks around.
J2EE has somehow got a 'too complex' tag because of the over-designed Entity EJB spec. If you find JSP or other Java web frameworks too complicated that's sad.
The PHP and Mysql people have an understanding about licensing. I don't know the full details but I think the mysql people specifically gave the php people permission to use their drivers.
The rest is fairly standard GPL, "if you use my code you have to GPL yours" stuff.
"Ok, so you are smart enough and have enough time to learn a framework and use PHP properly.
But you are not smart enough (it is too complex!) and it takes too long to learn a Java framework."
Right. Do you know why? Because even the most complex of php application frameworks is easier to understand and implement then J2EE. Somebody else on this topic said it. J2EE is hard to get right and easy to screw up.
"If you find JSP or other Java web frameworks too complicated that's sad."
JSP is a bad idea, it encourages mixing presentation logic with code.
Compare struts to smarty, that's a more apropos comparison.
> Why do you think transactions are only possible with
> java?
I don't think that. I am sure if I dig deep enough I will find some way to handle transactions in other architectures, but as yet I haven't seen them. In J2EE they are in plain view.
Typical use case: commit an incoming message, two database transactions and an outgoing message at the same time.
Re: Where are the transactions?
Why do you think transactions are only possible with java?LAMJ
Saying that an OS/WebServer/DB/language stack is language independent is patently absurd. Of course it is laguage independent, its a stack! It is also Web Server independent, OS independent, and DB independent. Jeez!ActiveGrid's site can't handle the load generated by this thread
I found this hilarious considering the talk about horizontal scalability etc. Check out the screenshot below, it pops up every so often on the homepage of their site:Re: Is J2EE Obsolete?
> Well, jokes aside, in the radio interview, they do> say companies like Google, Amazon and some of the
> other big servers rely exclusively on LAMP for
> handling their huge loads. Why is this? Could it be
> them running on legacy systems? Or is LAMP truly the
> better fit for those scenarios?
I've said this before, and I'll say it again. Anyway who uses Google as an example of ANY technology scaling is using a strawman.
The Google architecture and requirements are so unlike mainstream enterprise architecture, it simply "doesn't count". Google could have been running DOS on C-64's, and it would "scale".
Amazon is a large, read-only site, with a small transactional component. It's architecture also "scales" regardless of technology.
With sites like Amazon and Google, it's easy to throw blades and bandwidth at their front end performance problems. In the end, I bet Amazon has a some very large, high end iron running their financials and master transaction stores.
Re: Is J2EE Obsolete?
And this is the key that folks don't seem to be grasping.It is NOT the language that makes a systems scalable, it's the architecture of the overall system.
Most any language can be used if a) your system is architected properly and b) that architecture suits your domain.
If you write your app in a way that doesn't take in to account the ramifications of horizontal scaling, then I don't care if you write your system in hand optimized assembly, you're not going to scale. Rather you will run out of room either in CPU performance, or in general OS overhead.
Folks seem to like to wear "I wrote it in LAMP" as some badge of honor, like see this great accomplishment I have achieved using stone knives and bear skins.
If you write in Java, you're a corporate drone, but if you write on top of LAMP, you're on the frontier, cutting edge of society.
We've had Java for 10 years, the Enterprise stack for 7 years. While there are the notable disaster stories in Java, there are a lot of unsung success stories running some enormous systems.
We're not going anywhere, and we're not slowing down.
Licensing of the M in Lamp
> And the 'M' in LAMP is no prize either.> As of 4.0.17 our tables still enjoy randomly
> corrupting themselves.
The GPL License used by MySql and others isn't really a prize either for commercial development... maybe BSD licensing is better i.e. Postgres (which has more features anyway)?
The commercial license for MySQL costs at least $595 per server per year
Postgres allows you to use the database for free in any situation commercial, open source, or whatever you desire.
--- Abbreviated PostgreSQL License ---
http://www.postgresql.org/about/licence
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
--- Abbreviated MySQL Commercial License Details ---
http://www.mysql.com/company/legal/licensing/commercial-license.html
The Commercial License is an agreement with MySQL AB for organizations that do not want to release their application source code. Commercially licensed customers get a commercially supported product with assurances from MySQL. Commercially licensed users are also free from the requirement of making their own application open source.
When your application is not licensed under either the GPL-compatible Free Software License as defined by the Free Software Foundation or approved by OSI, and you intend to or you may distribute MySQL software, you must first obtain a commercial license to the MySQL product.
Typical examples of MySQL distribution include:
Selling software that includes MySQL to customers who install the software on their own machines.
Selling software that requires customers to install MySQL themselves on their own machines.
Building a hardware system that includes MySQL and selling that hardware system to customers for installation at their own locations.
Specifically:
If you include the MySQL server with an application that is not licensed under the GPL or GPL-compatible license, you need a commercial license for the MySQL server.
If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries.
If you include one or more of the MySQL drivers in your non-GPL application (so that your application can run with MySQL), you need a commercial license for the driver(s) in question. The MySQL drivers currently include an ODBC driver, a JDBC driver and the C language library.
GPL users have no direct legal relationship with MySQL AB. The commercial license, on the other hand, is MySQL AB's private license, and provides a direct legal relationship with MySQL AB.
Re: Is J2EE Obsolete?
> The Google architecture and requirements ..Google uses lots of Java.
> Amazon is a large, read-only site, with a small transactional component.
Parts of amazon.com use Java too.
Peace.
Re: Licensing of the M in Lamp
> If you include one or more of the MySQL drivers in> your non-GPL application (so that your application
> can run with MySQL), you need a commercial license
> for the driver(s) in question. The MySQL drivers
> currently include an ODBC driver, a JDBC driver and
> the C language library.
Yea, that's the nut that most folks overlook. If you use their drivers, they want their nickel, unless your entire app is GPL. Now, I don't know what this means if your app is pure PHP.
Re: ActiveGrid's site can't handle the load generated by this thread
They should be running Tangosol CoherenceOk Cameron, I've given you a business ideea. If you'll be selling caching products for this LAMPS movement in the future it will be because I came up with the ideea :-D .
Re: Is J2EE Obsolete?
> I don't think anybody today starts with a blank page> and writes a PHP application. There is a wealth of
> frameworks that already exist to make the job of
> building a web site rather trivial.
Ok, so you are smart enough and have enough time to learn a framework and use PHP properly.
But you are not smart enough (it is too complex!) and it takes too long to learn a Java framework.
Its exactly the opposite for anyone who has had any experience with Java and no experience in PHP.
JSP-only was a simple minded example - there are plenty of frameworks around.
J2EE has somehow got a 'too complex' tag because of the over-designed Entity EJB spec. If you find JSP or other Java web frameworks too complicated that's sad.
Ebay uses J2ee for their whole site
Ebay is powered by IBM Websphere J2ee family of products. And it seems to be pretty damn fast.Ebay uses J2ee for their whole site
Ebay is powered by IBM Websphere J2ee family of products. And it seems to be pretty fast, reliable, and secure.(IBM logo is on top-right of every page at eBay... click on it.)
Re: Licensing of the M in Lamp
The PHP and Mysql people have an understanding about licensing. I don't know the full details but I think the mysql people specifically gave the php people permission to use their drivers.The rest is fairly standard GPL, "if you use my code you have to GPL yours" stuff.
Re: Is J2EE Obsolete?
"Ok, so you are smart enough and have enough time to learn a framework and use PHP properly.But you are not smart enough (it is too complex!) and it takes too long to learn a Java framework."
Right. Do you know why? Because even the most complex of php application frameworks is easier to understand and implement then J2EE. Somebody else on this topic said it. J2EE is hard to get right and easy to screw up.
"If you find JSP or other Java web frameworks too complicated that's sad."
JSP is a bad idea, it encourages mixing presentation logic with code.
Compare struts to smarty, that's a more apropos comparison.
Re: Where are the transactions?
> Why do you think transactions are only possible with> java?
I don't think that. I am sure if I dig deep enough I will find some way to handle transactions in other architectures, but as yet I haven't seen them. In J2EE they are in plain view.
Typical use case: commit an incoming message, two database transactions and an outgoing message at the same time.
Currently engaged in Weffo web architecture outline and the Flying Saucer xhtml and xml+css renderer