Monday, June 1, 2009

CommunityOne first impressions

I arrive about an hour before CommunityOne officially started, there wasn't as much buzz in the air as years past, I remember CommunityOne 2006, it seemed to be something more exciting than this year.
Once I got checked in, I swung by the OSTK booth, we have a booth this year at JavaOne, only to find that the company that was to have custom panels installed hadn't done it yet. I hope it's all good by this afternoon.
I'm now at the general session for CommunityOne, it's in the main conference hall, where the JavaOne general session is held, except this year, the room is turned sideways, much wider and not as deep. I like this format better, everyone can feel closer to the stage. BTW, I'm in the second row, right behind the Sun executives. I wonder how this will compare to WWDC next week.
First up is Dave Douglas, SVP of Cloud Computing @ SUN. He is talking about how his team is new, only been together for about a year. Then he touched on the changes since last year, aka: Oracle bought us :-) Instead he is talking about the economy, Obama, etc. There is a new book coming out Citizen Engineering, looks like the cover of Mythical Man Month. Dave is now talking about 20th Century initiatives vs. 21st Century, top down vs. community based. Sounds a lot like what Thomas Friedman discusses in the World is Flat (great book btw). Dave's challenge, think about "what can I do to help". A little plug for OpenOffice, "available in 80 languages btw, more than Office".
Sun has a campus ambassador program at hundreds of campuses around the world. On the stage four students, we all speak "open source" around the world. There goes the Brazil cheer from the audience. "We are at an important time with community, we need to take this ideas and spread them out". Up next is cloud computing.
Lew Tucker, Sun Cloud CTO. Cloud computing is everywhere, the government is even looking into using this. With a credit card and a few minutes you can have your own computer network. The economics of cloud computing are very attractive, you can turn it on and then turn it off. If you are a start-up, or any company, you can quickly and cheaply have your infrastructure up and running. Two main parts of Cloud Computing, Compute Service and Storage Service, in the middle is open APIs and Services. Lew is using a Mac and Safari for his demo. Lew is showing a drag and drop network configuration tool to set up your cloud computing infrastructure, looks great. The idea is any developer can setup their own cloud so they have the infrastructure you need. The idea behind what Dave and Lew are showing is how an individual can create and manage a large scale system without the need for your own data center.
Not to bead a dead horse, but all this cloud computing infrastructure is enabling the flat world platform. To make more sense of this statement, you need to read Thomas Friedman's The World is Flat.
Dave is now talking about security, what does the cloud have for security. Sun has been working with Center for Internet Security on creating a secure virtual machine and today Sun deployed a secure virtual machine to Amazon. One of the biggest uses of the cloud is for a development and test environment. One open source community that has taken this idea to heart is Yahoo! and Hadoop. What used to run on a 1,000 machines and only be known by two scientists in the world is now available to you and me. BTW, the Yahoo Hadoop cloud has 4,000 nodes.
Up next is opensolaris. At least Sun has a sense of humor, the lead of opensolaris is pretending to be a news anchor, very funny. He's also using this to give us an update on how opensolaris is being used. They are now talking about DTrace and how it's been around for about five years now and can help you analyze your application across all levels OS to application. Now we are talking about JavaFX and how easy it is. In just four lines of code, they were able to add reflection to a full-motion video (a clip of UP btw).
How has virtualization changed networking? Traditionally, you have switches between the FW and the server, now SUN has created a virtual switch to virtually support virtual FWs and virtual Servers. They are now talking about xbow, pronounced cross-bow, and how you can define a virtual network on anything from your laptop (the demo we are seeing now) to your server grade systems. xbow lets you simulate how your system may work under different loads from a fully functional system to a constrained network load allowing you to test you environment in many different modes. Networking rewritten for the virtual environment. Networking has always been complex but with opensolaris, xbow, and DTrace you can really examine what's happening.
ZFS, what is it? A discussion on what ZFS is and what it can do for you. ZFS takes away all the limits that were imposed on the file-system. They skipped the 64bit fs and went to a 128bit fs. They also showed one of the big features of ZFS, the ability to move through snapshots of your file-system over time.
Flash based storage is the first new storage technology in about 50 years. Not only does it support more io ops per second than a 15K HD, it takes less power. This is redefining the way storage is put together today. ZFS is the only file-system that supports flash storage natively.

Thursday, March 19, 2009

Maven Meet Up at Sonatype part II

Brian is now talking about Nexus. There are three types of repositories in Nexus:
  • Hosted - the repo lives on disk
  • Proxy - this is a proxy to another repository
  • Virtual - this allows you to convert between repository formats, say M1 is hosted, you can create a Virtual proxy that converts M1 to M2

You can schedule tasks like cleaning up snapshots. There are RSS feeds for most of the things Nexus does so you know the state of your repo. It will download remote repo indexes. There is no database required for Nexus. Nexus provides a full set of REST APIs to all its features.

The only time you use a repository URL directly in Nexus is when you want to deploy an artifact. With staging & promotion you don't even need to use a repo URL to deploy your artifacts. Why have a stating & promotion strategy? What if you want to test something before actually release it? Enter Nexus stating & promotion. All release deployments occur against a single REST URL in Nexus. The URL can be set once in the corp-pom for all projects, regardless of repository. With templates you can define how Nexus creates this new stating repo. Currently, you can only stage your binary artifacts but not your site artifacts. If you stage something many times and decide only to keep the last build, you'll need to manually remove all but the last site's you generated (this assumes that you don't overwrite your existing site with each release). Since all of Nexus is controlled by REST URLs, you can build your own work flow to control when a repo is promoted or not.

Next up is procurement, how to control what artifacts are available to your projects. Procurement is effectively a firewall that separates the users from another repository (or repo group) in the system. By default, everything is denied.

Sonatype is planning on multiple versions of Nexus: Nexus (open source version, free), Nexus Pro, Nexus Enterprise (HA, Federation, etc.) and Nexus Compliance (legal, etc.).

Maven Meet Up at Sonatype part I

Maven 3.0 will be fixing what we've learned in Maven 1.0 and 2.0. Layered repository, at the command line there is really only one repo, but in an env like Eclipse there are many repositories, other projects, so Maven 3.0 will have the concept of layered repositories. Jason said they have a lot of integration tests to ensure the backwards compatibility of Maven 3.0 with Maven 2.0. Personally, I hope it goes better than the Maven 2.0.8 to Maven 2.0.9 transition.

Plugin extension points, something borrowed from Eclipse, plugins will have extension points. This way you can extend a plugin without having to hack it. Plugins will also be able to tell Maven, here are my output directories, this way in Eclipse Maven will not need to run all the plugins to get their generated source dirs. This would be a big improvement.

Mercury is the new repository and transport layer for Maven. Why Mercury? Maven 2 has inaccurate conflict resolution, based on custom graph walking algorithm, hard to replace, API is too complex. The resolution mechanism is too coupled to Plexus, cannot use it from other environments. Mercury is a general purpose library for artifact and repository management. ArtifactMetadata - artifact comprehension info, not only do you need GAV (GroupId, ArtifactId, Version) but you also need classifier, type, etc. Mercury repos can be local or remote, readable or read/write, this helps optimize Mercury. It also supports global exclusions.

Mercury has it's own metadata cache to cache metadata for remove repositories. The new transport layer is a Jetty client, supports connection multiplexing (NIO), concurrent connections, SSL support. Webtide added stream verification , proxy support and authentication.

Oleg is now talking about Sonatype Proviso, a tool for updating binaries (e.g. Maven). Mercury Runner is a side project for Oleg, it gives you a way to run an application without defining a classpath. Attribute based resolution, we don't just care about a JAR, or it's version, we actually want to know about it's quality, etc. Like this:


Monday, February 16, 2009

SLC Tattoo Convention 2009

On Saturday night, my wife and I went to the SLC Tattoo Convention. It was a great way to spend Valentines day and Nicole said it was a great date. We saw a lot of amazing art and we were both inspired to spend more time on our art. As a result, I'm going to try and spend at least an hour a day for a year, or something close to that, on art.

My Dad was a professional artist and drawing was always a part of my childhood. That said, I haven't done much since. One of my boys loves to draw and he and I sometimes draw together, so I'm hoping he and my wife will join me on my 365 days of art.

So here it is, the first of at least 364 more drawings. I won't post them all here ;-)