Wednesday, June 30, 2004

Creator BOFs

The Creator team has found a way to compete for the attention of developers here at JavaOne. It simple. Just roll a keg of Sierra Nevada around with your speakers. Actually, the sessions and the products are interesting. Out of everything I've seen at here at the conference I think Creator sticks out. People who know me will realize what that means but just know that I am a complete curmudgeon when it comes to development environments. (There is no IDE but Emacs, thou shalt not put false IDEs before it.) There may be a whole cottage industry around JSF components but maybe more largely general components, similar to (egads!) COM objects, that might be dropped into Creator and integrated by other developers who just need to get stuff done. There is a theme here. Remember my comments on Groovy? One simple fact I forgot to mention was that Groovy helps people get things done. Isn't that what Java is all about?

Konfabulator Flap

John Gruber over at Daring Fireball has posted the most honest piece about the big to-do over Apple's new Dashboard feature. Gruber makes some good points most centered around technology and how if you consider how these products are technically different you can see why Apple has create this new extension. I think there are lessons to be learned all around but one of them is not that Apple is hostile to developers. Of course I don't make a living writing code for the mac so take that for what it's worth.

They're dropping like flies...

It's 9:30 on Wednesday and the sessions here at JavaOne are thinning out. Most people, I think, are at the after hours "bash". "Train" is headlining that show, whoever they are. Maybe if they had a better band I'd attend. I predict tomorrow will be pretty empty around here. Hangovers and early flights will probably sweep the decks clean. I'm sticking it out till the end. See you on the other side.....

Live Blogging the AOP Panel at JavaOne

I'm in live mode so ignore typos and apparent lapses in consistency. The Participants:
  • James Gosling, Sun
  • Cedric Beust, BEA
  • Graham Hamilton, Sun
  • Gregor Kiczales, University of British Columbia
  • Simon Phipps, Sun, Moderator
SP - gives intros, claims ignorance and neutrality. GK - gives overview of AOP, pretty fitting since he invented it at Park Place. Suggests that our intuitive feel for programming constructs can change over time. In this context, applications that are written using OO have clumsy mechanisms. They have good design modularity but bad code modularity. e.g. Observer Pattern in drawing programs. Enter AOP in 1997. Solves the code modularity problem. Crosscutting concern code is concentrated in Aspects that can be maintained in one place. Some design patterns are best expressed as Aspects (I'm paraphrasing) There are good and bad uses. We don't know what works great as an aspect vs what makes a terrible aspect. Hype is a big problem. Bad pedagogy. Tools need to get better. Traning. And what is the business value? Java is the #1 platform for AOP. How do we keep it there? It may not belong in 1.6. But how do wi get in there eventually. GH - AOP is like jump/goto. Style of AOPs: when it is used to Passive monitoring is non-intrusive and a good use of AOP. AOP used by the container. The container using AOP concepts to do things like wrapping EJB calls and adding hooks. Scarier use of AOP is to use AOP to modify behavior as a maintenance method. Extreme AOP e.g. a = b * foo(); AOP would allow you to add an aspect to change the return type and behavior of foo(). Bad for understanding code. We ran to Java because we were running away from C++. C++ had lots of power, if used properly, but you have to live with what others, who may be less skilled, do. What are the right rules for safe AOP? CB- He claims to be a conflicted AOP advocate. Likes the example that GK brought up contrasting code and design modularity issues. If you get together with some programmers to develop something and you go down a path but realize that you need to add security so you add those functions and then several months down the road you realize you need to add security to more of the code and then you realize that something like AOP might be able to help here. He is conflicted because AOP is hard. Maybe because of the technology or tools. Probably because it is built on top of Java. It seems like assembler sometimes. If AOP is as good as we think why has it not gained wide acceptance. He's hoping to get more from the community. JG - Enthusiastic about AOP but like CB he's conflicted. Imagine a table with two axes along one nouns along the other verbs, the horizontal axis is like OO and the vertical is like procedural. Now slice it diagonally and you get new abstractions. Code complexity increases as systems evolve. AOP feels like it could solve this. Define the nouns (objects) define the verbs (procedures) and things will work out. (paraphrasing) People have given examples like security but when you peel those back and go down a level when security is added to all layers where code runs differently in different environments you have to respond to security violations in different ways. So you end up with specialized response patterns so you may get to where you don't know where the aspects come in and you won't know how to respond. Which brings complexity back into the code. He can't count the number of ways he implemented the observer pattern. You can do it globally like in AOP but sometimes you need to optimize in cases where you need selective redrawing or selective evaluation. AOP may not take the complexity away. It may be more a matter of organization. SP - how many people heard of AOP. Lots raise hands. How many are using? A lot fewer. Maybe nothing can succeed in IT until it has failed twice. JG - We haven't arrived at the AOP sweet spot yet. There are a few more PhD theses here. He wants it to work. GH - AOP is like a handgun and people can shoot themselves in the foot. JG - Jfluid profiler uses AOP type model. Lovely use of the methodology. GK - Transparency means you write something that will work everywhere. AOP is not around transparency. You can't write a single AOP persistence aspect. It has to be highly focused. JG - yeah but you end up with lots of points at which you need to do updates. and you need to know more about where each code point is modified GK - no, he claims you can show that in refactoring you can show how this works. If the centrally called mechanism is involved...(He's lost me.)..... many cases do not have the problem JG has brought up. JG - he'd love to see the code for that because he thinks the CB - You can't judge a tech by its age. Also important is the timing. AOP may be getting close to the sweet spot. we may be reaching it because a lot of people know about it and there are a lot of people experimenting. that makes AOP unique. Plethora of frameworks is a sign of immaturity. which could be confusion. misuse of vocabulary, etc. this may cause a decline in AOP. SP - AOP is all done in Java. How can Java remain this way? JG - (he has to run) This is parallel to templates and generics. A few months before java was release Bill Joy and he almost came to blows over the question of templates. Joy said if it didn't have templates and polymorphism then Java was useless. So JG said which framework for doing these things? Bills answer was whatever was done in Beta or don't ship anything. So they shipped anyway. And it caused an academic food fight but it converged on something beautiful. The food fight over AOP is still here. There is still food in the air. It hasn't gone splat. It needs more people using it. See how it feels and be vocal. The non-useful feedback will be "this is great". Useful feedback will be of the form "this sucks, because..." He feels that soon well think this was right. GH - do you think we are there with generics JG - we're as close as we have ever been. ( he had to run to another appointment) Cool session. I'm not blogging the Q&A....

Thank You Sun!

Many, many thanks to Sun Microsystems for providing a version of Sun Studio Creator for Mac OS X! There are so many people here with Macs. It's great to see someone at Sun has noticed! The release is a little rough but I've got it working. Thanks again!

MBeans (and jconsole) Rock

The new support in the Tiger release of J2SE includes a MBean Server and a nifty utility called jconsole. This allows you to fully instrument and monitor any code you run from in the JVM. App servers have had MBean servers in them for a while but now this is being made a standard feature of the JVM. This significantly improves the manageability of Java applications from the client to the server. Fantastic. Tiger will also include jconsole which is a visual Swing app that lets you connect to a local or remote MBean server in the JVM. It allows you to interact with the MBeans deployed in the JVM. You can get and set properties and monitor properties by creating graphs of the values over time. Really slick. This kind of stuff is long overdue. It's great to see Sun do this kind of work.

IDEs may not be that evil after all....

I've been struggling with a new concept, at least for me: using and IDE for development. I would claim, that emacs is an IDE, at least once JDE is loaded. However some of the features I've been seeing in Eclipse and NetBeans are pretty slick. The visual profiling soon to be available in NetBeans is really cool. Even things like Studio Creator have some appeal. Of course most IDEs don't do some things that I really like about using "stone-age" tools like emacs, Ant, Maven, and CVS. Primarily the use of these tools makes my project portable to other platforms. That is to say, I can develop anywhere. Also in the case of Maven, it handles all of my project jar and classpath dependencies for me. That is worth a lot to me when I have to manage 10-20 supporting jar and tld files. NetBeans does run on all the platforms I care about (Linux, Solaris, Windows and Mac OS X) so that's a plus. I asked the NetBeans programmers if they were interested in adding support for Maven and they said there was a project ongoing to at least make NetBeans' project framework compatible with Maven. I'll have to keep an eye on NetBeans.

Nokia Keynote

I made it to the Nokia Keynote a bit late but in the few minutes I've caught I'm impressed. JavaOne is about the Java ecology and economy. A very vibrant and vital part of that ecology is the mobile market. These guys are really innovating on the Java platform. They are creating great mobile applications and more importantly they are baking in manageability. They are doing this working with their competitors and developing standards to improve the customer experience and grow the overall market. Isn't this better than dividing the market by creating non-standard, proprietary solutions? Nokia is really bullish on web services as a way to enrich the mobile market by making development easier. Multiplayer gaming is also something Nokia wants to promote in their platform. They will be integrating their Snap mobile gaming framework in the Sun Wireless Toolkit in early 2005. Nokia wants to make mobile simpler for everyone: developers, operators and end-users.

Groovy is Groovy

I couldn't disagree more with this assessment on Groovy. I attended the same session here at JavaOne and I think this kind of effort is exactly what Java needs. Groovy is not just a scripting language but it is a scripting language that was designed to integrate into the Java platform so that there are synergies in both directions. So Java code can be called and used to extend Groovy and Groovy can be used to from and used to extend Java. It also does it in a manner that is really appealing to someone who just wants to bang out some quick code to test a hypothesis, examine a new language feature, or just scratch an itch without investing a lot of time. Also I think it's great that Groovy compiles into JVM bytecode. As the JVM becomes more sophisticated and hopefully more widespread that it support multiple languages. In fact it may be critical to the spread of Java technology that other languages can be used to program on the Java platform. Microsoft stole the idea of the CLR directly from the JVM but they are innovating and allowing multiple languages to target the CLR. I think the Java community should return the favor.

Tuesday, June 29, 2004

Live Blogging the JavaOne Expert Panel on Agile Java Development

Again I'm giving the real-time caveat. The Panel:
  • Dan Rawsthorn, Agile Coach
  • Scott Amber, Ronin International, uses Agile
  • Daniel Steinberg, Teaches Agile
  • Joshua Bloch, Java Platform Architect, uses Agile like methods
How do you formulate and document requirements? Dan Rawsthorn - priorities features and requirements by business value but adding WBS(?) Dan Steinberg - FIT and FITNESS(?) document requirements in a way that are executable. Scott Ambler - involve stake holders, involve stake holders. If you don't have that your toast. Joshua Bloch - use use cases! The write interfaces to the use cases before you write code. Do programmers need to do documentation? Dan Steinberg - documents that are pulled from code are great. Bad documentation is stuff like that which you have to write by hand. Joshua Bloch - you must write API documentation. This is critical. Once the API is documented you can even think of alternate implementations. Javadoc can be used to do this very effectivly and it helps keep API and docs in sync. Rawsthorn - it depends (laughs). Unit tests are the best documentation. Bloch - rebuts - unit tests are great but you need docs for APIs because they may not have implementations. Rawsthorn - no the API is the documentation. Bloch - so you don't care if J2SE APIs don't work the way we say? Rawsthorn - no, as long as they work. (Duh!) Ambler - there is agreement here, we just don't want to write documentation for the sake of documenting things by fiat. (I'm paraphrasing.) Bloch - API docs must be concise. How does architecture fit in with lightweight methodologies? Bloch - architecture if critical, you must think before your code, if you buy them a beer they'll admit this to you. (laughs) Ambler - emphasis on the light architecture. whiteboard diagrams, napkin diagrams, index cards, etc. Bloch - violent agreement, be light, but think hard about it and the issues. What about ilities (scalability, reliability etc.) ? Ambler - do it from day one. Rawsthorn - have to get at them very early. Abler - if you don't write code you in fantasy land. Bloch - use cases should document these ilities. Critical when designing protocols, file formats, etc. Do tools help you slim down a process? If so what tools? Ambler - white board and markers. Stop caring about fantasy tools and lets here about what we do in the real world to model. Let's talk reality. (heavy paraphrasing here) Agile is all about automation. Tools help automate. Rawsthorn - Yellow sticky (what is he crazy? Those things fall off whatever you stick them to after a while.) If you want to persist them persist them to a wiki Bloch - Those tools are so analog. Use modern tools like emacs and vi (laughs, but he's serious.) Steinberg - He likes IDEA Bloch - I'm not dissing IDEs just big ugly molding tools. Ambler/Rawsthorn - there are some good modeling tools ( you mean beyond white boards?) Is XP applicable to all projects? Amber - No. XP is good for some but not for others. Use the right process for the right job. It depends on the people. You have to have the right skills and mindset. But different people same project and XP could work. Steinberg - You can't use XP for all projects but you have to know what it is before you can dive in. However identify pieces that you can use today. i.e. Test driven development. XP might be the right way to teach programming but not for Bloch - test first is applicable to all projects. Rawsthorn - use cases support the team (lost some of his comments.) Ambler - you have to question the competence of people if you've never heard of XP. A lot of these techniques are in your future. Interesting comments from QA: Rawsthorn - Military saying "When your map and the terrain disagree, believe the terrain." Ambler - get a stakeholder or cancel the project. Ambler - it's going to take a generation to absorb and fully adopt Agility. It's similar to uptake of OO programming. Bloch - Its all about people. If you have good people they can overcome geography and time zones.

EJB 3.0 Technology Talk

By far the EJB 3.0 Technology talk is the most widely attended talk. A ton of people showed up. Primary focus of 3.0 is to simplify the technology to make it more accessible to a wider range of developers. (Hell, I've been developing for a while and it still get confused.) So this means, deployment descriptors are being removed from the developer's view, a simplified API. However there will always be backwards compatibility and there won't be a loss of functionality. To get things up and running quick you can avoid all the nasty details but if you need them you can get them back. Again this might be a bit rough because I'm blogging real-time. What makes some of the simplification possible are some of the enhancements in J2SE 1.5 such as annotations. So a developer marks up his/her Java code with annotations and the annotation processor creates the deployment descriptors at runtime. This mechanism allows the deployer to override the default configs so they can replace data sources, etc. This is "Configuration by Exception". Another enhancement here is that all the code and annotations are in one file. The developer now does not have to keep multiple files in sync. So for example, the following code is how you define a simple Stateless Session Bean:
    package test.ejb;

    @Stateless @Remote public class CalculatorBean implments Calculator {
          public int add( int a, int b) {
               return a+b;
         }
         public int sub( int a, int b) {
               return a-b;
         }

     }    
    
This will generate the interfaces descriptors etc. You don't even have to create the descriptor. Much simpler. Thank god. This example brought a lot of applause. Stateful Session Beans will get the benefits of this reduced syntax. Here however the remove method, which is key in this case, is tagged with meta-data.

@Statetful pulbic class MyShoppingCartBean {

    @Remove public void finishShopping() {
       ...
    }

}
Access to runtime context is also simplified. This means JNDI access will be simpler. I guess we won't have to write the same lookup code for interacting with the InitialContext and EJB Home interfaces. This means developers won't even see them. Again the solution is meta-data annotation but there were several different methods. This is instance injection.:
@Session public class MySessionBean {

@Resource (name="myDB")
public DataSource customerDB;

public void myMethod() {
    ...
    Connection conn = customerDB.getConnection();
    ...
}
Here is an example of setter injection:
@Session public class MySessionBean {
public DataSource customerDB;
@Resource (name="myDB")
public void setDataSource(DataSource myDB) {
  customerDB = myDB;
}


public void myMethod() {
Connection conn = customerDB.getConnection();
}
Here is an example of @Inject method:
@Session public class MySessionBean {
public DataSource customerDB;

@Inject
public void setDataSource(DataSource myDB) {
  customerDB = myDB;
}


public void myMethod() {
Connection conn = customerDB.getConnection();
}
All bean types will, from the developer's view, look like POJOs. No entity bean interfaces. No home interfaces. No callback interfaces for message beans. Entity beans will be POJOs. They will be testable outside the container. You will get better support for polymorphism and inheritance. Also there will be no need for Data Transfer Objects to overcome excessive RMI calls if you return entity beans to the client. Another focus was on mainstream O/R mapping. BMP will not be improved. BMP is a non-goal. The key is to improve simplicity and BMP is orthogonal to that goal. EJB QL will be more fully specified and more usable. The developer view is similar to other EJBs (no home, simple POJOs, no required interfaces or callbacks, etc) Collection interfaces will be used to define object relationships. They can be used both in or out of the container. Lifecycle is handled by an EntityManager which is analogous to Hibernates's Session. Lifecycle new(), store(), and remove(). Here is an example. The code is rough because the slide actually had bad code so I was merging real-time. Still you can see that things are getting simpler:
@Entity public class Customer {
    private Long id;
    private String name;
    private Set orders;

@PK(generated=auto) public Long getID()
}

private void setID () {
}

@Onetomany(ALL) public Set getOrders() {
   return orders;
}

A lot of this information was given on the first day keynote by the J2EE product manager. That's about it. I'm going to run to the Agile Java development session...I don't want to get shut out.

McNealy Keynote at JavaOne

I'm sitting in the first row all the way up front on stage right this time. I want to get a closer look at the t-shirt flinging devices that James Gosling will be demoing. Yesterday's entry was pretty potent. It was essentially a nitrogen powered air cannon. The dang thing was hurling t-shirts all the way from the front of the main auditorium to the back. The mentioned that they had to back off the pressure because they were putting dents in the back wall during rehearsal. The whole thing was controlled via a web page and java application rigged to a controller on the cannon. Nifty. Anyway now to the heart of the matter. McNealy shows up with news papers with great press on Sun and Java. He sees the press is turning around. The one paper that had a bad story he tossed on the floor. Classic McNealy. McNealy comments that even though things are turning around things are not great. He was not happy to be in a Playboy article where he was painted along with other corporate CEOs, some notorious, where the lead was "Where is the Outrage" on CEO pay. He's not happy about it because he says his paycheck is pretty thin these days. He joked that we all now have a reason to buy Playboy. He's echoing the themes: everything and everyone connected to the network, Java is everywhere. Mobile is really big. Ringtone downloads, SMS messages, are all up the roof. Home automation is an area he would like to see get more attention. But the scale of the mobile market is huge. McNealy thinks Sun has under-hyped Java. Past complaints from the industry were that Sun was over-hyping Java. He thinks they didn't realize how big Java was. Now the Open Source Java issue. Who should be in charge of Java? Can Sun be the steward of Java? Is Sun going to make it? What happens to Java if Sun bites the big one? Well he reinforces Sun's financial position is strong, their IP inventory is huge, and they still have a great brand. Sun is gaining market share, not counting this quarter, they have grown their server share by 22%. He's hinting to pay attention to this quarter, just in SPARC, these numbers don't include AMD and Intel. He's concluding by saying Sun's stewardship of Java will continue. Sun benefits from Java and won't reduce their spending on the platform. He speaks about the Fujitsu relationship as well and about new processors technologies (Chip Multi-threading). This is a great thing for Sun hardware and their platform in general. He just flashed a picture of him and Balmer smiling together. Sun and Microsoft now have a 10 year framework for collaboration. Java and .Net are the only platforms in town, they have the technologies and the developer base, so it makes sense for the two companies to cooperate. This summer there will be .Net and Java He mentioned that Bill Gates remarked that the Sun JVM and the MS CLR are not that different, yeah right, was that a Joke Bill? He's rolling an hilarious animation about about the cooperation and what Sun should do with the 2 Billion from Microsoft. Really funny I wonder if it will be available on line. Now he turns to the community theme. Sun is the first company to base its OS on open source. Remember the old SunOS days? That was BSD. NFS is a classic Sun OSS win. He supports open source and thinks the JCP is a great organization to do this kind of stuff. Sun is the biggest company that contributes to open source. He thinks java.net is important. Open/Star office is an important community. There is a lot of activity around communities at Sun. 550 Java user groups world wide. 4+ Million developers. His report card: 55 different organizations, ie not sun lead JSRs. Score A. Average of 40 new JSRs each year. Grade: A. 1/3 of all JSRs that have been submitted have been completed. Grade: C+. They need to get them done faster. JSR completion time. Grade: B. Microsoft and RedHat are absent from class. i.e. not in the JCP. he thinks Microsoft has a lot to contribute and that RedHat should just show up. Still more on this 3 year developer support with hardware. He's showing the new Opteron. They are going to sell 12 of these on eBay with a starting bid at $.01 with bid increments of $.01. Pretty cool. I've tried to get to ebay on the key note but again the wireless net in here is swamped. 600 Million Java Cards in the market today. Krishna Srinivasan of Frost and Sullivan is up on stage patting Sun on the back for JavaCard. He's presenting Sun with a Market Leadership reward for their excellence in advancing JavaCard. More now about Java market share. 650 Million desktops running Java. Allied Bank of Ireland is rolling out the largest financial customer moving to Java Desktop. Java Desktop has 21 OEMs, 1500 ISVs, with 1000s of desktops deployed. JDS systems are being sold at WallMart. StarOffice numbers are up as well. Hideya Kawahara(sp) again up on stage talking about Looking Glass. McNealy is giving the budget to open source it, and Hideya just annouce it's ready! A bit of theater but now Java 3D and Looking Glass are open source. Let's see what happens. Gaming is another important market. Mobile gaming is big. Chirs Melissinos is Sun's Chief Gaming Officer is up on stage and saying that Java can do games. Java can perform just as good as C or C++. Including 3D games. Java is being used in combination with C and C++ rendering to script the non-rendering aspects of the game. There is also an example of a 100% Java game engine that was really fast. Pretty impressive. The motion was really smooth and it was running on a very modest PC. It was running at about 300-400 rendered frames per second. Really impressive. Will Java make it into the console space? They just brought up Kevin Bachus from Infinium Labs, he was an original XBox project leaders. He's now releasing the Phantom gaming system. It will be the first gaming platform that will ship with the J2SE. It is a gaming receiver, which means games will be sold online and downloaded to the console over broadband. So Java games will have another outlet in November when the Phantom console is released. They are giving away the hardware for the Phantom to anyone that signs up for a subscription to the service. There will be another gaming announcement between Sun and Nokia on Wednesday. Three comments on "Where is the Outrage": Where is the outrage on stock options? He doesn't want congress to eliminate options as a compensation for employees. Where is the outrage on computer viruses? Java solves this problem. No one can name a Java virus. It should be a court-marshelable offense to write homeland security apps in win32. Where is the outrage on IBM? Why are they not contributing their IP back to the Java community? Why tell Sun to open source Java when you don't donate your IP back to the community. I must say I agree with all of these.

Two Tigers in Town

Even though I'm having a blast a JavaOne, I can't help but be amazed that Apple has their World Wide Developer Conference going on at the same time. The other Tiger in town, Mac OS X 1.4, looks fantastic. Apple is not standing still. They have delivered some really cool features (64-bit support, Spotlight, enhanced iChatAV, SafariRSS!, Automator) and I can't wait to get my copy.

Monday, June 28, 2004

Scotty, We need more Power!

To whom it may concern at the JavaOne conference organizing committee, We need power outlets in the conference rooms! It's great that you've provided power out in the lobbies and in all those neat little conference "chill out" rooms but many of us in the actual sessions are starving for electrons. Help! Nuff said.

JSF and Struts Interoperability

So far the discussion on Struts/JSF compatibility is pretty weak. Short on implementation although you can imaging that you'd have to adapt the Struts Action class implementations to the plain JSF command inputs. Of course it's being suggested that you use the JSF controller in front of the Struts controller. I think the discussion can be summed up as if you're doing new development then maybe you want to stick to one framework. If you've got a bunch of Struts code in house, a combined strategy may be a good approach since you can leverage the better visual component model of JSF with some of the stronger features of Struts (i.e. Client-side validation, Tiles, etc.) Some other tidbits:
  • The JSF team used HtmlUnit to verify rendering code.
  • Struts-faces.jar is still not ready for prime time. It has only been tested with the most simple examples.
  • A new JSR will probably be created to handle the Tiles-like functionality. It probably will be handled by another standard that would be cross compatible with all frameworks.
  • SiteMesh is another Tiles like framework.

First X-man born in Germany

OK, I may be crazy but I think the first real X-man has been born in Germany. Thanks, to my sister Tania for this one!

Technical Session Wrap Up for Monday at JavaOne

It was a very frenetic day at JavaOne. I'm still trying to digest it all. After the keynote I headed over to the pavilion where various Java related vendors were hawking their warez. I didn't spy anything that interesting except for a new low memory requirement app server from a company called Trifork 4 that is a 100% pure J2EE 1.4 compliant app server. As far as sessions go I attended a bunch today everything from low level memory debugging in the JVM to WSRP/JSR168 integration. It's around 10pm PST and I'm still going. I'm going to take in one more session before I collapse for the night. That one is going to address Java Server Faces and Struts integration which should be interesting in light of the information I heard on Sunday. The best talk of the day was on real world SOA from a team at Sun. They've done some good work on SOA and what it means to the architect. They've also address some of the practical aspects like how are all these disparate specs and technologies going to be integrated into a single coherent approach. It seems like Sun is doing their homework here and project KittyHawk is already bearing some fruit. The demo-ed a tool built into Sun Studio 7 that visually created a web service, hooked it into an EJB. Very nice to see this kind of stuff coming from Sun. The more I look at these things the more I'm coming to the realization that visual IDE's may be the only way any of this stuff is going to work. I've written WSDL by hand for simple services and it's not pretty and that's just the service description. Generating code from WSDL is by no means standardized. Someone has to engineer out the complexity. Sun may be stepping up to the plate.

Blogging the JavaOne Keynote

The place is packed this morning and people keep coming. Most of the front part of the room is reserved for the press and Sun VIPs. Bummer. I've scoped out a nice spot on stage right. There are screens everywhere so it shouldn't be a big deal. "Java technology is every where." seems to be the theme here. My guess is that they are going to play up how Java has bled into everything from mainframes to desktops to cell phones to smart cards. I'm sure open sourcing is going to be discussed. Let's see. Hmmm. Looks like the wireless network in here is taking a beating! I see lots of laptops open.

JavaOne Keynote

This is going to be rough but I'll give it to you raw...I may re-edit later. Intro video, everywhere you look it is there. touting different projects nasa projects, looking glass, guys turning on blenders from their laptops using java. John K. gives general mc speech. Thriving with java. Jon Schwartz. Java economy is thriving, Sun's vision "everything and everyone connected to the network" Pretty interesting slide on how the connected or network market is huge. Computers represent about 1080M nodes but autos are 400M, handhelds 2600M, appliances and toys are 11000M. Java is all around us, rambling account of how java touches you every day, how your doctor may use RFID to track the right meds, how your car is connected to the network, how your cellphone and watch are connected to the net. etc. 3.5 Billion Ringtone market. 10% of all digital music is in ringtones. 3 Billion dollar java mobile game market. ROI on a $250,000 dollar game is recouped in days. 350 Million Java handsets. 600 Million Java Cards. 650 Million PCs with Java shipped to date. Market health. Is java slowing down? 100M JK Downloads since the beginning. 1.5M downloads of J2EE 1.4. 2.2 B in Java App servers, 110B in related IT Spending. All starting from zero just a few years ago. Sun estimates there are 4 Million Java developers. The Java Economy starts with ubiquity and that is driven by cross platform compatibility. This is different than popularity. Developers are what injects the creativity into the economy which drives the interest of industry and people with money to pump money in to reach end-users and customers and of course the cycle repeats. Cell phone handsets are a perfect example. Java is being used to create new content to be delivered over handsets to drive more money through cell phone companies. However the real question is not how the market makes money from java isn't the question how is Sun making money from Java? By Sun's estimate the Java economy is 100 Billion. Sun wants to grow the market by Cool demo of a MediTouch device powered by java on a cell phone app reading telemetry from a device JS is wearing that is reading his pulse and blood pressure via bluetooth. Qnext demo is an IM client similar to iChat, totally peer-to-peer. with video. Kinda cool. JS prediction: wall street didn't see the handset market coming, JS thinks automobiles are next. New nav systems are in every car and Java will be there. Dr. Roland Busch CEO of Siemens VDO division is speaking about how they are integrating Java into all of their nav systems. I hear a motor rev'ing in the background so out pops a convertible 3 series BMW. The thing has a Siemens java entertainment system built in. The guy demoing the system sounds like Arnold Schwartzenegger. The crowed thinks its funny. Performance considerations are key and Siemens have won performance awards using Java. Siemens has a development kit to build apps for this market. Pretty cool. BMW is first to get this but the next generation of this technology will be in another manufactures car very soon. Brining more developers to Java will need to be done by making Java faster, easier to use and more accessible. Ease of development is really where this is going. John Loiacono is now covering how Java is back on the client and how to broaden the appeal to developers by making Java easier. They want to make Studio Creator as simple as VB which means making developing Java simple, faster, visual and familiar. Demo of Creator. Not that exciting. The generated page looked pretty ugly and I would need to see more details on their "Drag and Drop" data binding before I would use it in production. It's interesting that Creator will be free. Sun Developer Network, SDN, is a yearly subscription for 99 dollars, bucks for conference attendees. Project Kitty Hawk is next which is Sun's SOA play. Sun may do some kind of promo on eBay where people bid on hardware/software bundles. Stay tuned. Hidea (sp?) Java 3D will be open source as well as Looking Glass. Final demo is a ringtone remixer. Take a ringtone, remix it and send it to a cell phone. Kinda spiffy. But again how does Sun make money from this? Interesting anecdote about a question JS asked a group of auto execs how many dollars in monthly services would they have to sell to an auto owner for the car to be free. Apparently with out batting an eye the execs said about $200/month. Cool eh?

Blogging the JavaOne Keynote

The place is packed this morning and people keep coming. Most of the front part of the room is reserved for the press and Sun VIPs. Bummer. I've scoped out a nice spot on stage right. There are screens everywhere so it shouldn't be a big deal. "Java technology is every where." seems to be the theme here. My guess is that they are going to play up how Java has bled into everything from mainframes to desktops to cell phones to smart cards. I'm sure open sourcing is going to be discussed. Let's see. Hmmm. Looks like the wireless network in here is taking a beating! I see lots of laptops open.

Through the Looking Glass

I'm not that interested in Looking Glass, but it seems that Sun is going to open source this technology. It's not that exciting to me because I don't think it really comes close to the kind of functionality available in Mac OS X especially nifty things like Expose. Looking Glass is still pretty rough and while the desktop features look cool I'm not sure they would make anyone more productive. On a side note Jonathan Schwartz will begin his own journey through the looking glass and will start blogging soon. Things are getting down-right weird at Sun.

Macs at JavaOne

Macs are everywhere at JavaOne. I'm seeing a disproportionate number of Macs to PCs. I guess Java guys gravitate towards Mac OS X.

Sunday, June 27, 2004

JSF Technology Class at JavaOne

Marty Hall's class is, so far, a great deep dive on JSF What's interesting is that in his opinion JSF competes directly with Struts. This is a shift of what I've heard early on from people like Craig McClanahan say when JSF was first released as a published spec from the JCP working group. (The new spec is in the works.) Hall's take is that compatibility with struts is kind of stretching it these are fundamentally two technologies that do the same thing and that integrating them is probably not worth the effort. Also, Hall's take is that the whole "JSF is really meant to be used by tool vendor's not coded by hand" approach is a "cop out". He went on to say, and I agree, that if a tool isn't usable by hand what much good is it integrated into an IDE. Tool vendors may likely support JSF but to say that this is the main way JSF will be utilized is disingenuous. Interestingly enough, the notion of integrating Tiles and JSF is, according to Hall, really useful notion. Overall I think JSF is a good thing. Here's why:
  • JSF configuration is simpler. It doesn't have the extra levels of indirection that are supported in Struts. This may seems like a hinderance but when your trying to debug your application and you've got to track down what is going wrong, having a simpler config helps.
  • JSF is less dependance on HTTP. It is possible to use JSF for other application paradigms such as Swing for instance. You can't abstract them away in Struts because they are baked into the primary interfaces. e.g. The execute() method in Action takes the HttpServletRequest and HttpServletResponse objects as argumenst.
  • Validation is much simpler. There are not as many predefined validators but there are enough to get started and you can always write your own.
No technology is without it's down side and I'm not sure if I'm going to convert completely to JSF but I am going to dabble and try out a small test project. My guess is that developers who've never seen Struts or JSF before will come up to speed quicker on JSF than Struts. The real issue for me is will JSF win wide adoption?

Wireless at JavaOne

There seems to be a wireless network set up at the conference, Yay! This may allow me to blog in real time. The only downside is that there are no outlets anywhere to plugin and get power. Bummer. I may have to stop at the Apple store and pickup a spare battery.

Two Observations on San Francisco

I have two observations on San Francisco. One banal the other serious. No one seems to jay-walk in this town. I'm trying to figure out if this is due to the orderliness of the pedestrians or if it's a comment on the aggressiveness, or cluelessness, motorists. When I cut across a street in the middle of the block, or I cross at the intersection when the cross walk signal is red, yet there is no vehicular traffic, I get the oddest stares. I guess I'm not on the east coast anymore Toto. San Francisco has a serious homelessness problem. Panhandlers are everywhere downtown. I'm not used to this anymore. New York for better or for worse doesn't appear to have this many folks out on the streets. That might be a perception thing. I'm not up on statistics on the homeless. It's sad for such a progressive city to have this kind of problem.

Saturday, June 26, 2004

Badges! Wee don need no stinkin Badges!

I've picked up my badge and complimentary JavaOne saddlebag thingy from the Moscone center this afternoon. I'm going to be in a training class tomorrow on JSF. Yes, I know I should probably just pick up a book but since I'm out here anyway I figured I'd get the immersion training. And another thing my hotel has no internet access. I would have thought this possible in some parts of the world but here in the heart of the high-tech world? Unbelievable. Thank god for Starbuck's and this free Wayport access node a block from the lobby.

Cartoon Museum

After getting settled into my hotel here in lovely San Francisco, I decided to take in a bit of culture. So, I stopped by the Cartoon Museum. On display was a fascinating collection of political cartoons from a local San Francisco political cartoon weekly called "The Wasp" which was published from 1876 to 1897. A number of these drawings where overtly racist. There were a number of them that portrayed chinese immigrants as filthy, opium smoking, opportunists. Of course this publication seemed to have equal distaste for european immigrants as well. It's amazing what passed as mainstream media back then. The rest of the collection was pretty balanced between underground comics, animation cells from feature films and television, magazine and newspaper cartoons. I highly recommend a visit.

Good Trip Kharma

Just as I was lamenting the fact that I had no book to read during the flight, what should appear on my doorstep but a small brown package from Amazon containing: I guess this is good trip Kharma.

More Geek Humor

There are 10 kinds of people in the world. Those who can read binary and those that cannot. via IBlogThereforeIam

Off to JavaOne

My bags are packed and I'm headed for JavaOne. Leaving this early is normally not something I would do but hey... I got some cheap flights.

Thursday, June 24, 2004

Java Joke

I guess this one will be making the rounds at JavaOne.

Sunday, June 13, 2004

Flickr-fied

I'm having a bunch of fun with Flickr. I've invited friends and family to join and share their pictures and I've replaced my buzznet picture log on my blog with the one built into Flickr. It seems to work better than buzznet's. Posting via the phone also circumvents the 10 Mb file upload limit. I guess this is a bug? I've also subscribed to the feed over at Tim Bray's blog for quite some time. partner , I'm interested in monitoring the zeitgeist of this organization as it goes through yet another transformation. I'm hoping they are going to be successful but there is a nagging doubt in the back of my mind that just won't go away.

Wednesday, June 09, 2004

Identity Management

I'm speaking at an Identity Management Seminar tomorrow. This topic has lot's of traction in the marketplace now given all the hub-bub around Sarbanes-Oxley and the like. It seems like common sense to me and I've been using consolidated ID infrastructures since I stopped managing my Sun machines by editing /etc/passwd and installed yp (a.k.a NIS). I'm continually stunned by the horrid state some companies are in with respect to their own user accounts and how they are managed. I've only seen a few shops actually get it right and most companies can cut through the politics to actually come up with a good centralized way to manage accounts. Hell, I've seen financial trading environments where the head trader, someone in charge of millions of dollars worth of other people's money, wrote his password on his monitor in plain sight. I guess when some CFO and CTO end up doing the "perp walk" because their company lost millions to an internal hack companies will finally get the picture.