<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>2008 JavaOne Conference</title><link>http://blogs.sun.com/javaone2008/</link><description>Online coverage from the Sun Developer Network staff</description><language>en</language><lastBuildDate>Sat, 04 Jul 2009 21:29:14 PDT</lastBuildDate><generator>Apache Roller http://roller.apache.org</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/2008JavaoneConference" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Weighing Issues of Scale</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/3c8ltye7MX8/weighing_issues_of_scale</link><category>/JavaOne</category><category>cameron</category><category>java-one</category><category>java-one2008</category><category>javaone</category><category>javaone2008</category><category>purdy</category><category>scalability</category><category>scale-out</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">rikart</dc:creator><pubDate>Sun, 11 May 2008 18:19:40 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/weighing_issues_of_scale</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>by Rick Palkovic<br />Sun Staff Writer<br /><br />How do you improve the ability of your JEE web application to handle large numbers of transactions?&nbsp; Broadly speaking, the choices are to scale-up or scale-out.<br /><br />Scaling up means expanding the resources of a fixed number of servers, by adding memory, mass storage, or increasing processor speed. Scaling out means increasing the number of commodity servers in the deployment. Each approach has its proponents, but scaling out has become best practice for most situations. <br /><br />After committing to a scale-out strategy, what is the best way to execute it?&nbsp; Cameron Purdy tackled this problem in TS-6339, &quot;Top 10 Patterns for Scaling Out Java Technology-Based Applications,&quot; in which he weighed the merits of several&nbsp; scale-out strategies and technologies. It’s definitely worth checking out the presentation slides and transcript when they become available on the <a href="http://java.sun.com/javaone/sf/index.jsp">JavaOne site</a>, if only for the humor. Meanwhile, here are a few of Purdy’s thoughts.<br /><br /><u><b>The Problem</b></u><br /><br />Scaling is an issue only for stateful data systems. For stateless data, you need do little more than add servers to linearly increase service. For stateful data, the system must be partitioned for scale-out, and the partitions must be coordinated.<br /><br />Unfortunately, scaling out stateful systems adds complexity, and greater scale means greater complexity. Complexity increases the path length data ultimately has to travel to reach the user. And long data paths increase the opportunities for latency, the bane of large-scale deployments.<br /><br /><b>Multithreaded Thinking</b><br /><br />Most of us learned to program in a single-threaded mindset, where data predictably goes where it’s sent and functions are called in order. A highly scaled deployment is by its nature multithreaded, and the timing of data migration and function calls is determined by an automated manager. Any requirement to execute function calls in a particular order creates a queue, and by definition a latency bottleneck. <br /><br /><b>Latency</b><br /><br />Latency is at its worst when it can’t be predicted. The more complex the system, the more difficult it is to guarantee that a request will be handled in a given period of time. This issue is not particularly important for many applications, but absolutely critical for time sensitive transactions such as financial transactions.<br /><br />Java has a real-time spec, but in general Java is not deterministic from a latency viewpoint, chiefly for the following reasons: <br /></p><ul><li>It collects garbage at seemingly random times</li><li>It’s a multithreaded system, and your thread could be preempted</li><li>I/O appears nondeterministic</li></ul><p>For these reasons, Java is rarely used for true real-time systems. <br /><br /><b>Read Consistency</b><br /><br />Another issue is read consistency. In distributed systems only two things can be moved around: state data information and the functions that process it. When you move state data in a distributed system, whether with caching or some kind of synchronous transaction system, you have two copies of the data, at least temporarily, that must stay in sync. <br /><br /><b>Durability</b><br /><br />When you create a system that must be continuously available, it requires some form of durability. For example, you must be able to recover servers, safeguard data from loss, and so on. Durability presents a couple of challenges. First, there is a latency cost to keeping data on a disk network. Second, you have to coordinate between readers and writers. <br /><br /><b>Architectural Limits to Scalability</b> <br /><br />High-latency operations that must occur in sequence limit scalability. Globally ordered operations limit scalability. Data hotspots limit scalability. In short, if there is some point in your system where data has to line up for processing, you will have a scalability bottleneck.<br /><br />In stateful systems, the challenge is to achieve availability, reliability, performance, and predictability -- including predictable performance -- in systems that can still be easily managed and serviced.<br /><br />There are costs to meeting these challenges. The goal is a system that scales linearly as you add resources and capacity. In other words, each additional server you add will support at least the same number of users as an existing server.<br /><br /><u><b>The Solution<br /></b></u><br />The collective solution is composed from some or all of these approaches: routing, partitioning, replication for availability, coordination across multiple partitions, and messaging for asynchronous updates across partitions. </p><p><br /><b>Routing</b><br /><br />In a stateful system, the purpose of routing is to make sure you bring together processing and data at the right time, in the right place. Routing moves information to servers where there is locality of state. Locality of state lets processing occur without coordination across the network. <br /><br />Routing lets you take advantage of additional servers by spreading the incoming load. Routing supports partitioning, the ability to break down processing across multiple servers.<br /><br /><b>Partitioning</b><br /><br />Partitioning designates ownership of state and responsibilities across a distributed system. Because tasks are partitioned, a single-point failure will only affect a portion of the system. In a best-case scenario, through replication, you can eliminate the loss of any information. So, partitioning makes replication possible. <br /><br /><b>Replication for Availability</b><br /><br />But once you have partitioning, you have a big problem, because it poses a limit to scale-out. Once you start pulling information from multiple servers and pushing information to them, you have issues of transaction that involve possible data loss and inaccuracy. Once you start coordinating across partitions and servers, things become much more complicated. Enter the issue of coordination.<br /><br /><b>Coordination Across Multiple Partitions</b><br /><br />Coordination is what makes scalability difficult for stateful systems. But good coordination simplifies the programming and supports more synchronous behavior. The alternative to using coordination is to use messaging. So, instead of coordinating synchronous operations across multiple partitions, you can use messaging to make the processing stay synchronous. <br /><br /><b>Messaging for Asynchronous Updates Across Partitions<br /></b><br />Messaging queues let you reliably hand off responsibilities between partitions. If one partition needs to initiate processing in another partition, it can send a high priority message. However, actually waiting for confirmation that the processing has been completed would be coordination.<br /><br />Message queues are durable because they make message information survivable. If the sending partition dies, the message will not be lost, and the receiving partition will process as requested. <br /><br />Message queues support ordering of operations. Sometimes it’s important to perform operations in sequence -- a challenge in multithreaded systems.<br /><br />Queuing has one more important aspect that supports scalability. It lets you batch operations together. <br /><br /><b>Messaging Technologies</b><br /><br />There are many messaging options, with varying reliability, latency, and ordering guarantees. <br /><br /></p><ul><li>UDP/IP: A low level protocol, but with low reliability -- there is no guarantee that messages will actually arrive, since they can be dropped without raising an error condition. Good for predictable latency, however, since messages are not stored. </li></ul><ul><li>TCP/IP: More reliable than UDP, since the protocol establishes a two-way stream-oriented conversation. TCP/IP also has an easier programming model than UDP. One disadvantage is that latency depends on network load, and is unpredictable for practical purposes. </li></ul><ul><li>HTTP: Has the advantage of simplicity because it is a slightly higher level protocol. Its request-response model makes it fairly reliable.</li></ul><p><u><b>Conclusion</b></u><br /><br />In stateful systems, the challenge is to achieve availability, reliability, performance, predictability, including predictable performance, in systems that can still provide manageability and serviceability.<br /><br />The collective solution is composed from some or all of these: routing, partitioning, replication for availability, coordination across multiple partitions, and messaging for asynchronous updates across partitions. <br /><br />And, keep it simple. If you can’t show how your deployment works on a white board, it probably won’t work in production.<br /><br />Learn more about scale-out deployments on <a href="http://onesearch.sun.com/search/onesearch/index.jsp?qt=scalability&amp;x=14&amp;y=13&amp;charset=utf-8&amp;col=developer-reference&amp;cs=false&amp;rt=true&amp;reslang=en">developers.sun.com</a>.&nbsp;
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/3c8ltye7MX8" height="1" width="1"/>]]></content:encoded><description>Scale-out is the norm for large web application deployments, but it poses many
challenges for stateful, time-sensitive systems. Here’s a high-level
discussion of the problem and which approaches solve it best.&lt;br /&gt;</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/weighing_issues_of_scale</feedburner:origLink></item><item><title>Designing Massively Multiplayer Online Roleplay Games with Project Darkstar</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/e-XrYa7okEA/designing_massively_multiplayer_online_roleplay</link><category>/JavaOne</category><category>2008-javaone-conference</category><category>blogwatch</category><category>darkstar</category><category>disaster</category><category>dupe</category><category>dupe-bug</category><category>javaone</category><category>jeff-kesselman</category><category>massively-multiplayer-online-roleplay-games</category><category>mmorpg</category><category>mmorpgs</category><category>project-darkstar</category><category>rollback</category><category>shard</category><category>zone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Janice J. Heiss</dc:creator><pubDate>Fri, 09 May 2008 20:37:28 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/designing_massively_multiplayer_online_roleplay</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[A full room of about 120 people attended the “Designing an MMORPG with Project Darkstar” session with Sun’s engaging and multi-talented <a href="http://blogs.sun.com/gameguy/" target="_blank" title="Jeff Kesselman's blog">Jeffrey Kesselman</a>, who I have the pleasure of knowing from a previous <a href="http://java.sun.com/developer/technicalArticles/Interviews/kesselman_qa.html" target="_blank" title="java.sun.com interview with Jeff Kesselman">interview</a>. Kesselman has a long history in the game industry -- after coming to Sun, he saw how Sun’s core competencies could be used to make life easier for game developers. Jeff's title is “Chief Instigator” for <a href="http://projectdarkstar.com/" target="_blank" title="Project Darkstar">Project Darkstar</a>, which reflects not only the culture, but the intrinsic nature of computer games – they are “instigations”, meant to provoke, to demand a response, to get in your face and force you to interact. Project Darkstar is Sun Labs’ open-source Java-based infrastructure software designed for latency-critical, massively scaled online applications -- such as online games. The idea is to reduce development costs and radically enhance the technical challenges that have confronted developers of MMORPGs which, for the uninitiated, stands for “Massively Multiplayer Online RolePlay Games”.<br /><br />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.<br /><br />“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.”<br /><br />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.<br /><br />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:<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />The specific architecture of the SGS, in terms of design, is much like a 3-tier enterprise system:<br /><br />Tier 1: Communications Layer<br />Publish/subscribe channels and direct client/server packets<br />Analogous to the “edge tier”<br /><br />Tier 2: Execution Kernel<br />Executes “tasks” in response to “events”<br />Analogous to a Java 2 Platform, Enterprise Edition (J2EE platform app server<br /><br />Tier 3: Object Store<br />Lightening fast, highly scalable access to persistent objects<br />Analogous to the DB tier<br /><br />However, in execution it’s very different:<br /><br />Tier 1: Communication<br />Reliable/unreliable ordered/unordered byte packet transport<br />Pluggable transports<br />Optimized for lowest worst case latency<br /><br />Tier 2: Execution<br />Persistence of objects is ubiquitous and transparent (mostly)<br />Tasks are apparently mono-threaded<br />Objects are very simple, mostly normal Java 2 Platform, Standard Edition (J2SE™ platform)<br />Stateless<br />Optimized for lowest worst case latency<br /><br />Tier 3: Object Store<br />All application state lives here<br />Custom in-memory data-store with secondary storage backup<br />Transactional and fault-tolerant but not relational<br />Deadlock detection for tier 2<br />Built to scale massively<br />Optimized for lowest worst case latencies<br /><br />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.<br /><br />He closed with a cool DarkMUD demo that was fun to watch that drew on artwork from the commercial game Neverwinter Nights.<br /><br />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.<br /><br />See Also:<br /><br /><a href="http://projectdarkstar.com/" target="_blank">Project Darkstar</a><br /><br /><a href="http://www.projectdarkstar.com/index.php?option=com_content&amp;task=view&amp;id=43&amp;Itemid=59" target="_blank" title="download Project Darkstar">Project Darkstar Downloads</a><br /><br /><a href="http://blogs.sun.com/gameguy/" target="_blank" title="Jeff Kesselman's blog">Jeff Kesselman’s Blog</a><br /><br /><a href="http://www.javagaming.org/forums/index.php" target="_blank">Java Game Developer Community</a><br /><br /><a href="http://java.sun.com/javaone/sf/index.jsp" target="_blank">2008 JavaOne</a><br /><br />Janice J. Heiss<img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/e-XrYa7okEA" height="1" width="1"/>]]></content:encoded><description>Sun’s Jeff Kesselman showed how Project Darkstar vastly simplifies the process of building massively multiplayer online roleplay games (MMORPGs).</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/designing_massively_multiplayer_online_roleplay</feedburner:origLink></item><item><title>Flooring the Accelerator on Wireless and Open Source</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/IDSOWkJGv3w/flooring_the_accelerator_on_wireless</link><category>/JavaOne</category><category>blogwatch</category><category>flooring-the-accelerator-</category><category>how-open-source-is-reshaping-an-industry</category><category>java-one</category><category>java-one-conference</category><category>java-one-technical-session</category><category>java-one2008</category><category>javaone</category><category>javaone-conference</category><category>javaone-technical-session</category><category>javaone2008</category><category>terrence-barr</category><category>wireless-industry</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Janice J. Heiss</dc:creator><pubDate>Fri, 09 May 2008 19:48:25 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/flooring_the_accelerator_on_wireless</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://weblogs.java.net/blog/terrencebarr/" target="_blank" title="Terrence Barr's blog">Terrence Barr’s</a> 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 &amp; Embedded Community.<br />&nbsp;<br />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.<br />&nbsp;<br />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.&nbsp; <br />&nbsp;<br />Currently the wireless industry is mostly closed and proprietary with:<br /><br />--Islands of similar but incompatible technologies.<br />--Voice aside, interoperability is a pipe dream. Voice service is a race to the bottom.<br />--There’s massive friction in the ecosystem. <br />--It’s a totally fragmented technology space, even within a single operator or manufacturer.<br />--Content creators must deal with each island separately, making service creation and deployment very inefficient.<br />--Limits opportunities for everyone involved.<br />&nbsp;<br />Existing revenue models are not suited for new services:<br /><br />--Monthly subscription fee is not granular enough<br />--Customers are wary of random ads but also of data mining<br />&nbsp;<br />Bottom line:&nbsp; The industry desperately needs new services and new revenue models because the industry is depriving itself of innovation. <br /><br />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. <br /><br />Barr closed with this comment:<br />“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.”<br />&nbsp;<br />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.<br />&nbsp;<br />See Also<br />&nbsp;<br /><a href="http://weblogs.java.net/blog/terrencebarr/" target="_blank" title="Terrence Barr's blog">Terrence Barr’s</a> Blog</p><p><a href="http://java.sun.com/javaone/sf/index.jsp" target="_blank">2008 JavaOne</a><br />&nbsp;<br />TS-5606 <br />Session Title:&nbsp; Flooring the Accelerator: How Open Source Is Reshaping an Industry<br />&nbsp;<br />Janice J. Heiss <br /></p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/IDSOWkJGv3w" height="1" width="1"/>]]></content:encoded><description>Terrence Barr explored how the wireless industry is being reshaped by the reality of open source.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/flooring_the_accelerator_on_wireless</feedburner:origLink></item><item><title>What Color is Your Aura?</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/gkLdTR2FZwg/what_color_is_your_aura</link><category>/JavaOne</category><category>blogwatch</category><category>conference</category><category>java</category><category>java-one</category><category>javaone</category><category>javaone2008</category><category>paul-lamere</category><category>project-aura</category><category>recommendation-engines</category><category>recommenders</category><category>stephen-green</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Janice J. Heiss</dc:creator><pubDate>Fri, 09 May 2008 19:22:03 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/what_color_is_your_aura</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Sun Labs staff engineers <a href="http://blogs.sun.com/searchguy/" target="_blank" title="Stephen Green's blog">Stephen Green</a> and <a href="http://blogs.sun.com/plamere/" target="_blank" title="Paul Lamere's blog">Paul Lamere</a> 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. <br />&nbsp;<br />So we really need recommenders. <br />&nbsp;<br />Here’s the basics:<br />&nbsp;<br />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&nbsp; 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. <br />&nbsp;<br />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? <br />&nbsp;<br />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. <br />&nbsp;<br /><b>The Long Tail</b><br />&nbsp;<br />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.<br />&nbsp;<br />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. <br />&nbsp;<br />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. <br />&nbsp;<br />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. <br />&nbsp;<br />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. <br />&nbsp;<br />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. <br />&nbsp;<br /><br /><b>Project Aura: Recommendations for the Rest of Us</b><br />&nbsp;<br />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. <br />&nbsp;<br />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. <br />&nbsp;<br />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.<br />&nbsp;<br />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. <br />&nbsp;<br />See Also&nbsp;<br /><a href="http://java.sun.com/javaone/sf/index.jsp" target="_blank"></a></p><p><a href="http://java.sun.com/javaone/sf/index.jsp" target="_blank">2008 JavaOne</a></p><p><a href="http://java.sun.com/javaone/sf/index.jsp" target="_blank"></a><a href="../../searchguy/" target="_blank" title="Stephen Green's blog">Stephen Green's blog<br /></a></p><p><a href="../../searchguy/" target="_blank" title="Stephen Green's blog"></a><a href="../../plamere/" target="_blank" title="Paul Lamere's blog">Paul Lamere's blog</a><br />&nbsp;<br />Janice J. Heiss
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/gkLdTR2FZwg" height="1" width="1"/>]]></content:encoded><description>Sun Labs engineers Stephen Green and Paul Lamere discussed the Project Aura recommendation engine that will make it easier to get desired information on the web.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/what_color_is_your_aura</feedburner:origLink></item><item><title>Ten Ways to Destroy Your Community</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/ynh6Gs36CLU/ten_ways_to_destroy_your</link><category>/JavaOne</category><category>2008-javaone-conference</category><category>blogwatch</category><category>jan</category><category>janice</category><category>janice-heiss</category><category>janice-j-heiss</category><category>josh-berkus</category><category>open-source</category><category>open-source-community</category><category>ten-ways-to-destroy-your-community</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Janice J. Heiss</dc:creator><pubDate>Fri, 09 May 2008 17:30:08 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/ten_ways_to_destroy_your</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[This session, attended by a good-sized audience of, I guesstimate, about 175 people and titled “Ten Ways to Destroy Your Community,” was described as follows:<br /><br />“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.”<br />&nbsp;<br />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.<br />&nbsp;<br />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.<br />&nbsp;<br />Anyway, here are The Ten Ways to destroy an open source community: <br />&nbsp;<br />1. Use difficult tools<br />2. Encourage poisonous people<br />3. Don't document anything<br />4. Conduct closed-door meetings<br />5. Use lots of legalese to confuse, alienate and intimidate people.<br />6. Have unresponsive liaisons who lack authority and competence. <br />7. Engage in governance obfuscation<br />8. Screw around with licenses<br />9. Stop outside committers<br />10. Be silent<br />&nbsp;<br /><br /><b>Defining the Problem: Community</b><br />&nbsp;<br />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.”<br />&nbsp;<br />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”.<br />&nbsp;<br />Herewith are comments on a few steps that especially got my attention.<br />&nbsp;<br />Difficult Tools<br />&nbsp;<br />Deploy weird, dysfunctional and outdated systems on all forums and sites. Be sure to use proprietary version control systems and single-platform conferencing software. <br />&nbsp;<br />Poisonous People <br />&nbsp;<br />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.)<br />&nbsp;<br /><br />Never Document Anything<br />&nbsp;<br />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.” <br />&nbsp;<br />Bad Liaison<br />&nbsp;<br />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.&nbsp; <br />&nbsp;<br />Legalese<br />&nbsp;<br />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&nbsp; 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. <br />&nbsp;<br /><br />Government Obfuscation<br />&nbsp;<br />In case you find the words “government obfuscation” a bit obfuscating, here are the three principles to adhere to:<br /><br />1. Decision making and elections should be extremely complex and lengthy;<br />2. Make it unclear what powers community officials and committees actually have;<br />3. Make governance rules nearly impossible to change.<br />&nbsp;<br />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 :)<br />&nbsp;<br />See Also<br /><br /><a target="_blank" href="http://www.ittoolbox.com/profiles/josh_berkus">Josh Berkus’ Blog</a><br /><br /><a title="JavaOne conference home page" target="_blank" href="http://java.sun.com/javaone/sf/index.jsp">2008 JavaOne Conference</a><br />&nbsp;<br />Janice J. Heiss <br /><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/ynh6Gs36CLU" height="1" width="1"/>]]></content:encoded><description>With wit and insight, Josh Berkus explained ten ways a company can destroy their open-source community.&lt;br /&gt;&amp;nbsp;</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/ten_ways_to_destroy_your</feedburner:origLink></item><item><title>Modularity in the Java Platform</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/szGuKxx79J4/modularity_in_the_java_platform</link><category>/JavaOne</category><category>2008-javaone-conference</category><category>alex-buckley</category><category>blogwatch</category><category>janice</category><category>janice-j-heiss</category><category>janice-j.-heiss</category><category>jar-hell</category><category>java-module-system</category><category>javaone</category><category>jsr-277</category><category>modularity</category><category>modularity-in-the-java-platform</category><category>stanley-ho</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Janice J. Heiss</dc:creator><pubDate>Fri, 09 May 2008 16:58:20 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/modularity_in_the_java_platform</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[Sun’s <a href="http://www.doc.ic.ac.uk/~abuckley/" target="_blank">Alex Buckley</a> and <a href="http://weblogs.java.net/blog/stanleyh/archive/2008/05/updates_on_modu.html" target="_blank" title="Stanley Ho's blog">Stanley Ho</a> gave a technical session titled “Modularity in the Java Platform”. They are spec leads for JSR 277, “Java Module System,” which defines a distribution format and a repository for collections of Java code and related resources. It also defines the discovery, loading, and integrity mechanisms at runtime. Design work on modularity had been previously split between two expert groups. JSR 294 defined the language extension support modularity in Java, and JSR 277 defined the deployment dimension of the module system. Over time, it became clear that certain situations required experts to work at both the language and deployment levels and that a single expert group was needed. To that end, Buckley, the spec lead for JSR 294, joined Ho as co-spec lead in JSR 277, so all modularity discussions now occur in the 277 Expert Group. <br />&nbsp;<br />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. <br />&nbsp;<br /><b>Alex Buckley, the Language Guy</b><br />&nbsp;<br />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.” <br />&nbsp;<br />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&nbsp; 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”.&nbsp; <br />&nbsp;<br />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. <br />&nbsp;<br /><b>Stanley Ho and JAR Hell</b><br />&nbsp;<br />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. <br />&nbsp;<br />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. <br />&nbsp;<br />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):<br />&nbsp;<br />“1. The most significant change is that there will be a new module keyword in the Java programming language:<br />&nbsp;<br />&nbsp;&nbsp; module org.foo.app;<br />&nbsp;&nbsp; package org.foo.app;<br />&nbsp;&nbsp; module class Main {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />&nbsp;&nbsp; }<br /><br />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:<br />&nbsp;<br />&nbsp;&nbsp; //<br />&nbsp;&nbsp; // org/foo/app/module-info.java<br />&nbsp;&nbsp; //<br />&nbsp;&nbsp; @Version(&quot;1.0&quot;)<br />&nbsp;&nbsp; @ImportModules({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @ImportModule(name=&quot;org.foo.library&quot;, version=&quot;1.0+&quot;)<br />&nbsp;&nbsp; })<br />&nbsp;&nbsp; @MainClass(&quot;org.foo.app.Main&quot;)<br />&nbsp;&nbsp; module org.foo.app;<br /><br />I won't dive into all the details here, but hope the example gives you some idea.<br />&nbsp;<br />2. Incorporates inputs from EDR feedbacks and EG discussions on existing design and new features.<br />&nbsp;<br />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.<br />&nbsp;<br />3. Reorganizes the specification to make the separation between the abstract module system framework and concrete module system implementation explicitly clear.<br />&nbsp;<br />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.<br />&nbsp;<br />4. Validates the specification with the reference implementation.<br />&nbsp;<br />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.&quot;<br /><br />In addition, Ho spoke of a draft specification he has been working on with Sun’s <a href="http://weblogs.java.net/blog/mandychung/" target="_blank" title="Mandy Chung's blog">Mandy Chung</a> to support OSGi bundles in the Java Module System that they have recently made available for the expert group to review and discuss.<br />&nbsp;<br />See Also<br />&nbsp;<br /><a href="http://openjdk.java.net/projects/modules/" target="_blank">OpenJDK Modules Project</a><br />&nbsp;<br /><a href="http://www.jcp.org/en/jsr/detail?id=277" target="_blank">JSR 277</a><br />&nbsp;<br />TS-6185: Modularity in Java™ Platform<br /><br /><a href="http://java.sun.com/javaone/sf/index.jsp" target="_blank" title="JavaOne conference home page">2008 JavaOne Conference</a><br />&nbsp;<br />Janice J. Heiss <br /><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/szGuKxx79J4" height="1" width="1"/>]]></content:encoded><description>Sun’s spec leads for JSR 277, “Java Module System,” gave a technical session on design work on modularity and its effects on Java development and deployment.&amp;nbsp;</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/modularity_in_the_java_platform</feedburner:origLink></item><item><title>Bringing the JavaOne Conference to Second Life</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/0wfYFbN3BcE/bringing_the_javaone_conference_to</link><category>/JavaOne</category><category>applets</category><category>java</category><category>life</category><category>mars</category><category>second</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dananourie</dc:creator><pubDate>Fri, 09 May 2008 09:00:27 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/bringing_the_javaone_conference_to</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Yesterday I popped into <a href="http://www.secondlife.com">Second Life</a> 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 <a href="http://java.sun.com">java.sun.com</a> web site.</p><p>I explained the sessions that I went to:</p><ul><li>Java University</li><li>Applets Reloaded</li><li>Mars Mapping</li></ul><p>&nbsp;</p>
<p>
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:</p><ul><li><a title="Mapping Mars" href="http://java.sun.com/javaone/sf/2008/articles/mappingmars.jsp">Mapping Mars</a> <br /></li><li><a title="New Java-Plug-In" href="http://java.sun.com/javase/downloads/ea/6u10/plugin2/index.jsp">New Java Plug-in</a></li></ul><p>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.</p><p>Dana Nourie, Sun Microsystems<br />
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/0wfYFbN3BcE" height="1" width="1"/>]]></content:encoded><description>Yesterday I popped into &lt;a href="http://www.secondlife.com/"&gt;Second Life&lt;/a&gt;
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 &lt;a href="http://java.sun.com/"&gt;java.sun.com&lt;/a&gt; web site.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/bringing_the_javaone_conference_to</feedburner:origLink></item><item><title>Simon Phipps and Patrick Finch on Open Source</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/xSrOlpM2mes/simon_phipps_and_patrick_finch</link><category>/JavaOne</category><category>foss</category><category>free-and-open-software</category><category>licensing</category><category>open-source</category><category>software-development-model</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">marinasum</dc:creator><pubDate>Thu, 08 May 2008 18:05:54 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/simon_phipps_and_patrick_finch</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>By Marina Sum, staff writer, Sun Developer Network<br /></p><p>&nbsp;</p><p>Sun's Simon
Phipps, chief open source officer, and Patrick Finch, open-source
community coordinator, led an almost packed JavaOne session yesterday.&nbsp;
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.&nbsp; Great job!<br /><br /><b>History</b><br />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.&nbsp; Another notable figure was Bill Joy,
a cofounder of Sun, who &quot;wanted to freely collaborate with people&quot; on
software.&nbsp; In fact, the philosophy behind the BSD license for UNIX is
easy collaboration.<br /><br />Over the years, Sun has become involved in
numerous open-source communities: OpenOffice.org, Project GlassFish,
OpenSPARC, NetBeans, Java technology.&nbsp; &quot;There have been many
opportunities to make mistakes,&quot; said Simon.&nbsp; &quot;Nonetheless, we've done
a lot of excellent work.&quot;<br /><br />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.<br /><br /><b>The Present</b><br />Now
that the Internet has become pervasive, examples of open source abound,
but also controversies, because &quot;open source means different things to
different people.&quot;&nbsp; Still, the movement is spreading globally and
changing the way of doing business, with development centers in China,
India, and South America.&nbsp; Traditionally conservative Gartner predicted
a year ago that by 2012, 70 percent of all software will be based on
open source.&nbsp; That percentage now reads 90!<br /><br />Who are the
open-source developers?&nbsp; They include those who work on kernels; who
build plug-ins and device drivers; who create enterprise applications;
and who integrate systems.&nbsp; Be sure to count the user community,
too.&nbsp; Simon cited Apache as a shining example of &quot;a democratic, highly
organized community of diverse interests with well-stated governance
models.&quot;<br /><b><br />The &quot;Adoption-Led Market&quot;</b><br />The traditional &quot;procurement-driven&quot; 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.&nbsp; Once the solution
stabilizes, deployment follows, leading to demands for support.<br /><br />&quot;Enterprises
want insurance for software; software companies sell insurance in the
form of support and bug fixes.&nbsp; Users then become customers,&quot; explained
Simon.&nbsp; See his <a href="http://blogs.sun.com/webmink/entry/the_adoption_led_market" target="_blank">posting </a>for details.<br /><br />Consequently,
IT managers must decide whether to hire support personnel; purchase
subscriptions for support, training, warranty, and indemnity; or just
risk it out.&nbsp; No matter what the choice, IT now has more control over
on what and when to spend its budget.<br /><br /><b>The Challenges of Licensing, Patents, and Trademarks</b><br />In
quoting Eben Moglen, &quot;A license is the constitution for the community,&quot;
Simon advocated only a limited number of licenses because &quot;license
proliferation limits the ability of software projects to be&nbsp; embraced by communities.&quot;&nbsp; Read his&nbsp;<a target="_blank" href="http://www.sun.com/software/opensource/whitepapers/Sun_Microsystems_OpenSource_Licensing.pdf">white paper</a> (PDF) on this topic.<br /><br />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 &quot;very broken.&quot;&nbsp; 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.<br /><br />Trademark violations are all over, for example, the Mozilla and Firefox logos.&nbsp; Again, might an independent group be the answer?<br /><br /><b>What Next?</b><br />With
corporations &quot;getting up close and personal,&quot; Simon believes that
management should continue to send developers to conferences like
JavaOne and other collaborator and community events.&nbsp; As for open
source, &quot;Jump in!&quot; &quot;The future is ours to shape.&nbsp; The pivotal moment in
IT is open source, which is definitely heading for mainstream,&quot;
concluded Simon.<br /><br /><i><a target="_blank" href="http://www.webmink.net/">The Mink Connection</a></i>, &quot;Simon Phipps's view of the Web,&quot; is chock full of gems on open source.&nbsp; Amazing photographs, too!&nbsp; Have a look.<br /></p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/xSrOlpM2mes" height="1" width="1"/>]]></content:encoded><description>Many thoughtful, practical observations and insights.&lt;br /&gt;</description><enclosure url="http://www.sun.com/software/opensource/whitepapers/Sun_Microsystems_OpenSource_Licensing.pdf" length="226683" type="application/pdf" /><media:content url="http://www.sun.com/software/opensource/whitepapers/Sun_Microsystems_OpenSource_Licensing.pdf" fileSize="226683" type="application/pdf" /><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/simon_phipps_and_patrick_finch</feedburner:origLink></item><item><title>Groovy or JRuby: How To Choose?</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/GoNC3qZMFks/groovy_or_jruby_how_to</link><category>/JavaOne</category><category>groovy</category><category>java-one</category><category>java-one2008</category><category>javaone</category><category>javaone2008</category><category>jruby</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">rikart</dc:creator><pubDate>Thu, 08 May 2008 13:05:08 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/groovy_or_jruby_how_to</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Rick Palkovic,<br />Sun Microsystems Staff 
Writer</p><p>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, &quot;Comparing JRuby and Groovy,&quot; TS-6050 provided valuable insights.<br /><br />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.&nbsp; 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.<br /><br />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.<br /><br />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, <font face="courier new,courier,monospace">null </font>is always null. Groovy adds a &quot;<font face="courier new,courier,monospace">?.</font>&quot; operator to help avoid null pointer exceptions. For example, the expression<br /><br /><font face="courier new,courier,monospace">person?.address?.street</font><br /><br />tests <font face="courier new,courier,monospace">person </font>and <font face="courier new,courier,monospace">address </font>for nullness, and will only execute the line of code if both <font face="courier new,courier,monospace">person</font> and <font face="courier new,courier,monospace">address</font> are not null.<br /><br />In JRuby, <font face="courier new,courier,monospace">nil</font> is an instance of <font face="courier new,courier,monospace">NilClass</font>. 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 <font face="courier new,courier,monospace">nil </font>is an object, you can call methods on it. Ford then presented the following lines of JRuby code, which define a <font face="courier new,courier,monospace">blank?</font> method and add it to the String class.<br /><br /><font face="courier new,courier,monospace">class String<br />&nbsp; def blank?<br />&nbsp;&nbsp;&nbsp;&nbsp; empty? || strip.empty?<br />&nbsp; end<br />end</font><br /></p><p>JRuby supports open classes, and when it looks on its class path, it sees that a <font face="courier new,courier,monospace">String </font>class is already there. The code reopens that String class and adds the <font face="courier new,courier,monospace">blank?</font> 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 <font face="courier new,courier,monospace">blank?</font> method to create a <font face="courier new,courier,monospace">test_blank</font> method:<br /><br /><font face="courier new,courier,monospace">def test_blank<br />&nbsp; assert &quot;&quot;.blank?<br />&nbsp; assert &quot; &quot;.blank?<br />&nbsp; assert nil.to_s.blank?<br />&nbsp; assert ! &quot;x:.blank?<br />end</font><br /></p><p>Here, the <font face="courier new,courier,monospace">test_blank</font> method operates on the String object itself, and if it is empty --&nbsp; or if you strip all the spaces away and it is empty -- then the String instance must be blank.<br /><br />Interestingly, if you test this code you can also assert that <font face="courier new,courier,monospace">nil.to_s.blank?</font> is blank. Nil is an object in Ruby, so you can call methods on it, including <font face="courier new,courier,monospace">to_s</font> (convert to String). And, as it turns out, <font face="courier new,courier,monospace">nil.to_s</font> is empty -- which is exactly what you would expect.<br /><br />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 <a href="http://www.nealford.com" target="_blank">nealford.com</a>.<br /><br />For more information on scripting languages, see the <a href="http://java.sun.com/developer/tehnicalArticles/scripting/">technical articles and tips</a> on java.sun.com.
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/GoNC3qZMFks" height="1" width="1"/>]]></content:encoded><description>Groovy was designed to bring modern semantics to the Java bytecode. JRuby was designed to bring the richness of the Ruby language to the Java platform. How to choose?</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/groovy_or_jruby_how_to</feedburner:origLink></item><item><title>The NetBeans Ruby IDE: You Thought Rails Development Was Fun Before</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/z51v3fdSXx8/the_netbeans_ruby_ide_you</link><category>/JavaOne</category><category>javaone</category><category>jruby</category><category>netbeans</category><category>rails</category><category>ruby</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">edort</dc:creator><pubDate>Thu, 08 May 2008 09:10:04 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/the_netbeans_ruby_ide_you</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>by <a href="http://java.sun.com/features/authors.html#ort">Ed Ort</a>, Sun Microsystems Staff Writer</p>

<p>
One of the powerful features added to the NetBeans IDE 6 was 
<a target="_blank" href="http://www.netbeans.org/features/ruby/index.html">support for Ruby, JRuby, and Ruby on Rails</a>. The 
<a target="_blank" href="http://www.ruby-lang.org/en/">Ruby programming language</a> 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 &quot;Matz&quot;, intended the language not only to be easy to use and highly 
productive, but also fun. 
</p>

<p>
<a target="_blank" href="http://jruby.codehaus.org/">JRuby</a> 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.
</p>

<p>
<a target="_blank" href="http://www.rubyonrails.org/">Ruby on Rails</a>, 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. 
</p>

<p>
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. 
</p>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td width="30%" valign="center">
<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" alt="Tor Norbye and Brian Leonard" src="http://blogs.sun.com/javaone2008/resource/NorbyeLeonard.JPG" />
<!-- End Figure -->
</td>
<td width="70%" valign="center">
<p>
In the technical session titled &quot;The NetBeans Ruby IDE: You Thought Rails Development Was Fun Before,&quot; 
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.
</p>
</td>
</tr></tbody>
</table>

<p>
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. 
</p>

<ul>
<li>Project management. NetBeans allows developers to create a Rails project from existing files or to
create a project &quot;from scratch.&quot; 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.</li>
<br />
<li>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.
</li>
<br />
<li>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.
</li>
<br />
<li>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.</li>
<br />
<li>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.
</li>
<br />
<li>Quickfixes. The editor checks for many common programming mistakes, providing hints for fixes. 
It also identifies deprecated Rails constructs and suggests replacements.
</li>
<br />
<li>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.  
</li>
<br />
<li>
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. 
</li>
<br />
<li>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.
</li>
<br />
<li>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.
</li>
<br />
<li>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. 
</li>
</ul>

<p>
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.
</p>

<p>
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.
</p>

<p>
Despite the application execution problems, this was an impressive display of Rails support in NetBeans.
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/z51v3fdSXx8" height="1" width="1"/>]]></content:encoded><description>In the technical session titled &amp;quot;The NetBeans Ruby IDE: You Thought Rails Development Was Fun Before,&amp;quot; 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. In the process, they demonstrated many of the features in the IDE that make it an attractive tool for Rails development.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/the_netbeans_ruby_ide_you</feedburner:origLink></item><item><title>OpenSSO Showcased and Demo'd</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/yuRVLCWpIwA/opensso_showcased_and_demo_d</link><category>/JavaOne</category><category>authentication</category><category>federation</category><category>fedlets</category><category>opensso</category><category>single-sign-on</category><category>sun-federated-access-manager</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">marinasum</dc:creator><pubDate>Wed, 07 May 2008 22:20:36 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/opensso_showcased_and_demo_d</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>By Marina Sum, staff writer, Sun Developer Network<br /></p><p>Late afternoon this past Monday, Sun identity architect Pat Patterson, senior product line manager Daniel Raskin, and product manager Nick Wooler took the podium at CommunityOne on OpenSSO.&nbsp; In particular, they described the runtime scenario; explained Fedlets, a shining capability in the upcoming Sun Federated Access Manager, OpenSSO's twin; and demo'd the process of deploying applications and configuring OpenSSO for federation.</p><p>It was fascinating to learn about the latest model of federation adopted by many enterprises: outsourcing of employee email and calendars to Google, for example, and the attendant needs for authentication across company borders.&nbsp; The savvy speakers had the details down pat and took many Q&amp;As at and after the session.&nbsp; I wondered if Pat ran out of business cards?<br /><br />Here's a <a target="_blank" href="http://java.sun.com/javaone/sf/2008/articles/openSSO.jsp">recap of the session</a>.&nbsp; AMIS Technology also posted a <a target="_blank" href="http://technology.amis.nl/blog/?p=3129">review</a>, complete with a screen shot.<br /></p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/yuRVLCWpIwA" height="1" width="1"/>]]></content:encoded><description>Single sign-on and federation across enterprises made easy.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/opensso_showcased_and_demo_d</feedburner:origLink></item><item><title>Sun General Technical Session: Java-Centricity -- Java Technology at the Hub of Your Digital Life</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/FmEfWlu12MU/sun_general_technical_session_java</link><category>/JavaOne</category><category>ee</category><category>java</category><category>javafx</category><category>javaone</category><category>ria</category><category>se</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">edort</dc:creator><pubDate>Thu, 08 May 2008 10:39:44 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/sun_general_technical_session_java</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>by <a href="http://java.sun.com/features/authors.html#ort">Ed Ort</a>, Sun Microsystems Staff Writer</p>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td width="30%" valign="center">
<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" alt="Bob Brewin" src="http://blogs.sun.com/javaone2008/resource/BobBrewin.JPG" />
<!-- End Figure -->
</td>
<td width="70%" valign="center">
<p>In kicking off this year's session titled &quot;Java-Centricity: Java Technology at the Hub of Your Digital Life,&quot; Sun Distinguished Engineer and chief technology officer for software, Bob Brewin, focused on rich internet application (RIAs). He noted that RIAs are evolving. &quot;RIAs are typically associated with things that are in a browser only. And if you take a look at where we're going, the future [of RIAs] is about every device connected to the network.&quot; Brewin went on to say that not only are RIAs changing, but the rich Internet -- the expanding collection of connected devices, such as Playstation 3s, TVs, MP3 players, mobile devices, and in-dash navigation systems -- are changing too. All of these devices are starting to use the same protocols to talk to the network as well as to each other.
</p>
</td>
</tr></tbody>
</table>


<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td width="30%" valign="top">
<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" src="http://blogs.sun.com/javaone2008/resource/JavaFX.JPG" alt="JavaFX" />
<!-- End Figure -->
</td>
<td width="70%" valign="top">
<p>
Noting the central role Java technology has played in RIAs, Brewin said that Java has been there all along. However, there's been a gap. &quot;While Java is the ideal deployment platform, it hasn't been ideal for content authors and designers.&quot; Enter <a href="http://javafx.com">JavaFX technology</a>, a development environment, runtime, and tool set based on Java technology, targeted to meet the needs of content creators and designers. 
</p>
</td>
</tr></tbody>
</table>

<p>To illustrate the power of JavaFX, this session showed off a number of cool JavaFX-powered demos. Of course, the foundation of JavaFX is Java itself, so Brewin first handed the microphone over to Roberto Chinnici, the platform lead for Java EE, to highlight what's new in that platform. Following Chinnici, Danny Coward, chief architect of Sun's Client Software, came onstage to highlight what's new in the Java SE platform. The last segment of the session highlighted several cool JavaFX-based demos.
</p>

<p><b>What's New in Java EE?</b></p>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td width="30%" valign="center">
<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" alt="Roberto Chinnici" src="http://blogs.sun.com/javaone2008/resource/RobertoChinnici.JPG" />
<!-- End Figure -->
</td>
<td width="70%" valign="top">
<p>Chinnici started his tour of the <a href="http://java.sun.com/javaee/">Java EE platform</a> by looking at the major objective of the platform's current release, Java EE 5: ease of development. Features such as annotations dramatically simplified things for developers by reducing (and often eliminating) the need to code deployment descriptors. Java EE 5 has been very successful. Chinnici said that the Java EE 5 SDK has been downloaded over 3 million times either standalone or in conjunction with the NetBeans IDE.
</p>
</td>
</tr></tbody>
</table>

<p>The good news is that the simplification theme will continue in the next release of the platform, Java EE 6, with features such as support for RESTful web services and a more extensive use of annotations across all the web APIs. Java EE 6 will also focus on rightsizing and flexibility.
</p>

<p>Rightsizing</p>

<p>By <i>rightsizing</i>, Chinnici meant reducing the ever-increasing size of the Java EE platform to something more manageable. This involves the introduction of profiles, that is, various types of Java EE technology packages, each one designed for a specific use. For example, a web profile would include Java EE services targeted to web developers. A TELCO profile would include services designed to meet the needs of the telecommunications industry. In addition, rightsizing will involve pruning of some technologies, such as JAX-RPC or EJB 2.1, that have been supplanted by newer technologies. 
</p>

<p>Flexibility</p>

<p>Java EE 6 will also be a lot more flexible by adding extensibility points, making it easier to incorporate the large number of available open-source frameworks and libraries. This will make it easier for people to add technologies or other facilities on top of the Java EE platform. Chinnici pointed out that extensibility in the platform also means treating scripting languages such as Ruby as first class citizens.
</p>

<p>Modularity</p>

<p>Chinnici said that rightsizing and flexibility ultimately lead to modularity. &quot;Runtimes, applications servers, and even Java SE are becoming more modular.&quot; A good example of that is <a target="_blank" href="https://glassfish.dev.java.net/downloads/v3-techPreview-1.html">GlassFish Application Server v3</a>, a fully modular and extensible application server that is based on the OSGI module framework. GlassFish v3 is also open-source and conforms to the Java EE platform. A technology preview release of GlassFish v3 is available. In fact, a second version of the technology preview was just released. To demonstrate the modularity of GlassFish v3, Chinnici called to the stage GlassFish Architect, Jerome Dochez. Dochez demonstrated how modularity makes GlassFish v3 much smaller than previous versions -- as small as 98K bytes -- and gives it a startup time of only one second. He also showed how easy it is to add an extension to the application server, one that immediately participates in GlassFish services such as monitoring.
</p>

<p>Multi-Language Support</p>

<p>In another demo, Sun technology evangelist for web services, Arun Gupta (the &quot;GlassFish guy&quot;), and Sun Principal Engineer, Tor Norbye (the &quot;NetBeans guy&quot;), demonstrated GlassFish v3's support for multiple dynamic languages and frameworks such as Ruby, Groovy, Rails, and Grails. They showed a multi-player tic-tac-toe game developed in the NetBeans IDE and deployed to GlassFish v3. First they ran a Ruby on Rails version of the game. Then they ran a Groovy on Grails version. Both ran identically.
</p>

<p><b>What's New in Java SE?</b></p>

<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td width="30%" valign="center">
<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" alt="DannyCoward" src="http://blogs.sun.com/javaone2008/resource/DannyCoward.JPG" />
<!-- End Figure -->
</td>
<td width="70%" valign="top">
<p>Next, it was Coward's turn to tell the <a href="http://java.sun.com/javase/">Java SE</a> platform story. Coward started by focusing on the strength of the current version, the Java SE 6 platform. He noted that there are currently over 7 million Java developers. Each month, on average, there are 750,000 downloads of the Java Development Kit (JDK) and 48 million downloads of the Java Runtime Environment (JRE).
</p>
</td>
</tr></tbody>
</table>

<p>Now Part of the Ubuntu Package</p>

<p>In a significant announcement for Linux developers, Coward announced that the JDK is now a core package in the Ubuntu distribution of Linux. With this packaging, Linux developers no longer need to manually download anything from Sun. Coward said &quot;it's just there.&quot;
</p>

<p>Modularity and Multiple Language Support Here Too</p>

<p>The Java SE 7 platform release is scheduled for mid-2009. Like Java EE 6, Java SE 7 will be highly modular. Coward announced a new JSR that will specify the interoperability between the module system in Java SE 7 and OSGi bundling system. This will allow developers who create applications that use OSGi bundles to run them unmodified in JDK 7.
</p>

<p>Java SE 7 will also support a raft of dynamic language such as JRuby, JavaScript, and JavaFX Script. Coward said that an active community of Java SE 6 users has already brought over 200 languages to run on the virtual machine (VM). In Java SE 7, work is ongoing to make it easier to write interpreters and language compilers and to speed up the execution of other languages.
</p>

<p>Applets Are Back!</p>

<p>For a long time, applets have taken a back seat to web technologies such as JavaServer Pages (JSP) technology. However, Java SE has given new life to applets. The runtime for the latest update to Java SE, Java SE 6 Update 10 (also known as the consumer JRE), currently available as a Beta release, enables applets to run without waiting for the whole JRE to download. Also, Update 10's JRE is enabled for JavaFX. To underscore the Java FX tie-in, Sun engineers Ken Russell and Jasper Potts demonstrated some attractive applets coded in JavaFX Script and running on top of the Java SE 6 Update 10 JRE. What was particularly impressive is that these applets can be decoupled from the browser and seamlessly moved to the desktop.</p>

<p><b>Cool Java FX Demos</b></p>

<p>Demos in the last part of the session underscored the strengths and potential of JavaFX technology. But before the demos, Brewin took the stage with Bill Joll, CEO of <a target="_blank" href="http://www.on2.com/">On2 Technologies</a> to announce that Sun and On2 have signed an agreement to incorporate On2's video codec into the Java runtime.
</p>

<p>Here's a brief summary of the JavaFX demos:

</p><ul>
<li>Parleys.com. This web-based Rich Internet Application created by the Belgian Java Users Group (BeJUG), is an excellent learning platform. Among other things, it presents videos of sessions recorded at the BeJUG-sponsored conference JavaPolis. Steffen Janssen, founder of the BeJUG and JavaPolis, demonstrated a beta version of a new JavaFX-based Parleys.com, showing off an animated user interface. 
</li>
<br />
<li>LiveConnect. Sun engineer Josh Marinacci wrote this social mashup application. Marinacci demonstrated how simple it was to code LiveConnect, an application that brings together social feeds, media, and messages in a single rich graphical interface. And because it links into Java libraries, JavaFX makes it easy to add services to an application like this.
</li>
<br />
<li> JavaFX Collaboration. JavaFX technology promises to bring the world of the designer and developer closer together. Sun engineers Martin Brehofsky and Soraya Younossi demonstrated an implementation of this collaborative vision. Taking the designer role, Younossi used tools such as Adobe Photoshop and Illustrator to design the application's user interface. Then she was able to easily pass the components of the design to Brehofsky, who incorporated those assets into a JavaFX-based development tool. It looked like a very smooth productive arrangement, with no need for the designer to learn the development tool or the developer to learn design tools.
</li>
<br />
<li>
JavaFX Moon Tanks. Running a multi-player game called Moon Tanks, Sun engineers Chris Oliver -- the originator of F3, which morphed into JavaFX technology -- and Anthony Rogers demonstrated some of the advanced animation, audio, and video effects that developers can produce relatively easily using JavaFX. Each player has a set of tanks that can fire projectiles at an opponent's tanks. What makes this a &quot;moon&quot; tanks game is that the tanks move around a geodesic dome-like moon.

<p>
<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" src="http://blogs.sun.com/javaone2008/resource/MoonTanks.JPG" alt="Moon Tanks" />
<!-- End Figure -->
</p>
</li>
</ul>

<p><b>Final Thoughts</b></p>

<p>I left this session feeling good about where Java technology is and where it's headed. I'm also looking forward to some of the new tools and features that will be unfolding under the JavaFX brand. Indeed, Java technology is and will continue to be the hub of everyone's digital life. 
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/FmEfWlu12MU" height="1" width="1"/>]]></content:encoded><description>This year's technical general session hosted by Sun Distinguished Engineer and chief technology officer for software, Bob Brewin, highlighted what's new in the Java EE and Java SE platforms. It was also spiced up by a variety of cool JavaFX-driven demos.&lt;br /&gt;</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/sun_general_technical_session_java</feedburner:origLink></item><item><title>Flooring the Accelerator</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/u1w3FKDt_7g/flooring_the_accelerator</link><category>/JavaOne</category><category>barr</category><category>java-one</category><category>java-one2008</category><category>javaone</category><category>javaone2008</category><category>mobile</category><category>open-source</category><category>standards</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">rikart</dc:creator><pubDate>Wed, 07 May 2008 07:34:05 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/flooring_the_accelerator</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Flooring the Accelerator:<br />How Open Source Is Reshaping an Industry<br /><br />by Rick Palkovic, Sun Microsystems Staff Writer<br /><br /><br />I thought I'd take a break on Tuesday from all the code-intensive technical sessions and have a look at the big picture.&nbsp; So, I strolled into TS-5606, &quot;Flooring the Accelerator: How Open Source Is Reshaping an Industry.&quot; &nbsp;<br /><br />As I reclined my seat, figuratively speaking, and looked down from 10,000 feet, I could see the whole communications software landscape.&nbsp; And who better to pilot the flight than presenter Terrence Barr, senior technologist and community ambassador to the mobile and embedded community? Barr took us on a tour of the mobile communications industry, which is being radically changed by open source software and standards.<br /></p><p><b>The Conflict</b><br /><br />The conflict that is producing the move to open source is between the &quot;walled garden&quot; approach, which uses proprietary software and services to produce scarcity and product demand, and the open source and standards approach, which makes software a commodity and makes it tough to add value.<br /><br />According to Barr, there really is no choice.&nbsp; Where consumers have an open source alternative, they invariably take it, and the proprietary approach can never recover the market.&nbsp; As an example, he cited AOL, which tried to contain the user experience in a subspace of the internet.&nbsp; Users demanded full access to the broader internet, however, and AOL was required to break down the garden walls and set its users free.<br /><br />As another example, Barr described the attempts to limit recorded music copying with digital rights managment (DRM).&nbsp; &quot;Lead users&quot; -- aggressive consumers who blur the line with developers -- demanded the freedom to copy the files they owned, and the MP3 format eventually conquered proprietary encryptions.&nbsp; Consumers are the ones who lead the open source revolution, abandoning proprietary suppliers when they do not fill consumer needs.<br /><br />But these examples are from the desktop software world, and Barr's expertise is in mobile communications.&nbsp; This industry is in a great deal of flux at the moment, and the adoption of open source software is complicated by several factors.</p><p><b>Open Source and Profitability</b><br /></p><p>The technology stack supporting mobile devices is more complex than the one for desktop computing, and the capital investment in infrastructure is high.&nbsp; Moreover, the demands for reliability and security are higher than in desktop computing.&nbsp; The open source development model of continuous beta release doesn't produce the bullet-proof quality required for mobile communications.&nbsp; And then there are the myriad devices, each with their own special features and peculiarities, as well as the sheer volume of devices deployed -- billions and counting.<br /><br />Barr touched on monetization in a mobile industry that is trending towards open software.&nbsp; Proprietary products produce high profits at low volumes. Open-source products quickly become high-volume commodities.&nbsp; Barr noted that the largest companies typically sell commodities at low profit per item, but still are very profitable overall.<br /><br />To differentiate themselves and profit, open source companies must innovate, sell intangibles, build side channels for content add-ons, and tune the overall user experience to gratify consumers.&nbsp; The challenge for software vendors in the mobile space is to make the user experience as comfortably similar as possible on many dissimilar devices.</p><p><b>Open Source: Problem or Solution?</b><br /><br />So, is the move to open source/open standards the solution to the problem of disruption in mobile communications, or did it cause the problem? Neither, actually, if Barr is correct -- it is merely a symptom of the changes being demanded by consumers who want more options, and developers who want to write code to open standards.<br /><br />With the shift to open source and open standards, people's expectations have changed. There is no going back to the old proprietary model. Even naive consumers know that an open source company offers them more choices, and that its products integrate better with others. It is still not clear how the mobile market will fit into the overall IT market, but clearly old models of doing business are coming undone. For now, open standards are more important to mobile communication than open source, since only open standards can simplify the technology stack.<br /><br />For more ideas from Terrence Barr, see his <a href="http://weblogs.java.net/blog/terrencebarr/">blog.</a>
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/u1w3FKDt_7g" height="1" width="1"/>]]></content:encoded><description>With the shift to open source and open standards, people's expectations
have changed. There is no going back to the old proprietary model.&lt;br /&gt;</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/flooring_the_accelerator</feedburner:origLink></item><item><title>Applets Reloaded</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/8hB9oPtLxpQ/applets_reloaded</link><category>/JavaOne</category><category>applets</category><category>java-se</category><category>jnlp</category><category>plug-in</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dananourie</dc:creator><pubDate>Tue, 06 May 2008 14:29:42 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/applets_reloaded</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Applets Reloaded:<br />Introducing the Next-Generation<br />Java Plug-In Technology </p><p>by Dana Nourie, Sun Microsystems, Staff Writer</p><p>If you were frustrated with applets in the past, or completely given up on them, it's time to take another look at the new Java Plug-In technology. Now you can reap the following advantages from the rewritten support:</p><ul><li>Improved reliability</li><li>Improved user experience</li><li>Applets launch in the background</li><li>Built-in JNLP support</li><li>Per-applet command line arguments</li><li>Heap size, Java 2D™ API acceleration options...</li><li>Improved Java/JavaScript programming language integration</li><li>Improved Windows Vista support</li><li>Signed applets now work correctly in Protected Mode Internet Explorer</li></ul><p>The next-generation Java
Plug-In, new in Java SE 6 Update 10, provides powerful new
capabilities to applets in the web browser, while improving the
overall reliability and functionality of applets in a backward-compatible manner. </p><p>

The most significant new feature of the next-generation Java Plug-In
is built-in support for launching applets from JNLP files. Using the
JNLP file format as the applet descriptor allows applets to instantly
reuse JNLP extensions previously written for Java Web Start
applications, and significantly expands the capabilities of applets in
many other ways.</p><p>Applets no longer execute in a Java Virtual Machine (JVM) inside the web browser. Instead, a separate JVM machine process is launched to execute the applets. Applets launch directly from JNLP files, make use of the <br />same descriptor used by Java Web Start software, and allow more powerful parameters than classic “archive”, “code”, “cache_archive.”</p><p>The new plug-in provides:</p><ul><li>access to advanced JNLP extensions previously available only to Java Web Start software applications. A small set was previously available, with restrictions, and these restrictions have now been removed.</li><li>access to the JNLP APIs from applets</li><li>PersistenceService, DownloadService</li><li>control over heap size, command-line arguments, JRE version selection, and auto-download. You have the same capabilities as Java Web Start software for applications</li></ul><p>Now, you use something like the following on the web page:</p><p>&lt;applet width=”500” height=”500”&gt;<br />&nbsp; &lt;param name=”jnlp_href” value=”my_applet.jnlp”&gt;<br />&lt;/applet&gt;</p><p>By default, only one JVM machine is launched, but you have the opportunity to launch more than one JVM machine, and you get support per-applet command-line arguments, so you can affect heap size or other requests. </p><p>The applet behaves exactly like an application started with Java Web Start software. jnlp_href parameter bridges between the web page and the JNLP description of the applet. Applet tag and JNLP file have overlapping mechanisms for specifying things like the width and height.</p><p>Historically, the maximum heap
     size that could be specified for applets via the Java Control
     Panel has been limited. This limitation is fixed in the new Java
     Plug-In; applets can now utilize as much heap space as
     command-line applications.&nbsp;</p><p>An applet may force itself into its own JVM machine instance separate from all other applets if you like:<br /><br />&nbsp;&nbsp;&nbsp; &lt;param name=”separate_jvm” value=”true” /&gt;<br /><br />This is useful when migrating certain kinds of desktop applications to work in the web browser.</p><p>You can also run a particular applet on a particular version of the JRE, as shown below:<br /><br />&lt;j2se version=”1.4+” ...&gt;<br />&lt;j2se version=”1.5*” ...&gt;<br /><br />This is useful for enterprises that want to QA an applet against a particular JRE version, or it supersedes earlier version selection mechanisms like CLSID in Internet Explorer. If a very old JRE version is requested, restrictions are enforced the user will be prompted if applet attempts to load unsigned code. </p><p>Note that since JNLP support is first available in Java Plug-In in Java Platform, Standard Edition 6 (Java SE 6) Update 10, version specifications like “1.4+” are basically meaningless. This will have more meaning when “1.7+” is needed.</p><p>In addition, you can use the &lt;update&gt; tag in the JNLP file to drastically reduce startup time for second and subsequent launches:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;update check=”background”&gt;&nbsp;</p><p>In this case, it'll use the version of the applet that is already in the cache, and will download updated versions of the applet in the background. At the next launch the new version is picked up.</p><p>Lastly, it's much easier to maintain backwards compatibility, to create your own corporate logo or animated image for loading time, as well as controlling background colors and overall appearance, there is powerful Java/JavaScript integration, and support for access to Web Services.</p><p>Applets are mini applications that run anywhere, in and out of the browser. </p><p>For more information, see the <a href="https://jdk6.dev.java.net/plugin2/">Release Notes Next-Generation Plug-In</a><br /></p><p><br /></p><p>&nbsp;</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/8hB9oPtLxpQ" height="1" width="1"/>]]></content:encoded><description>If you were frustrated with applets in the past, or completely given up
on them, it's time to take another look at the new Java Plug-In
technology. Now you can reap the following advantages from the
rewritten support . . .</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/applets_reloaded</feedburner:origLink></item><item><title>A Rundown on OpenDS</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/ZPO7okyPGTo/a_rundown_on_opends</link><category>/JavaOne</category><category>directory-server</category><category>extensions</category><category>ldap</category><category>opends</category><category>opends.org</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">marinasum</dc:creator><pubDate>Wed, 11 Jun 2008 10:05:29 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/a_rundown_on_opends</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p style="margin-bottom: 0in;"><font size="2">By Marina Sum, staff writer, Sun Developer Network</font></p> 
  <p> </p> 
  <p style="margin-bottom: 0in;">Ludovic Poitou, community lead for <a href="http://opends.org">OpenDS</a>, Sun's open-source
project for a next-generation directory service; and Jim Yang,
project lead for <a href="http://getpenrose.com">Penrose</a>,
a Java technology-based directory server, took the podium at
CommunityOne earlier today on the topic, “Getting Started on
OpenDS.”  In clear, concise terms, Ludovic described the goals and
status of OpenDS, its efficient installation process, and
extensibility.  The second part of the session, presented by Jim,
covered how Penrose took advantage of OpenDS in its development.<br /><br /><b>Introducing OpenDS</b><br />OpenDS was launched in 2006 for the
purpose of developing in the Java programming language an LDAP
version 3-based directory service. Currently, the community boasts 38
committers (all from Sun), of whom are 15 developers and nine QA engineers, all working full time on the project; the other committers
are part-time. In addition, there are 14 contributors and 220 users.</p> 
  <p style="margin-bottom: 0in;">The goals are several fold:<br /></p> 
  <ul> 
    <li>Robust services for
accessing the data and consolidating data access.</li> 
  </ul> 
  <ul> 
    <li>Ease of installation, use,
and management.</li> 
  </ul> 
  <p style="margin-bottom: 0in;"> </p> 
  <ul> 
    <li>Embeddability, default
implementations, and extensibility with service APIs.</li> 
  </ul> 
  <ul> 
    <li>Superior scalability and high
performance in read-write operations<br /></li> 
  </ul> 
  <p style="margin-bottom: 0in;">OpenDS 1.0 is in the works and will be
available soon.  Not only does it comply with LDAP version 3 with
support of standard and implementation extensions, it's also
configurable and extensible, complete with comprehensive
documentation.  Tools are in place for deployment, monitoring, and
interactions with the server, with unit tests also in open source.<br /><br /><b>Installing OpenDS</b><br />According to Ludovic, you can install
OpenDS in only three minutes.  Just follow the pointer at <font size="2" face="courier new,courier,monospace">opends.org</font> and run through the steps in an
intuitive wizard to define the settings: server path, host name, port
number, configuration of secure access, directory data, and so forth.
 When installation is complete, you can perform administration tasks,
such as starting or stopping the server, from either the command line
or in a GUI called the Status Panel.<br /><br /><b>Extending OpenDS</b><br />Ludovic encourages everyone to make the
best of OpenDS, for example--<br /></p> 
  <ul> 
    <li>Extend the LDAP
schema by adding files to the <font size="2" face="courier new,courier,monospace">schema</font>
directory or add LDAP schema attribute types or object classes for
LDAP.<br /></li> 
  </ul> 
  <ul> 
    <li>Intercept LDAP operations and
processes through the <font size="2" face="courier new,courier,monospace">DirectoryServerPlugin </font>API, which performs two tasks:<br /></li> 
  </ul> 
  <blockquote> 
    <ul> 
      <li>Provide entry
points in LDAP operations, such as preparsing and preoperations.</li> 
    </ul> 
  </blockquote> 
  <blockquote> 
    <ul> 
      <li>Define business constraints
or LDAP extensions, a real-life example being
Penrose.<br /></li> 
    </ul> 
  </blockquote> 
  <p style="margin-bottom: 0in;"><b>Building Service Interfaces 
for  OpenDS</b><br />Examples of service interfaces abound: <font size="2" face="courier new,courier,monospace">AccessControlHandler</font>, <font size="2" face="courier new,courier,monospace">ExtendedOperationHandler</font>, <font size="2" face="courier new,courier,monospace">AlertHandler</font>, security interfaces. Not all
of them are public yet.  Feel free to create interfaces of your own
or customize the existing ones.<br /><br /><b>Introducing Penrose</b><br />Penrose, an open-source virtual
directory service, does <b>not </b>manage its own data. 
Rather, it's a collection of mappings through two main
infrastructures:<br /></p> 
  <ul> 
    <li>A Java background,
which ensures interoperability between Penrose and other LDAP
providers.</li> 
  </ul> 
  <ul> 
    <li>Metadata management, which
enables mapping between data models.<br /></li> 
  </ul> 
  <p style="margin-bottom: 0in;">Penrose chose OpenDS as its default
provider for the latter's thorough testing and detailed
documentation.  In an intuitive GUI, Penrose Studio, you can create
connections to the database, map data (for example, a MySQL entry to
an LDAP entry), manipulate data, and deploy to the server.<br /><br />Conveniently, you can run Penrose in
two modes: as an independent server or with OpenDS as a stand-alone
server with Penrose as a plug-in.  Many deployments also apply,
according you much flexibility with your setup.<br /><br />Before checking out the code in detail,
have a look at the <a href="http://docs.safehaus.org/display/PENROSE20/Penrose+Server+Developer+Guide"><i>Penrose
Server Developer Guide</i></a>.<br /></p><hr width="100%" size="2" /> 
  <p>A succinct, informative session!  From
the audience came a question, “What are the applications on which
you test OpenDS?”  Ludovic responded: “We test with our own
tools—LDAP certification tools, for example.  But remember that the
community is testing for us, which is one of the many advantages of
open source.  We count on our members for feedback and suggestions.”</p> 
  <p>See also the <a href="https://www.opends.org/wiki/attach/OpenDSPresentations/OpenDS_CommunityOne08.pdf">presentation</a>.<br /><br /><br /><br /></p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/ZPO7okyPGTo" height="1" width="1"/>]]></content:encoded><description>Ludovic Poitou, community lead for OpenDS; and Jim Yang, project lead for Penrose, a Java technology-based directory server, presented at CommunityOne on the topic, &amp;quot;Getting Started on OpenDS.”&amp;nbsp; This recap summarizes the goals, status, installation, and extensibility of OpenDS,&amp;nbsp; also the infrastructure of Penrose, whose default provider is OpenDS.&lt;br /&gt;</description><enclosure url="https://www.opends.org/wiki/attach/OpenDSPresentations/OpenDS_CommunityOne08.pdf" length="1920031" type="application/pdf" /><media:content url="https://www.opends.org/wiki/attach/OpenDSPresentations/OpenDS_CommunityOne08.pdf" fileSize="1920031" type="application/pdf" /><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/a_rundown_on_opends</feedburner:origLink></item><item><title>CommunityOne: Bringing Communities Together</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/hMw22Qzl4Vs/communityone_bringing_communities_together</link><category>/JavaOne</category><category>community</category><category>communityone</category><category>javaone</category><category>open</category><category>opensolaris</category><category>source</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">edort</dc:creator><pubDate>Tue, 06 May 2008 08:05:45 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/communityone_bringing_communities_together</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>by <a href="http://java.sun.com/features/authors.html#ort">Ed Ort</a>, Sun Microsystems Staff Writer</p>

<p>
Last year saw the birth of <a href="http://developers.sun.com/events/communityone/">CommunityOne </a>
a free, full-day event that preceded the 2007 JavaOne Conference and set the tone
for what would be a full week of presentations, demonstrations, and knowledge sharing by and for the open-source community. 
Celebrating its second appearance, this year's CommunityOne was even bigger and better than last year's version. 
</p>

<p>
The event, sponsored by Sun, brought together a large and diverse gathering of many of the leading-edge open-source 
communities such as the Apache Software Foundation, Eclipse, Grails, NetBeans, ODF Alliance, OpenSUSE, OpenID, 
OpenOffice.org, OpenSolaris, Python, Ruby, Ubuntu, and others. This was more than triple the number of communities 
attending last year's CommunityOne event. &quot;Large and diverse&quot; also characterized the agenda.
CommunityOne offered over 70 technical sessions in 12 tracks ranging from Chip Multithreading/OpenSPARC to Web and 
Application Servers -- all highlighting the challenges and successes of community-based, open-source projects. Running 
parallel to the 12 tracks were a RedMonk unconference that offered sessions conceived of and run in an open, 
participatory, community-driven style (these are also called barcamps in hacker-speak), and another
unconference called StartUp Camp that focused on getting entrepreneurs in  startups to share ideas. As many 
as 500 entrepreneurs participated. Over 3000 people attended the CommunityOne event, including students 
from 80 countries.
</p>

<p><b>Keynote: Innovate, Collaborate, Integrate</b></p>

<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" alt="Ian Murdock" src="http://blogs.sun.com/javaone2008/resource/IanMurdock.JPG" />
Ian Murdock
<!-- End Figure -->

<p>
Sun's vice president of developer and community marketing, Ian Murdock, started the day with a keynote session that 
set the theme for the day: Innovate, Collaborate, and Integrate. Clearly, the community, or rather communities, have 
reshaped the computer industry and will continue to do so in new and innovative ways. To underscore
the power of collaboration, Sun CEO and president Jonathan Schwartz, in a brief appearance onstage, asked the 
audience to think of the Amazon River. &quot;You can look at the Amazon as this enormous powerful force of nature,
but in truth it's not one river. It's the composition of 10,000 smaller rivers, each of them lending their own
capacity, volume, and force of energy to something much bigger.&quot;
</p>

<p>
But collaboration, especially if it involves many contributors, does have its downside. Customers want to 
tap into the power of the community, but don't want to deal with the complexity of technology that comes from 
multiple sources. This has spurred the rise of aggregators and integrators such as Dell and Red Hat. Murdock
said these companies provide a valuable role, &quot;They deliver the complex but powerful world of community 
technology to the market in the form that the market can digest.&quot; But this service to customers presents
a challenge to contributors, Murdock  framed the challenge as a series of questions. &quot;What's the role of the
small independent developer in this world? Are we going back to monolithic structure in the pursuit of simplicity?
What's the right balance between integration and choice and flexibility?&quot;
</p>

<p>
Murdock made the point that open source and the communities behind it are the core of Sun's business today. He 
said that Sun is attempting to strike the right balance. On the one hand, Sun is committed to fostering the 
community model and open-source software. On the other, it's focused on developing modular architectures, 
where developers can contribute to core platforms with edge technologies -- whether these technologies are packages, 
plug-ins, extensions, or adapters. This bilateral approach can benefit the core platform as well as the independent 
developer.
</p>

<p><b>Panel Discussion: A Multitude of Models, How Communities Work</b></p>

<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" alt="Open-Source Panel" src="http://blogs.sun.com/javaone2008/resource/OpenSourcePanel.JPG" />
Open Source Panel
<!-- End Figure -->

<p>
An engrossing sidelight to Murdock's keynote was a panel discussion titled &quot;A Multitude of Models, How Communities 
Work.&quot; Led by Matt Asay, general manager and vice president of Alfresco and a prolific blogger on open source topics,
the panel included community luminaries such as Jim Zemlin, executive director of the Linux Foundation; Mike Evans, 
vice president of community development at Red Hat; Jeremy Allison, the Samba project lead at Google;
Marten Mickos, Sun senior vice president for databases and former CEO of MySQL; Ted Leung, Sun Microsystems 
principal engineer and Python project lead; and Stormy Peters, OpenLogic's director of community and partner 
programs. The panel discussed a wide range of questions such as &quot;Who makes up various communities such 
as MySQL?&quot; and &quot;Is there a tension between satisfying the needs of code contributors and satisfying the needs of
a business?&quot; The speakers encouraged audience members to participate in the discussion by posting questions through the social 
blogging tool Twitter. This led to some interesting technical questions -- but also to a humorous one: &quot;Did Jeremy [Allison]
dress like Steve Jobs on purpose? &quot;
</p>

<p><b>OpenSolaris Launch</b></p>

<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" src="http://blogs.sun.com/javaone2008/resource/RichGreen.JPG" alt="Rich Green Rich Green Announces the Release of OpenSolaris" />
Rich Green Announces the Release of OpenSolaris
<!-- End Figure -->
<p>
Perhaps the biggest announcement of the day came from Rich Green, Sun's executive vice president for software, in 
his talk titled &quot;Be Brilliant Faster.&quot; Green announced the fully supported release of the OpenSolaris 
operating system. Created through worldwide community collaboration, the OpenSolaris OS is an example of what 
the open-source model can accomplish. The leading-edge operating system allows users to fully install and customize 
their open-source OS deployment quickly and easily. To demonstrate this, Sun Distinguished Engineer Stephen Hahn 
showed how easy and fast it is to fully install OpenSolaris from a LiveCD distro. The operating system installed 
in less than 15 minutes. 
</p>

<p>
Some other cool demos ensued, and the highlight was a dramatic demonstration of the 
ZFS data recovery feature. Armed with a sledgehammer and a drill, Sun Fellow and Solaris Chief Technologist 
Jim Hughes and his partner in destruction, Sun distinguished engineer and chief architect of ZFS Jeff Bonwick, did 
fatal damage to two hard drives that were connected to a processor. Green quipped this was true &quot;hard drive 
compression.&quot; Hughes and Bonwick then used ZFS to quickly recover the data from a backup onto a new pair of 
drives.
</p>

<!-- Start Figure -->
<img width="205" hspace="10" height="154" border="0" src="http://blogs.sun.com/javaone2008/resource/HammerandDrill.JPG" alt="Jim Hughes Hammers Away" />
Jim Hughes Hammers Away
<!-- End Figure -->

<p>
Download the OpenSolaris OS for free from the  <a target="_blank" href="http://www.opensolaris.com">OpenSolaris web site</a>. 
</p>

<p><b><b>Technical Sessions and More</b></b></p>

<p>
It was impossible to go to all of the sessions during this event, and it's very difficult to relate everything I saw and 
heard at the sessions I attended, but here's a sampling of what I experienced at three sessions at CommunityOne:
</p>

<ul>
<li>The NetBeans IDE: Welcome, New, and Cool. During this session, which kicked off the NetBeans track, NetBeans 
evangelists at Sun Brian Leonard, Bruno Souza, Gregg Sporar, and Roman Strobl demonstrated some of the 
<a href="http://www.netbeans.org/features/" target="_blank">cool new features in NetBeans 6.1</a> such as support 
for JavaScript and the Groovy language. Believe me, NetBeans 6.1 is loaded with cool features. 
In addition to its JavaScript support, NetBeans 6.1 supports the Spring web framework, is more tightly integrated with
MySQL, and starts up a lot faster (up to 40%) than it used to. Try it out.
</li>

<li>jMaki: The Power of Ajax Made Easy. In this session, the two principal contributors to the 
<a href="https://ajax.dev.java.net/" target="_blank">jMaki project</a>, Sun engineer Carla Mott and Sun Ajax architect 
Greg Murray, demonstrated the latest features in jMaki, a lightweight framework for creating Ajax-enabled applications. 
Among its other features, the jMaki framework makes available widgets from popular JavaScript toolkits such as Dojo, 
Yahoo, Script.aculo.us, and Google in a way that's familiar to Java technology, PHP, or Phobos developers. One of the 
more interesting demonstrations during the session underscored just how easy it is to take advantage of the jMaki 
event mechanism so that an event on one widget can trigger an action on other widgets. 
</li> 
  
<li>
JavaFX Script Programming Language and GlassFish Application Server V3: Productivity and Power, Front to Back. In this
session, Sun software engineers Tim Quinn and Josh Mariucci showed off some of the neat features in the 
<a href="http://www.sun.com/software/javafx/script/index.jsp">JavaFX Script</a> language that simplify developing
Rich Internet Applications (RIA) and how the open source GlassFish Applications Server v3 provides an ideal environment 
for deploying and running JavaFX Script applications. Aside from being feature rich itself, GlassFish Application 
Server V3 has modular packaging. The core module is extremely small and has a fast (one second or less) startup time. 
</li>
</ul>
<p>The general sessions and many of the technical sessions were video recorded and will be available for replay on the 
<a href="http://developers.sun.com/events/communityone/">CommunityOne web site</a>.
</p>

<p>
As content-rich as these sessions are, going to an event such as CommunityOne is more than sitting in on talks. There's 
also the great value you get in meeting people, learning about their experiences and their work, and the infectiousness of 
their enthusiasm. Bringing vibrant, creative, enthusiastic, fun people 
together -- that's what CommunityOne is all about.
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/hMw22Qzl4Vs" height="1" width="1"/>]]></content:encoded><description>Last year saw the birth of CommunityOne a free, full-day event that preceded the 2007 JavaOne Conference and set the tone&lt;br /&gt;for what would be a full week of presentations, demonstrations, and knowledge sharing by and for the open-source community. &lt;br /&gt;Celebrating its second appearance, this year's CommunityOne was even bigger and better than last year's version. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/communityone_bringing_communities_together</feedburner:origLink></item><item><title>NetBeans Talk Goes into Second Life</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/J1N9EZnjcdM/netbeans_talk_goes_into_second</link><category>/JavaOne</category><category>ide</category><category>java</category><category>netbeans</category><category>roman</category><category>strobl</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dananourie</dc:creator><pubDate>Mon, 05 May 2008 16:09:28 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/netbeans_talk_goes_into_second</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>This is going to be a busy week for Sun in <a title="Second Life" href="http://www.secondlife.com">Second Life</a>, so if you
couldn't make it to the conference you can attend talks with various
Sun speakers to hear some of what they are sharing at the conference. While covering various sessions here at the <a title="JavaOne Conference" href="http://java.sun.com/javaone/sf/index.jsp">2008 JavaOne Conference</a> for the Java Today paper, I'm also keeping an eye on the coverage that we're doing in Second Life. Today when I dropped in, Heidi Dailey had <a title="Roman Strobl Blog" href="http://blogs.sun.com/roumen/">Roman Strobl</a> in the seat talking about the <a href="http://www.netbeans.org">NetBeans IDE</a>. <br /></p><p>Roman talked about the many features of the NetBeans IDE, such as code completion for various languages, language support like PHP and Ruby, and UML support. Then the audience was able to ask questions about special features.</p><p>It seems NetBeans does just about everything these days, including writing most of the code. So, for new Java developers, he recommends that you learn about design patterns. He says there are many books out there on the topic that you can read. In spite of the fact that NetBeans will write so much code, you can still potentially put together a sloppy application or one that does not scale well. He also recommends looking at the best practices for building web applications by studying tutorials on on the Java EE platform.</p><p>Some of the areas in web applications development that you need to understand if you're using Java technologies for web application development is <a title="JavaServer Pages" href="http://java.sun.com/products/jsp/">JavaServer Pages</a>. The web application is created in two ways in NetBeans and that is the visual and the code. You can use <a title="JavaServer Faces" href="http://java.sun.com/javaee/javaserverfaces/">JavaServer Faces</a> technology through drag and drop to create the user interface, but you can also get to CSS code for further modifications. This provides several tools to web site designers.</p><p>One of the questions directed at Roman also concerned UML support. The NetBeans IDE has great UML support that allows you to design applications
using a standard modeling language. You then can
generate source code from the UML model and update the model from
changes made in their source code.&nbsp;
                        With NetBeans UML Modeling, you can create eight UML diagrams:
                        Activity diagram, Class diagram, Collaboration diagram, Component diagram,
                        Deployment diagram, Sequence diagram, State diagram,
                        and Use Case diagram.
                        You can align diagrams visually in the Diagram Editor.
</p><p>Additionally, Roman talked about upcoming features that we can look forward to, such as additional <a title="jMaki" href="https://ajax.dev.java.net/">jMaki</a> widgets. Currently, there are many handy jMaki, Yahoo, and Dojo widgets, and now we can look forward to additional widgets in future releases. These widgets make pulling in services as easy as drag and drop.</p><p>I'm looking forward to some of the upcoming talks in Second Life this week. Be sure to check the <a title="Second Life schedule" href="http://blogs.sun.com/vw/entry/javaone_in_second_life">schedule</a>.&nbsp;</p><p>All inworld events will be held at the JavaOne Theater at Sun's SIMs in Second Life.</p><p> Dana Nourie (aka, Dana Oceanlane), Sun Microsystems, staff writer <a title="java.sun.com" href="http://java.sun.com">java.sun.com</a><br /></p><p><br /></p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/J1N9EZnjcdM" height="1" width="1"/>]]></content:encoded><description>This is going to be a busy week for Sun in &lt;a title="Second Life" href="http://www.secondlife.com/"&gt;Second Life&lt;/a&gt;, so if you
couldn't make it to the conference you can attend talks with various
Sun speakers to hear some of what they are sharing at the conference.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/netbeans_talk_goes_into_second</feedburner:origLink></item><item><title>It’s That Time of the Year When…</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/wPg6N5SSRu0/it_s_that_time_of</link><category>/JavaOne</category><category>blogwatch</category><category>heiss</category><category>jan-heiss</category><category>janice</category><category>janice-heiss</category><category>janice-j-heiss</category><category>janice-j.-heiss</category><category>java</category><category>java-developers</category><category>java-rock-stars</category><category>javaone</category><category>java_se</category><category>josh-bloch</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Janice J. Heiss</dc:creator><pubDate>Wed, 30 Apr 2008 15:41:26 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/it_s_that_time_of</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I’m in frantic pre-JavaOne mode, which after covering nine previous JavaOnes, feels both familiar and new. The experience is typically a bit of a blur because there are so many tight deadlines that no matter how well I prepare, I end up covering presentations, conducting interviews, and spewing out words and hoping for the best. I enter some altered state that is lost to me afterwards. Sleep is not an option. <br /><br />Each year there’s a story or several stories floating in the air about “what’s happening with Java” or “the hot thing in programming”. I’m not sure what this year’s story will be, but the need to make Java available to the plethora of scripting languages and Web 2.0 frameworks seems to be on people’s minds.<br /><br />Java developers are very strong-minded people who have their eyes open to what’s happening around them. JavaOne is a place to get the lowdown, hear the scuttlebutt, to connect, take it all in, renew the faith, gather feathers for the nest, and fly home. It’s a parade that no one wants to see pass them by.<br /><br />I’ll be interviewing Java Rock Stars – developers whose sessions were top-rated at last year’s conference -- for JavaOne Today, trying to extract the best insight and information they have to offer, plus entertaining personal tidbits. Last year, Java Rock Star Joshua Bloch revealed to my delight that yes, he did plant his mother in the audience for his dissertation defense and have her present a detailed criticism, which he responded to flawlessly after first saying, &quot;Awww Mom!&quot;. He also answered another planted question with a rap, complete with recorded rhythm track coming from a boom box concealed under the desk. <br /><br />I look forward to the tales this year’s Rock Stars will have to tell. A sneak preview: Rock Star <a title="Chet's blog" target="_blank" href="http://graphics-geek.blogspot.com">Chet Haase</a> has revealed the Next Big Technology Revolution: the banana phone -- fruit that can function as both a communications device and a nutritious snack.<br /><br />I don’t know whether mathematics and logic and computer science capture any eternal truths that forever wait to be plucked from the skies, but I do know one thing: “Developers just want to have fun.” Which is why I get excited and enjoy JavaOne, despite the stresses – it’s somewhere between a carnival and lecture hall. The energy never ceases to amaze me. It's captivating. Truly.<br /><br />I’ll also be blogging on sessions, vodcasting from the Pavilion, talking to developers, and – not least -- hobnobbing with Sun friends and colleagues. And who knows what else. There are always surprises at every JavaOne. Here's to JavaOne '08!</p><p>For more on <a title="java.sun.com" target="_blank" href="http://java.sun.com">JavaOne</a>.<br /><br />Janice J. Heiss
</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/wPg6N5SSRu0" height="1" width="1"/>]]></content:encoded><description>I’m getting ready for JavaOne, which is always somewhere in between a carnival and a lecture hall.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/it_s_that_time_of</feedburner:origLink></item><item><title>Java University at 2008 JavaOne Conference</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/VmeFW40GmZ8/java_university_at_2008_javaone</link><category>/JavaOne</category><category>francisco</category><category>java</category><category>java_se</category><category>mars</category><category>rover</category><category>san</category><category>science</category><category>university</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dananourie</dc:creator><pubDate>Tue, 29 Apr 2008 13:24:07 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/java_university_at_2008_javaone</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I've been to the last eight <a title="Java University" href="http://java.sun.com/javaone/sf/">JavaOne Conferences</a> in San Francisco, and I must admit I'm looking forward to this one more so than in past years. Overall, I'm expecting much of the usual stuff: lots of developers, a full Pavilion floor, and sessions filled with great technical detail. But what I'm looking forward to this year is the boost that <a title="Java University" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A1">Java University</a> has gotten.</p><p>Java University has always been packed with helpful, thorough instruction, but this year it has more courses and includes more than just <a title="java.sun.com" href="http://java.sun.com">Java technology</a>. As anyone involved in web development knows, you can't always do it all with Java technology alone. So, I'm glad to see that Sun has also included a lot of information for developers on topics such as:<br /><a title="JRuby and Rails" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A5"></a></p><p>&nbsp;</p>
<ul>
 <li><a title="JRuby and Rails" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A5">JRuby and Rails</a></li>
<li><a title="Groovy and Rails" href="http://java.sun.com/javaone/sf/javauniversity.jsp#M5">Groovy and Rails</a></li>
<li><a title="Groovy and Rails" href="http://java.sun.com/javaone/sf/javauniversity.jsp#M5"></a><a title="MySQL" href="http://java.sun.com/javaone/sf/javauniversity.jsp#B5">MySQL</a></li><li><a title="MySQL" href="http://java.sun.com/javaone/sf/javauniversity.jsp#B5"></a><a title="Ajax and Dojo Toolkits" href="http://java.sun.com/javaone/sf/javauniversity.jsp#M2">Ajax and the Dojo Toolkit</a><br /></li></ul><p>&nbsp;</p><p>Of course, there is also a heck of a lot you can do on the web and on the desktop with Java technology and tools, and Java University has many courses to help developers in these areas as well:</p><ul><li>&nbsp;<a title="Filthy Rich Clients" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A1">Filthy Rich Clients (great stuff you can do with Swing)</a></li><li><a title="Filthy Rich Clients" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A1"></a><a title="Java ME and Devices" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A3">Java ME and Mobil Devices</a></li><li><a title="Java ME and Devices" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A3"></a><a title="Java Persistence  API" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A4">Java Persistence API</a></li><li><a title="Java Persistence  API" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A4"></a><a title="Secure Java Web Services" href="http://java.sun.com/javaone/sf/javauniversity.jsp#M1">Secure Java Web Services</a></li></ul><p>And there is a whole lot more for developers to benefit from at Java University. In the past, I have found that the courses in Java University were handled well as far as getting everyone into the rooms, which are very large, presenting the technical materials, which included handout printed materials and presentations on the huge screens, and the speakers were animated. I expect the same and more this year.</p><p>For those of you who can't make the JavaOne Conference this year, there will be many writers from Sun covering the sessions and experiences. I'll be writing about Java University for the JavaOne Today daily paper, as well as blogging about it and sessions here.</p><p>No matter whether you are at the conference or not, be sure to watch this space as we share the conference experience and deal out technical information as we can. It should be a really great conference this year.</p><p>&nbsp;Dana Nourie, Sun Microsystems staff writer for <a title="java.sun.com" href="http://java.sun.com">java.sun.com</a><br /><br />&nbsp;</p><p><br />
</p><p><br />&nbsp;</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/VmeFW40GmZ8" height="1" width="1"/>]]></content:encoded><description>I've been to the last eight &lt;a title="Java University" href="http://java.sun.com/javaone/sf/"&gt;JavaOne Conferences&lt;/a&gt;
in San Francisco, and I must admit I'm looking forward to this one more
so than in past years. Overall, I'm expecting much of the usual stuff:
lots of developers, a full Pavilion floor, and sessions filled with
great technical detail. But what I'm looking forward to this year is
the boost that &lt;a title="Java University" href="http://java.sun.com/javaone/sf/javauniversity.jsp#A1"&gt;Java University&lt;/a&gt; has gotten.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/java_university_at_2008_javaone</feedburner:origLink></item><item><title>Sun Writers Blog About 2008 JavaOne Conference</title><link>http://feedproxy.google.com/~r/2008JavaoneConference/~3/VhJjmRbpHbY/sun_writers_blog_about_2008</link><category>/JavaOne</category><category>bofs</category><category>conference</category><category>events</category><category>java</category><category>javaone</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dananourie</dc:creator><pubDate>Mon, 28 Apr 2008 15:50:39 PDT</pubDate><guid isPermaLink="false">http://blogs.sun.com/javaone2008/entry/sun_writers_blog_about_2008</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Sun writers blog in this space about the <a href="http://java.sun.com/javaone/sf/" title="java.sun.com">2008 JavaOne Conference</a>. We will share pre-conference opinions, technical information from the sessions, and our overall impressions of BOFs and other events. It is our intention to share this conference with those of you who cannot make it this year, and for those of you at the conference but having to miss some sessions for others.</p><p>Dana Nourie, staff writer for <a href="http://java.sun.com" title="java.sun.com">java.sun.com</a><br />&nbsp;</p><img src="http://feeds.feedburner.com/~r/2008JavaoneConference/~4/VhJjmRbpHbY" height="1" width="1"/>]]></content:encoded><description>Sun writers blog in this space to share their experiences of the 2008 JavaOne Conference.</description><feedburner:origLink>http://blogs.sun.com/javaone2008/entry/sun_writers_blog_about_2008</feedburner:origLink></item><media:rating>nonadult</media:rating></channel></rss>
