CARVIEW |
planets.sun.com <beta> |
![]() |
JavaOne 2008, Day Four: Wrap Up and Awards
Posted at 2008-05-10 04:27:14.0 from Artima Weblogs
Take 13 - Pictures from JavaOne 2008
Music before Day 4 opening ...
All JavaOne 2008 pictures are available here.
Technorati: conf javaone javaone2008 photography
Posted at 2008-05-10 00:30:00.0 from Miles to go ...
Designing Massively Multiplayer Online Roleplay Games with Project Darkstar
Sun’s interest is as follows: Computer games rank second only to movies as a source of entertainment in the industrialized world, so the market is vast and growing. Big online games serve millions of subscribers and run on thousands of servers. It costs somewhere from $20-$30 million to create the basics for an MMORPG. By substantially reducing development costs through Project Darkstar, more games will be created – and more of Sun’s servers and services will be needed.
“Sun,” explained Kesselman, “is looking for the places where the need for computers is growing faster than Moore’s law. If it’s growing slower, those spaces will need fewer computers than are needed today because computers are growing more powerful. If a space is growing faster than Moore’s law, they will need more computers, and Sun will benefit as a computer company.”
The ultimate challenge of MMORPGs is to engage players from a variety of locations on mobile, set-tops, and PCs, reduce investment costs so that all developers can participate in game creation, and create an explosion of niche content through Project Darkstar. Java technology’s interoperability thus serves games well. Through Darkstar, the technical challenges of scaling, load balancing, data consistency, and failure recovery currently in play in creating MMORPGs will be radically reduced or even eliminated. Jeff is currently writing a book, “Writing Massively Multiplayer Online Games with Project Darkstar” (with Dan Templeton, Strategic Liaison Manager, Sun Grid Engine, at Sun) to help game developers improve their lot.
For those who, like me, find it challenging to keep the technical terms of MMORPG creation straight, here’s a basic vocabulary, along with their relevance to Project Darkstar:
Dupe (duplication) bug: When an object in a game is in two places at once, in effect duplicating itself. A ball may simultaneously be on the floor and on the table. Dupe bugs reflect breakdowns in referential integrity and occur when back-end systems are not transactional. Project Darkstar is built on a transactional event-processing system that helps prevent dupe bugs.
Rollback: Current multiplayer online games hold the state of the game in active memory. A rollback is what happens when a game application fails during a game, losing that state and causing players to lose some of their past play, so they are rolled back to an earlier stage of a game or to the very beginning. With Project Darkstar, the entire virtual world persists to permanent storage in a server-side data store, so that your game state isn't lost when a server fails.
Disaster: Worse than a mere failure that causes a rollback, a disaster occurs when the entire machine room goes down. Darkstar's database back end saves a historically accurate record of the game so that at most one or two seconds may be lost. Note: Disaster is a term with general application in computer science.
Lag, laggy: Any delay after the user takes an action with an input device, such as a mouse or keyboard, before the effect is observed on the screen and/or through in-game sound effects.
Zone: A given area of a virtual world, such as the town of Bar or the forest of Foo. A zone is a play space. All players in a zone can potentially interact with everyone in that zone. Those outside of the zone cannot. Often, different zones are placed on different physical computers in the machine room, called zone servers.
Shard: One cluster of zone servers that together describe a complete game world. In order to support large numbers of users, game developers today will replicate the entire world in many different shards. When a player starts a new character, they need to select what is called a server, which is really a cluster of servers, on which they will play with that character. Each of these so-called servers is really a shard, and characters on different shards can't play together. Project Darkstar makes possible shardless worlds, in which all players can interact with each other.
Project Darkstar aims to eliminate the bad stuff, so no more dupe bugs, rollbacks, disasters or lags – all of which have been known to seriously damage otherwise promising games. At the heart of the Darkstar solution is the SGS (Sun Game Server) coding model which presents a simple single-threaded event-driven programming model to the developer so that their code will never fail due to interactions between code handling different events. The idea is to make server-side game code reliable, scalable, persistent, and fault-tolerant in a transparent manner.
The specific architecture of the SGS, in terms of design, is much like a 3-tier enterprise system:
Tier 1: Communications Layer
Publish/subscribe channels and direct client/server packets
Analogous to the “edge tier”
Tier 2: Execution Kernel
Executes “tasks” in response to “events”
Analogous to a Java 2 Platform, Enterprise Edition (J2EE platform app server
Tier 3: Object Store
Lightening fast, highly scalable access to persistent objects
Analogous to the DB tier
However, in execution it’s very different:
Tier 1: Communication
Reliable/unreliable ordered/unordered byte packet transport
Pluggable transports
Optimized for lowest worst case latency
Tier 2: Execution
Persistence of objects is ubiquitous and transparent (mostly)
Tasks are apparently mono-threaded
Objects are very simple, mostly normal Java 2 Platform, Standard Edition (J2SE™ platform)
Stateless
Optimized for lowest worst case latency
Tier 3: Object Store
All application state lives here
Custom in-memory data-store with secondary storage backup
Transactional and fault-tolerant but not relational
Deadlock detection for tier 2
Built to scale massively
Optimized for lowest worst case latencies
Kesselman did a deep dive into the coding model, applying it to real game implementation in DarkMMO, an open source Project Darkstar-based Massive Multiplayer Online engine that he plans to release to the open source community roughly six to eight weeks after JavaOne. He invited developers to take a peek at the code.
He closed with a cool DarkMUD demo that was fun to watch that drew on artwork from the commercial game Neverwinter Nights.
It was great to see Jeff Kesselman again. Anyone interested in developing online games should watch the session online and pick up the nuanced and refined development path involved in Project Darkstar.
See Also:
Project Darkstar
Project Darkstar Downloads
Jeff Kesselman’s Blog
Java Game Developer Community
2008 JavaOne
Janice J. Heiss
Posted at 2008-05-09 20:37:27.0 from 2008 JavaOne Conference
Flooring the Accelerator on Wireless and Open Source
Terrence Barr’s thoughtful session, “Flooring the Accelerator - How Open Source is Reshaping an Industry,” explored how the wireless industry is being reshaped by open source, which an IDC Group Report claimed in August 2006 is “the most significant all-encompassing and long-term trend that the software industry has seen since the early 1980s.” Barr is Senior Technologist at Sun Microsystems and Ambassador of the Java Mobile & Embedded Community.
It’s nearly impossible to diagnose what’s going on in an industry at the same time it’s happening; it’s hard enough for historians to do it years later – but Barr gives it a serious try. So his session was as he admitted, of necessity, somewhat speculative and tentative.
While I cannot begin to do justice to his many nuances, here’s the take-home message: Open source and open standards are here to stay – customers won't accept anything less. The wireless industry is being hit by a perfect storm of rapidly commoditizing services, massive infrastructure investments, and rapidly shifting expectations driven by open source and open standards – but the open source model does not apply as well as it applies to the desktop so it will take time to figure out how to make it work.
Currently the wireless industry is mostly closed and proprietary with:
--Islands of similar but incompatible technologies.
--Voice aside, interoperability is a pipe dream. Voice service is a race to the bottom.
--There’s massive friction in the ecosystem.
--It’s a totally fragmented technology space, even within a single operator or manufacturer.
--Content creators must deal with each island separately, making service creation and deployment very inefficient.
--Limits opportunities for everyone involved.
Existing revenue models are not suited for new services:
--Monthly subscription fee is not granular enough
--Customers are wary of random ads but also of data mining
Bottom line: The industry desperately needs new services and new revenue models because the industry is depriving itself of innovation.
It was not clear to me from Barr’s comments to what degree the industry agrees with his diagnosis and is ready to shift gears.
Barr closed with this comment:
“I’m really excited that we’re witnessing the rebirth of an industry. I’m not sure how mobile is going to play out and how it’s going to integrate with the rest of the IT spectrum, but it’s clear that the model of previous years is falling apart and that everybody’s scrambling and trying to figure out where the next place is that they want to be involved in this industry.”
I hope he gives a session five years from now on the same topic and we can see then how it all unfolded. As they say in the trade: stay tuned.
See Also
Terrence Barr’s Blog
2008 JavaOne
TS-5606
Session Title: Flooring the Accelerator: How Open Source Is Reshaping an Industry
Janice J. Heiss
Posted at 2008-05-09 19:48:24.0 from 2008 JavaOne Conference
What Color is Your Aura?
Sun Labs staff engineers Stephen Green and Paul Lamere presented a fun and intriguing session, injected from time to time with humor, titled “Project Aura: Recommendation for the Rest of Us,” about recommendation engines or recommenders. Project Aura strikes me as very important in that there is so much amazing stuff on the web and so much junk and so little time to sort through it. It is not grandiose to say that we are in a shift in human consciousness that historians and sociologists will spend a long time trying to comprehend. Already psychologists are wondering if the shift from a literate to a web culture where you can google and instantly gain masses of information is altering our minds in a way similar to what happened when massive literacy occurred in the 19th century. We now have huge virtual libraries available to us in our homes.
So we really need recommenders.
Here’s the basics:
Project Aura is an open-source recommendation engine, written in the Java language, being developed at Sun Labs. Recommendation technology is a key enabler for the next-generation web. Recommenders will be essential to helping us wade through the huge volume of content found in news, music, video, blogs, and podcasts. However, most recommenders work through collaborative filters – the wisdom of crowds -- which basically correlate groups of people who bought similar things. So if people who bought X are also people who bought Y and you just bought X, they recommend Y. Sometimes even people who went to one product site who also went to another are correlated. Project Aura takes a novel approach to recommendation, avoiding many of the problems inherent in traditional recommender systems.
It’s obvious that there is a huge amount on the web – anyone who’s gotten even a little bit addicted to YouTube knows that, with the proliferation of user-generated content – the sky’s the limit. Here’s my eccentric example. I have a darling Maine Coon kitty who is astonishingly obsessed with Q-tips and loves to curl up in the kitchen sink. There’s no one else like him – or so I thought until my boyfriend told me there are 18 YouTube videos of Maine Coons in kitchen sinks and a large number showing cats who are obsessed with Q-tips. Everyone wants their kitty to be a star. So I’m one of those strange people who is fascinated with cats who love Q-tips and sinks. How should software classify me so that I might find other things of interest? How should recommendation engines be organized to suggest other videos for someone who is fascinated by cats who love Q-tips and sinks?
Recommendation engines are a huge business. 2/3 of movies rented through Netflix were recommended; they are offering $1 million prize for the first group to improve their recommendations by 10%. At Amazon, 35% of product sales result from recommendations.
The Long Tail
Stephen Green pointed out that in pop culture a few things tend to be hugely popular like best-selling books, prime time sit coms, and top 40 songs – these show up on a graph as the short head at one end of the tail. But under the long tailing curve, there is actually more material than in the short head, representing the diversity that the Web does a decent job of offering. Amazon provides access to a huge number of books; iTunes offers access to three million songs. And traditional search technologies are pretty good at helping you find things on the web, especially if you know their name.
But: what about recommendation engines? There are some problems. First, they come up with some crazy recommendations. Paul Lamere presented a recommendation from iTunes, the world’s largest music store. If you liked Brittany Spears, you’ll also like a report on pre-war intelligence. “I can’t imagine any context in the world that would make this be a good recommendation,” said Lamere.
A second recommendation from iTunes: after putting a CD of Gregorian chants on a cart, iTunes recommended Amy Winehouse and some other popular music, which had absolutely nothing to do with Gregorian chants. Why? Probably because so few people buy Gregorian chants at iTunes that there was nothing to correlate it with, so by default, they recommended what’s popular. The wisdom of crowds as a last resort.
A third, hilarious recommendation from Amazon: after ordering a box set of C. S. Lewis’s “Chronicles of Narnia,” Amazon recommended a nose, ear, and hair groomer. Go figure. It’s an example of Amazon’s cross-domain recommendation that somehow turned up a correlation between the two.
To a collaborative filter, the world consists of consumers who get clustered together based upon their consumption. Such filters work when a site has popular content and numerous users defining the items. They’re easy to implement with relatively simple math, but they fall apart if you want them to recommend something deep in the long tail where there are items with few users. And what if a new band has a new track with no users yet, how can a collaborative filter recommend it? It’s a self-reinforcing system in which the same old bands stay at the top and the unknown find it hard to get recommended. Lamere compared it to a chameleon sitting on a mirror.
Scaling can also be a problem – in both large and small sites. Sites with small content lack enough data points for collaborative filtering to work well. At the other end, companies like Google, Amazon and Netflix have millions of users, billions of case data points and you can do a lot of recommending, but with such large data sets, such systems are hard to create.
Project Aura: Recommendations for the Rest of Us
The goal of Project Aura is to give everyone a chance to do good recommending, regardless of size. Instead of focusing on the correlation between users of a product, they focus on the similarity between two items based upon the “aura” surrounding the product, which is not as amorphous as it first sounds. This is very different from a collaborative filter that focuses on the users who consume same or similar content. So the key is to create a set of words that describe the content itself and base recommendations of other items on similarity of the word auras that surround them. Since the words can be derived from content, they can be immune to many of the issues of collaborative filter systems. If we can derive the words in the aura from the items themselves, a new item can come into the system and be recommended from day one. It won’t have to wait for thousands of users to be recommended.
Where do they get the words? Take the music space – in popular or medium level content, there are many sites that offer a repository of descriptions of music. Data can be garnered from many sites from Wikipedia to MusicBrainz, a community music meta-database that attempts to create a comprehensive music information site. And lyric sites provide lyrics to album tracks.
But what about new music that has no listeners yet? A sister project to Project Aura involves searching inside music and doing content analysis directly on audio to extract features to tag on the audio. The program will take a brand new song, do analysis of it and apply the tag that would be applied by people. The program extracts features from the audio that corresponds to the timbre, harmonic content, and rhythm. It learns from already well-labeled music to apply models of appropriate tags. Very cool.
After exploring some of the issues and complexities of tagging, the presenters shared some Project Aura Java API code, and closed with a quick demo of a research prototype for Project Aura that generated music recommendations based upon text auras.
See Also
Paul Lamere's blog
Janice J. Heiss
Posted at 2008-05-09 19:22:02.0 from 2008 JavaOne Conference
Ten Ways to Destroy Your Community
“In this session, open-source-community expert Josh Berkus shares his 10-step method guaranteed to wipe out your community and bring your project back under control. Spread a little weed killer before that community growth gets too fast. Learn important tips and tricks from someone who has participated in some of the most unsuccessful open-source communities both inside and outside Sun.”
Josh spoke as someone who has been there and knows, who’s grown wiser – but alas, the thing to do with dysfunction and misery is convert it to knowledge to be passed on to others to make their lives easier. All suffering can be redeemed. And a little wry wit and irony helps get you through. I found it easy to see how human emotion could get the better of communities and lead them to get stuck in the madness he described.
Berkus consults with companies who are attempting to open source software and has a lot of insight. The fact that it’s the kind of insight that seems obvious after it’s articulated makes it no less useful. The fact that he presents his session as a way to do what we don’t want to do makes it fun, and perhaps, easier to own our more destructive tendencies.
Anyway, here are The Ten Ways to destroy an open source community:
1. Use difficult tools
2. Encourage poisonous people
3. Don't document anything
4. Conduct closed-door meetings
5. Use lots of legalese to confuse, alienate and intimidate people.
6. Have unresponsive liaisons who lack authority and competence.
7. Engage in governance obfuscation
8. Screw around with licenses
9. Stop outside committers
10. Be silent
Defining the Problem: Community
He began by pointing out the problem – community. “When you open source your software, you will contract a horrible disease that you will never get rid of, which is called ‘community,’” said Berkus. “You may attract and be unable to get rid of a community that will do horrible things to your ability to get things done. Communities do things without telling marketing and distribute information in places you cannot anticipate. Members of the community engage in public speaking you never authorized, and people randomly want to contribute code to your product related to things you never anticipated. Suddenly you have to work into your software things you never wanted. Communities want software to get better all the time; if you can’t do it, they will make it better on their own. Once you have an OS community, you cannot define the difference between a customer and a partner. People who were customers contribute to your software, making them a partner; and people who were partners start buying stuff from you that they don’t want to work on which makes them a customer.”
He shared his “patent-pending Ten Step Method guaranteed to destroy your open source community.” He promised that the method is so powerful that implementing even three of the methods will “keep you in development and marketing isolation for a long time to come”.
Herewith are comments on a few steps that especially got my attention.
Difficult Tools
Deploy weird, dysfunctional and outdated systems on all forums and sites. Be sure to use proprietary version control systems and single-platform conferencing software.
Poisonous People
Poisonous people are people who need to pick fights over trivialities, make ridiculous demands and get indignant when they are not met, and generally drain and demoralize everyone. Berkus showed how to make best use of their talents. You should argue with them at length, then denounce them venomously, then ban them from all sites and forums. They will go off to other forums to denounce you. Follow them and attack them there until your company begins to look like a jerk and gets criticized. Then allow them back in the project and begin the process over. (I couldn't help but thinking of some forum discussions in relation to this point.)
Never Document Anything
Do not document: the code, the build methods, the submission and release processes or how to install. And if there are any questions, always tell people to, “Read the f***ing manual.”
Bad Liaison
Berkus said that nothing is quite so satisfying as working on a project where it is absolutely essential to liaise and coordinate with other people in a different part of the organization, only to discover that they won’t answer your email or keep forgetting who you are. And when you finally get things moving, you discover that they have no authority to give you what you need.
Legalese
Open-source developers both fear and hate legalese, which makes it a perfect instrument to intimidate and alienate them. So make legal documents and language as long and complex as possible with contributor agreements, website content licensing, non-disclosure agreements, trademark licensing terms – and double up on your investment by changing all of these randomly without informing anyone.
Government Obfuscation
In case you find the words “government obfuscation” a bit obfuscating, here are the three principles to adhere to:
1. Decision making and elections should be extremely complex and lengthy;
2. Make it unclear what powers community officials and committees actually have;
3. Make governance rules nearly impossible to change.
All in all, a fun and useful session. And, if you want to go at this subject the other way around, I found it amusing that Josh ended his session by telling folks to stick around in the same room for the next session which was on, guess what, how to build communities. Interesting order for these two sessions :)
See Also
Josh Berkus’ Blog
2008 JavaOne Conference
Janice J. Heiss
Posted at 2008-05-09 17:04:54.0 from 2008 JavaOne Conference
Modularity in the Java Platform
Basically the Java Module System specifies a distribution format for Java code, plus a repository for storing collections or modules, and identifies how they an be discovered, loaded, and checked for integrity.
Alex Buckley, the Language Guy
Alex Buckley, who Stanley Ho has described as the “*THE* language guy responsible for the Java Language Specification and the Java VM Specification,” spoke for the first part of the session on the development side of the Java Module System. “What’s missing,” explained Buckley, “is something between the development time constructs that you program with and the deployment time constructs that exist at build time. Sun’s concepts of modules span development and deployment.”
Alex explained that the development goals for the Java Module System are two-fold. The first is to continue to promote modular programming in the language. To that end, they’re introducing a simple and easy to use first class module concept into the language. He remarked that although versioning and dependencies are used at deployment time, JSR 277 seeks to make those concepts “at least expressible in the language in metadata”.
The second development goal for the Java module system is to support a modularization of the platform itself of the JDK. “The Java SE 7 expert group will eventually decide the exact semantics of those profiles, but it seems fairly clear that a profile is going to be delivered as not just a set of packages, but a set of packages wrapped in a set of modules,” explained Buckley.
Stanley Ho and JAR Hell
Stanley focused on how the deployment module system will address “JAR hell” by defining a better distribution formant. “JAR hell” is a term used to describe the various ways in which the classloading process can end up not working. One such way is when a developer or deployer of a Java application has accidentally made two different versions of a library available to the system, and another is when two libraries (or a library and the application) require different versions of the same third library.
The default deployment model defined in JSR 277 is called the JAM (for Java modules) module system, which defines a standard file format called JAM.
For those who want a simple take-home message, I refer you to Ho’s blog comments on JSR 277, where he addresses coming modularity changes (I quote):
“1. The most significant change is that there will be a new module keyword in the Java programming language:
module org.foo.app;
package org.foo.app;
module class Main {
...
}
Defining a Java module will be as easy as declaring a module name using the new keyword. But ... what if you want to create a deployment module with metadata that could be used in the module system? Well, it will be as simple as defining a Java module with metadata annotations:
//
// org/foo/app/module-info.java
//
@Version("1.0")
@ImportModules({
@ImportModule(name="org.foo.library", version="1.0+")
})
@MainClass("org.foo.app.Main")
module org.foo.app;
I won't dive into all the details here, but hope the example gives you some idea.
2. Incorporates inputs from EDR feedbacks and EG discussions on existing design and new features.
Since the original early draft was published, we have received many constructive feedbacks and most of them will be addressed in the upcoming specification. In addition, the specification will include details about resource modules (for internationalization), service/service-provider modules, etc. that have been defined by the expert group.
3. Reorganizes the specification to make the separation between the abstract module system framework and concrete module system implementation explicitly clear.
The original early draft actually has two separate parts: a framework for abstract module system, and a concrete module system implementation based on JAM (JAva Module). However, the distinction in that early draft was not clear because the focus of the original early draft was to gather feedbacks on the overall design rather than individual pieces. Bryan Atsatt, a very valuable contributor in the EG, recently suggested that a clear distinction between the two would help reduce a lot of confusion, and we agreed. This reorganization will happen and it will be one of the most obvious changes in the upcoming specification.
4. Validates the specification with the reference implementation.
We have been building the reference implementation (RI) through the Modules project in OpenJDK for quite some time now. The current RI has already implemented most of the functionalities as described in the upcoming EDR2, and we hope to bring the Modules project on par with the EDR2 around the same time when the specification is published. Stay tuned for more details."
In addition, Ho spoke of a draft specification he has been working on with Sun’s Mandy Chung to support OSGi bundles in the Java Module System that they have recently made available for the expert group to review and discuss.
See Also
OpenJDK Modules Project
JSR 277
TS-6185: Modularity in Java™ Platform
2008 JavaOne Conference
Janice J. Heiss
Posted at 2008-05-09 16:58:20.0 from 2008 JavaOne Conference
Chatting with David Miner of OpenSolaris
Right before CommunityOne kicked off this Monday and OpenSolaris 2008.05 was launched, I was able to grab Dave Miner for a podcast. Dave is another one of the big brains behind OpenSolaris and is the architect behind the install team.
My interview with Dave (9:30) Listen (Mp3) Listen (ogg)
Dave ready for the big day.
Some of the topics we tackle:
- The gauntlet people previously had to run to install Solaris
- Dave's involvement with Solaris install from member of the original team in '92 to rejoining and taking over the team a couple of years ago.
- How they've streamlined the install process - Project Caiman
- Building a LiveCD
- Where Dave wants to take the install over the next year: jumpstart, server focus, distribution constructor project
Posted at 2008-05-09 14:48:15.0 from Barton's Blog
Take 12 - Smash Mouth @ JavaOne 2008

All JavaOne 2008 pictures are available here.
Technorati: conf javaone javaone2008 smashmouth sanfrancisco
Posted at 2008-05-09 14:00:00.0 from Miles to go ...
Be sure to listen to "Live from JavaOne 2008" podcast
Daniel Steinberg created an excellent podcast that captures all the important demos and products on the JavaOne pavilion floor related to mobile and embedded Java. Check out "Java Mobility Podcast 45: Live from JavaOne 2008" - highly recommended.
-- Terrence
Posted at 2008-05-09 13:45:24.0 from Terrence Barr's Blog
Talking to Stephan Hahn and David Comay of OpenSolaris
I recently caught up with two of the big brains behind OpenSolaris, Stephen Hahn and David Comay to discuss the launch of OpenSolaris 2008.5 and a lot of the work and thinking that has gone into it.
My interview with Stephen and David (14:07) Listen (Mp3) Listen (ogg)
Stephen and David toast the launch with their expensive crystal glasses at the OpenSolaris install fest at CommunityOne.
Some of the topics we tackle:
- How to balance attracting new developers with making sure we keep the customers and developers who've traditionally been using Solaris.
- Where we've borrowed from and what we've borrowed.
- Stephen drills down on the Image Packaging System (IPS) and explains why we decided to roll our own.
- How IPS compares to apt-get.
- The easy conversion of system V packages to IPS.
- Where OpenSolaris is heading over the next year
Posted at 2008-05-09 13:09:47.0 from Barton's Blog
Nice to meet you!
JavaOne 2008 is almost over. It was another fun and content-filled event - even if it lacked the big announcements this year. I'll be blogging about some details and interesting things I saw over the next couple of days.
One of the really great aspects of my job as community ambassador is that I get to interact with many talented folks around the globe and get to see a lot of cool stuff people are doing in the mobile and embedded space. Often, I am involved with folks electronically over months, working on projects, pulling together information, establishing connections - so I know them quite well before ever meeting them in person. And at events like JavaOne I then finally do get a chance to meet them face to face - an opportunity which I really appreciate. Even with all the non-stop electronic communication of today's world the personal touch is as important as ever. Nothing can replace a handshake and a few minutes of one-to-one conversation to establish a relationship.
Brazilians Bruno Ghisi, Lucas Torri, and Alexandre Gomes have been very active members of the Mobile & Embedded Community pretty much from the start ... and they all made it to JavaOne this year. These guys are smart, crazy, and have a couple of good tricks up their sleeve ;-) I'm looking forward to seeing the results of some of the projects they are currently working on!
The picture shows us at the Thirsty Bear open source unBOF on Tuesday night. Left to right and top to bottom: Ken Gilmer (BugLabs), myself, Onno Kluyt (Sun, Senior Director of Communities and Standards), Roger Brinkley (M&E community leader), Lucas, Bruno, and Alexandre.
Guys, enjoy the rest of your stay in San Francisco and see you online soon,
-- Terrence
Posted at 2008-05-09 11:05:48.0 from Terrence Barr's Blog
LWUIT released at JavaOne
Update:
- Shai Almog, one of LWUIT's architects, has done some blog posts on technical details of LWUIT as well as a his experience doing a quick port of LWUIT to Google's Android. A must read if you're interested in LWUIT.
The Lightweight UI Toolkit was officially announced to the developer community during yesterday's JavaOne mobility keynote by Jeet Kaul (video and audio archive). An early access binary release of the LWUIT library is available immediately and the full source code will be available by summer of this year.
LWUIT is a project on java.net and can be found here. It features screen shots, a LWUIT demo application, the early access binary download, a LWUIT tutorial, developer guide, and the API javadocs. You can start using LWUIT right away simply by adding the library to your application.
I am personally very excited about LWUIT as it offers a great new option for vastly improved rich UI development and deployment for today's mass-market devices. I have spoken to a number of developers here at JavaOne and they are all eager to try it out and see lots of potential. And once LWUIT is be available for CDC/PBP (in the near future) this finally gives the CDC platform a good option for GUI development that it has been lacking up to now.
What's more, the open source model using GPLv2 + classpath exception enables wide adoption and allows developers to port and customize LWUIT to many platforms that have previously been underserved in the UI area. And finally, the forthcoming NetBeans Matisse support for LWUIT will take drag-and-drop UI creation for mobile and embedded platforms to a new level.
So, please check out the LWUIT project. More information and sample code will be coming soon.
-- Terrence
Posted at 2008-05-09 10:20:20.0 from Terrence Barr's Blog
We interrupt this JavaOne 2008 blog fest with an irrelevant personal anecdote that's sure to get me in a bit of trouble for violating the "I never want to see anything about me on your blog" rule that has been "negotiated" with the man I love most in the world.
I had a major milestone birthday this year. And I was thinking the best present I could give myself for my big milestone birthday (other than the Red Maple I got), is a body that can run a marathon. So I started training. And I had it on my calendar to register for the Marine Corps Marathon as soon as registration opened.
The only problem is that I put it on my calendar for this week and registration opened last week and has now sold out.
I am completely and totally bummed.
So I email the love of my life that. And he responds:
don't be - it is just an artificial milestone. Nice to say you've done it but you
are better off just exercising with your goals in mind.
Plus Phidippides probably never made his famous run from Marathon to Athens and
almost certainly did not die after he said" "Nenikikamen" (we won). It makes for
a good story but it is more likely he had run all the way to Sparta and back
before the battle to seek help from them (they didn't send any - they were too
busy with their religious festival and did not want to anger the Gods).
So the real distance was much longer than 26.2 miles so it's all a big
misunderstanding...feel better now?
I do. Because I'm the luckiest girl in the whole world. And I'm married to the smartest person I know (and I know a lot of smart people). And he makes me smile and laugh out loud and every single day I learn something important from him and it's only been 13 years and I can't even remember my life before him and I can't even imagine my life without him and I'm the luckiest girl in the world for having that hunk-a-hunk-a man in my life and these three beautiful chilldren he gave me.
So how's that for a massive public display of affection that makes you want to avert your gaze?
;-)
It's totally going to get me into trouble and I will surely pull this post down as soon as he sees it, but I'm just bursting and I couldn't keep it in anymore.
:-)
Posted at 2008-05-09 09:07:30.0 from MaryMaryQuiteContrary
Bringing the JavaOne Conference to Second Life
Yesterday I popped into Second Life for a time to share my conference experience with the folks who were unable to attend. It's always great to talk to these in-world developers, as their enthusiasm for information is high and we have direct communication that I don't always get just from writing for our java.sun.com web site.
I explained the sessions that I went to:
- Java University
- Applets Reloaded
- Mars Mapping
I want to share a few URLs for the topics I covered, mainly the new Java Plug-in, and the Mapping Mars project article that I wrote:
I also want to thank everyone in-world for their continued interest and support, and for being so understanding about my having to leave early due to my illness. I am on the mend now, and will pop in-world again soon.
Dana Nourie, Sun Microsystems
Posted at 2008-05-09 09:00:27.0 from 2008 JavaOne Conference
Extreme Innovation
Today is the last day of the 2008 JavaOne Conference in San Francisco.
It's the world's largest developer's conference and every year it ends with James Gosling showcasing "extreme innovation."
The JavaOne 2008 Twitterverse and blog-o-sphere are already buzzing about what the keynote will feature.
(Including the blog authored by my very favorite blogger)
The fun begins at 8:30 a.m. pacific today. If you're not at JavaOne, you can watch it on the web.
Posted at 2008-05-09 08:04:55.0 from Duke's Zone
Take 11 - Pictures from JavaOne 2008
All JavaOne 2008 pictures are available here.
Technorati: conf javaone javaone2008 photography
Posted at 2008-05-09 06:00:00.0 from Miles to go ...
JavaOne 2008, Day Three: Riding the Rails
Posted at 2008-05-09 04:27:14.0 from Artima Weblogs
Wet, with Forget-me-nots
Tulips, I mean. Our front yard is riot of tulips all shouting “Look at me!” It rained and I thought “wet tulips, mmmm”, and by coincidence three of them had forget-me-nots somewhere in the frame.



Confession: I cranked the blue a bit.
Posted at 2008-05-09 02:00:00.0 from ongoing
Take 10 - Pictures from JavaOne 2008
All JavaOne 2008 pictures are available here.
Technorati: conf javaone javaone2008 photography
Posted at 2008-05-08 23:11:46.0 from Miles to go ...
JavaOne 2008: ProjectVS and other news
Our second two days at JavaOne involved lots of demo'ing and a small but lively community event at the Thirsty Bear Pub. Project Wonderland was highlighted in the JavaOne Today newsletter. The article, Visiting Virtual Worlds -- Project Wonderland, provides a nice summary of Paul Byrne and Jonathan Kaplan's JavaOne technical talk.
In a previous blog posting (And the winners are...), Nigel described two competition-winning Wonderland applications created by community members. In addition to these, we were also demoing another community-created Wonderland application called ProjectVS. Our first guest blogger, Mark Loparco, has been kind enough to contribute a description of this application and share with us some of his thinking behind it.
If you have a Wonderland application or a new Wonderland feature, and would like to be a guest blogger, please let us know!
Guest blog contributed by ProjectVS team member Mark Loparco from Applied Minds:
From planning a vacation to building an enterprise software application, it seems like everything these days is a "project." As time management guru David Allen defines it, a project is simply anything that requires more than a single action. By that definition, even cleaning out the garage is a "project" (especially if on a Saturday, trust me). Regardless of the scope of the project, all projects share the same three dimensions of Time, Tasks and Resources. In fact, the interplay of these three dimensions can often spell the difference between a project's success or failure. For example, too many Tasks and not enough Time or Resources can easily spell Disaster. Too many Resources and not enough Tasks spells thumb-twiddling and cost overruns. And too much Time -- uh, forget it, there's never too much Time.
ProjectVS was conceived to help project managers and team members better visualize the interplay of these three dimensions. Like an immersive Gantt chart, ProjectVS places team members "inside the project" by dynamically constructing a three-dimensional collaborative "virtual space" for project team members. Written entirely in Java, ProjectVS leverages the robust client-server, telephony, avatar and 3D rendering technologies offered by Project Wonderland. In addition, because it is Java-based, ProjectVS has been able to readily leverage existing third-party Java libraries, including a library that greatly facilitated the parsing of the Microsoft Project files, saving us literally weeks of development time.
In addition to the aforementioned technologies, one of the great things about Project Wonderland is that through its innovative Wonderland File System (WFS) architecture, it affords parallel workflows for both developers and content-creators, something crucial to the development of interactive applications. Thanks to WFS, we were able to code-lock the project a week before JavaOne while continuing to refine the models and add new content and functionality without having to touch a single line of code, including leveraging our custom Portal class (shown right) that allows you to teleport from one location in the Wonderland universe to another.
There are many possible directions we would like to take ProjectVS. A natural would be to allow users to manipulate the data from within Wonderland itself, such as adding and modifying tasks and users, filtering the users and time ranges, and even round-tripping back to Microsoft Project. We're really looking forward to continuing to work with the great Wonderland team in both the development and implementation of this amazing forward-looking tool.
- Mark Loparco, Applied Minds
Posted at 2008-05-08 22:34:42.0 from Wonderblog
NetBeans in Mandriva Linux, Fedora next
One of the things I really enjoy about JavaOne is getting to meet other Sun employees from around the world whom I've only corresponded with via email or talked to over the phone. Earlier this week I got to meet Jaroslav "Yarda" Tulach from our NetBeans team in Prague.
I had recently learned that Jaroslav, on his own time, had packaged NetBeans for inclusion in Mandriva 2008.1. This effort also served as the basis for the work needed to get NetBeans into Ubuntu. I had planned to blog about this before JavaOne but things got too crazy. Now I'm able to post the entry and with a picture to boot!
Not only that but at JavaOne I learned from Tom Fitzsimmons of Fedora/RedHat that Jaroslav's work to get NetBeans into Fedora is coming along nicely and should result in NetBeans getting in a update for Fedora 9. Tres cool!
Jaroslav, this Bud's for you (the real Czech kind not the crappy American brew).
Posted at 2008-05-08 19:51:31.0 from Barton's Blog
Pics from CommunityOne & JavaOne
Here are a few pictures from earlier this week taken at CommunityOne and day one of JavaOne.
Podcasts a comin'
In the next few days I will also be posting a bunch of podcasts I did while in San Francisco including a bunch from key OpenSolaris folks, a post-Distro-smackdown recording, an interview with the Fedora IcedTea guys and a chat with the JRuby dudes.
Mr. Finch exits -- Before either event even began, the city was crawling with Java topped cabs.
CommunityOne and the Launch of OpenSolaris (this time for real)
Marten Mickos, Neelan Choksi and Ian Murdock hold forth on FOSS business models at RedMonkTwo.
C1 Speakers: Jono Bacon (Ubuntu), Zonker Brockmeier (OpenSUSE), Mako Hill (FSF), Karsten Wade (Fedora)
Sun Software EVP Rich Green and RedMonk pundit Steveo Grady talk seriously under the disco ball at the OpenSolaris launch party.
JavaOne - DayOne
The MySQL Community Crew attend their first JavaOne as Sun employees (and find that that means they don't get the free backpack). L-R: Jay Pipes, Giuseppe Maxia, Lenz Grimmer and Colin Charles.
The post-keynote deluge.
If you attend JavaOne you've gotta get your picture taken with Duke (there was a huge line).
Pau for now...
Posted at 2008-05-08 19:18:23.0 from Barton's Blog
Simon Phipps and Patrick Finch on Open Source
By Marina Sum, staff writer, Sun Developer Network
Sun's Simon
Phipps, chief open source officer, and Patrick Finch, open-source
community coordinator, led an almost packed JavaOne session yesterday.
They delved into the history, current status, and future challenges of
open source, punctuated by many beautiful photos from Simon to, often
humorously, convey the points. Great job!
History
Open
source started in the early 1980s with pioneers like Richard Stallman,
who believed that software should come with freedom to revise the code
and who launched the GNU Project. Another notable figure was Bill Joy,
a cofounder of Sun, who "wanted to freely collaborate with people" on
software. In fact, the philosophy behind the BSD license for UNIX is
easy collaboration.
Over the years, Sun has become involved in
numerous open-source communities: OpenOffice.org, Project GlassFish,
OpenSPARC, NetBeans, Java technology. "There have been many
opportunities to make mistakes," said Simon. "Nonetheless, we've done
a lot of excellent work."
Toward the end of the 1990s, FOSS
[free and open-source software] continued to evolve into an important
trend, leading to the publication of open-source license standards in
1998 for a total of 60 licenses. Inevitably, picking the right one
involves legal experts.
The Present
Now
that the Internet has become pervasive, examples of open source abound,
but also controversies, because "open source means different things to
different people." Still, the movement is spreading globally and
changing the way of doing business, with development centers in China,
India, and South America. Traditionally conservative Gartner predicted
a year ago that by 2012, 70 percent of all software will be based on
open source. That percentage now reads 90!
Who are the
open-source developers? They include those who work on kernels; who
build plug-ins and device drivers; who create enterprise applications;
and who integrate systems. Be sure to count the user community,
too. Simon cited Apache as a shining example of "a democratic, highly
organized community of diverse interests with well-stated governance
models."
The "Adoption-Led Market"
The traditional "procurement-driven" market, whereby software projects go through the
select-evaluate-build-deploy-support cycle, gated by a licensing
barrier, is switching more and more to a different model. That is,
project teams select from what's available in open source, evaluate,
and then prototype and build a solution fast, leveraging self-support
from communities with little or no vendor contact. Once the solution
stabilizes, deployment follows, leading to demands for support.
"Enterprises
want insurance for software; software companies sell insurance in the
form of support and bug fixes. Users then become customers," explained
Simon. See his posting for details.
Consequently,
IT managers must decide whether to hire support personnel; purchase
subscriptions for support, training, warranty, and indemnity; or just
risk it out. No matter what the choice, IT now has more control over
on what and when to spend its budget.
The Challenges of Licensing, Patents, and Trademarks
In
quoting Eben Moglen, "A license is the constitution for the community,"
Simon advocated only a limited number of licenses because "license
proliferation limits the ability of software projects to be embraced by communities." Read his white paper (PDF) on this topic.
Simon
believes that as much as that software patents are a fact of life and that
companies will continue to encourage employees to file patents, the
entire subject is "very broken." Currently, enterprises tackle patents
through grants, covenants, and licenses, with licenses being the best
approach, according to Simon, who proposes that an independent body
look into the ramifications of the options.
Trademark violations are all over, for example, the Mozilla and Firefox logos. Again, might an independent group be the answer?
What Next?
With
corporations "getting up close and personal," Simon believes that
management should continue to send developers to conferences like
JavaOne and other collaborator and community events. As for open
source, "Jump in!" "The future is ours to shape. The pivotal moment in
IT is open source, which is definitely heading for mainstream,"
concluded Simon.
The Mink Connection, "Simon Phipps's view of the Web," is chock full of gems on open source. Amazing photographs, too! Have a look.
Posted at 2008-05-08 18:05:54.0 from 2008 JavaOne Conference
JavaOne 2008 : Monitoring Your Enterprise Easily
Posted at 2008-05-08 14:34:00.0 from cld
Groovy or JRuby: How To Choose?
Rick Palkovic,
Sun Microsystems Staff
Writer
If you use one of the scripting languages JRuby or Groovy, you’re unlikely to use the other, and are probably curious about their relative advantages. Most of us don’t have broad expertise in both languages, so the session presented by Neal Ford, "Comparing JRuby and Groovy," TS-6050 provided valuable insights.
Ford characterized both languages as dynamic and strongly typed, but noted that they were created for different purposes. Groovy has been designed to provide a modern dynamic syntax for generating Java bytecode. JRuby is a Java platform port of the Ruby language. Ruby already runs on all of the popular operating systems, and JRuby tries to be no more than Ruby running on the JVM.
Because of their different geneses, the two languages have different priorities. Groovy was designed to bring modern semantics to the Java bytecode, and JRuby was designed to bring the richness of the Ruby language to the Java platform.
Besides differences in syntax, Ford described many other differences between the two languages that affect the way programmers approach solving problems in each. For example, each language handles the concept of null differently. In the Groovy world, null is always null. Groovy adds a "?." operator to help avoid null pointer exceptions. For example, the expression
person?.address?.street
tests person and address for nullness, and will only execute the line of code if both person and address are not null.
In JRuby, nil is an instance of NilClass. Nil is an object because, in Ruby, everything is an object. And all objects have consistent semantics. No special operator is required to handle null or nil. Becuase nil is an object, you can call methods on it. Ford then presented the following lines of JRuby code, which define a blank? method and add it to the String class.
class String
def blank?
empty? || strip.empty?
end
end
JRuby supports open classes, and when it looks on its class path, it sees that a String class is already there. The code reopens that String class and adds the blank? method to it -- in Ruby, the convention is to append the question mark character to the name of a method that returns true or false. With the following JRuby code, he then used the blank? method to create a test_blank method:
def test_blank
assert "".blank?
assert " ".blank?
assert nil.to_s.blank?
assert ! "x:.blank?
end
Here, the test_blank method operates on the String object itself, and if it is empty -- or if you strip all the spaces away and it is empty -- then the String instance must be blank.
Interestingly, if you test this code you can also assert that nil.to_s.blank? is blank. Nil is an object in Ruby, so you can call methods on it, including to_s (convert to String). And, as it turns out, nil.to_s is empty -- which is exactly what you would expect.
Ford presented many more intriguing examples of differences between the two languages that affect the way a programmer approaches the solution to a problem. It is worth a look at the transcript in Java online when it becomes available. Meanwhile, Neal Ford has made his presentation slides available on his website at nealford.com.
For more information on scripting languages, see the technical articles and tips on java.sun.com.
Posted at 2008-05-08 13:05:08.0 from 2008 JavaOne Conference
OpenJDK6 Available for RHEL 5 and CentOS5
Tuesday morning at JavaOne, Karsten Wade, RedHat employee, Fedora Board member and Distro Gladiator gave me the great news -- The OpenJDK6 package is now available for RHEL 5 and CentOS 5!
The package was uploaded to the Fedora Extra Packages for Enterprise Linux (EPEL) repository and can be easily added to either RHEL or CentOS (here's how).
Podcast to come
While I was at JavaOne I was able to sit down and do a podcast with Tom Fitzsimmons, Patrick Macdonald who actually worked on the IcedTea project at RedHat and enabled OpenJDK to become a reality. Look for that early next week.
Pau for now...
Posted at 2008-05-08 13:04:18.0 from Barton's Blog
JavaOne 2008 : Feature-On-Demand Applications, Rich Internet Applications
Posted at 2008-05-08 10:01:00.0 from cld
Java + You
Posted at 2008-05-08 09:35:15.0 from Duke's Zone
The NetBeans Ruby IDE: You Thought Rails Development Was Fun Before
by Ed Ort, Sun Microsystems Staff Writer
One of the powerful features added to the NetBeans IDE 6 was support for Ruby, JRuby, and Ruby on Rails. The Ruby programming language has become popular with a growing number of developers because of its simplicity and its productivity features. As is the case for the Java programming language, Ruby is object-oriented, although in Ruby everything is an object -- even what are called primitives in the Java language. Ruby is also open-source and has a large and active community. Ruby's creator, Yukihiro Matsumoto, known to the Ruby world as "Matz", intended the language not only to be easy to use and highly productive, but also fun.
JRuby is an open-source pure Java implementation of the Ruby programming language. Because of its tight integration with the Java platform, JRuby allows Java applications to call into Ruby code. It also allows Ruby applications to call into Java code. This Ruby-Java integration is a very handy feature for developers.
Ruby on Rails, often shortened to Rails, is a web application framework written in the Ruby programming language. The framework is designed to make web application development faster, simpler, and more efficient. Web applications built with Rails are based on the model-view-controller (MVC) architecture. Devotees claim (rightfully so) that using Rails enables them to create a working web application in minutes. Like Ruby, Rails has become very popular. It's also open source and has a large community of contributors.
With this added support for Ruby, JRuby, and Rails, developers can take advantage of the NetBeans IDE's sophisticated project management, editing, and debugging features in building their Rails applications.
|
In the technical session titled "The NetBeans Ruby IDE: You Thought Rails Development Was Fun Before," Sun Principal Engineer Tor Norbye and Sun senior engineer Brian Leonard, both NetBeans experts, used the NetBeans IDE to quickly build a Ruby on Rails application -- a simple web application that tallies votes for presidential candidates. In the process, they demonstrated many of the features in the IDE that make it an attractive tool for Rails development. |
Norbye and Leonard presented far too many features during the session for me to cover in this short article, so I'll highlight just a few of them.
- Project management. NetBeans allows developers to create a Rails project from existing files or to create a project "from scratch." In addition, developers can specify a specific Ruby interprter when they create a project, for example, the native Ruby interpreter or the JRuby interpreter. The interpreter can also be changed during the development process.
- Code generators. One of the productivity features in Rails is the use of code generators, saving developers from doing a lot of boilerplate coding. NetBeans provides all the standard code generators that come with Rails such as scaffolds, which construct most of the models and views for a basic MVC-based Rails application, models, controllers, database migrations, and integration tests. Additional generators can be easily installed into NetBeans.
- Code Completion. Code completion is available in the NetBeans editor for all Rails APIs. It's also available for database parameter completion in ActiveRecord calls, as well as for hash keys and hash values.
- Editing in Erb Files. Erb files are the Rails version of JavaServer Pages (JSP) technology files, allowing developers to embed executable Ruby code within the HTML code on the page. An embedded block of Ruby code is called a scriptlet. All the NetBeans editing features available to Ruby are also available to scriptlets. In addition, the editing features extend to other code in an Erb file such as HTML, JavaScript, or CSS.
- Enhanced Documentation. RDoc is the Ruby equivalent to JavaDoc, that is, formal documentation of the language. The NetBeans editor does custom RDoc rendering. A nice aspect of this is that the editor preformats code fragments and highlights syntax in examples within RDoc entries. The editor also does this for Erb files.
- Quickfixes. The editor checks for many common programming mistakes, providing hints for fixes. It also identifies deprecated Rails constructs and suggests replacements.
- Source navigation. NetBeans has some nice shortcuts for Rails application editing. For example, press Ctrl-click on a class, method, field, or variable to jump to its declaration. Press Ctrl-Shift-T to jump between a file and its test. Press Ctrl-Shift-A to jump between a controller and its view.
- Context-sensitive execution. Selecting Run File (Shift-F6) performs a context-sensitive action for the current file. For example, if the context is a controller, view, or helper, selecting Run File opens the browser and shows or reloads the URL corresponding to the controller or view (starting the Rails server if necessary). By comparison, if the context is a test, selecting Run File runs the test.
- Advanced debugging. NetBeans supports a comprehensive set of debugging tasks for Rails developers such as stepping through code, setting breakpoints, inspecting local variables, navigating call stacks, and running tests. It also enables debugging of both template files as well as Ruby files.
- Java integration. NetBeans provides code templates that makes it easy to include Java modules into a Rails application. In addition, Java classes can be used just like Ruby classes. Leonard mentioned that the JRuby engineers in Sun went to great lengths to make working with Java code in Ruby more Ruby like.
- Flexible deployment. NetBeans supports deploying a Rails application to any Java servlet container such as Tomcat or GlassFish. Leonard pointed out that most deployment environments do not include Ruby containers. So this feature enables developers to deploy their Rails applications in their existing infrastructure.
Unfortunately, Leonard could not get the voting application to run. It's likely that during the talk, Norbye or Leonard added some errant code to the working code that was originally folded into the project. However, this gave Leonard a chance to show more debugging features.
I was impressed with the comprehensive set of Rails development features already in NetBeans, but enhancements are coming. Norbye said that future plans include more extensive type inference, enhanced test support, better console integration, more refactorings and quickfixes, improved Java integration, and support for additional Ruby frameworks.
Despite the application execution problems, this was an impressive display of Rails support in NetBeans.
Posted at 2008-05-08 09:10:04.0 from 2008 JavaOne Conference
About
All JavaOne and CommunityOne 2008 blogs written by Sun employees. Technical, social, and philosophical blogging, from behind the show curtain.
Formats
Subscriptions
2008 JavaOne Conference
Analyze This
Artima Weblogs
Barton's Blog
Blog SPOT Blog ...
But I digress... Rick Palkovic's blog
David Herron's Blog
Duke's Zone
JCP Program Office
Jenn Winger
MaryMaryQuiteContrary
Max Lanfranconi's Weblog
Miles to go ...
Sun and SAP Journey
Superpatterns
Terrence Barr's Blog
The Clingan Zone
The Open Waters
There’s not a moment to lose!
Wonderblog
cld
ongoing
Legal Disclaimers
The individuals who post here are part of the extended Sun Microsystems community and they may not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them. This site aggregates content posted on third-party sites. The content posted here may be hosted at third party sites in no way affiliated with Sun.
Report an Issue | Contact | About Sun | News & Events | Employment | Site Map | Privacy | Terms of Use | Trademarks