Category Archives: Sun

The Sun sets on me

On Friday I was notified that I will not be making the transition from Sun to Oracle. Sun was a company filled with talented and energetic people, and I am grateful for the chance to work with them.

Pythonistas (and others) may be wondering what this means for dynamic languages at Oracle. I wish I knew. I don’t have any direct knowledge of this, since I’ve never actually spoken to anyone at Oracle about the topic.   

I am definitely looking for another opportunity. During my time at Sun I’ve worked on a bunch of Python related stuff, as well as a few things related to cloud computing. Other skills in my repertoire include server side development (Java and Python), open source community work, and engineering management. I’m definitely open to different possibilities. The about page of this blog has my contact information, and my LinkedIn profile is a pretty good summary of my credentials.

CommunityOne / JavaOne 2009

This was my second year attending these events as a Sun employee. Everything in software at Sun seems to revolve around these two events. For quite some time before the show, people are working away furiously getting things ready to be unveiled, myself included.

CommunityOne

For me, the big theme at CommunityOne was cloud computing. Sun itself was emphasizing cloud stuff and the latest release of OpenSolaris, 2009.06, which were the main topics of the CommunityOne general session. The Sun Cloud is due out sometime this summer, so much of the cloud part of the session was having partners come up and tell about their experiences working with our cloud. The OpenSolaris team has done a huge amount of work in 2009.06. The feature that stuck out to me the most is “Crossbow“, which is a completely rewritten networking stack. Solaris already had CPU virtualization technology built into it via the zones feature. Crossbow makes it possible to virtualize networking configurations. This means that you could run an instance of OpenSolaris on your laptop (either natively or via VirtualBox, VMWare or whatever) and actually have a virtualized data center configuration running right there. That’s pretty interesting stuff.

I went to several cloud sessions, and I’d have to say that the current state of cloud computing is pretty rough. At least that’s true at the Infrastructure as a Service level where Amazon and the Sun Cloud are. As an example, I went to a good presentation by fellow Sun employees on cloud computing patterns. I happened to be sitting with James Governor and Stephen O’Grady of Redmonk, and I turned to Stephen and said “these patterns are all at a level that I never want to have to worry about”. The patterns themselves were fine, but I personally don’t want to have to deal with things at that level in a cloud platform. There is lots of room for improvement and innovation in this space.

My CommunityOne talk was called “Programming Languages for the Cloud”.

The talk is based on my experience as a language guy who has been asked to work on cloud computing stuff. As such, I’m really trying to raise questions (for which I don’t yet have answers) about places where work on programming languages might usefully intersect with cloud computing. I figured that this would be a niche kind of talk, so I was very surprised to find myself in one of the larger rooms at Moscone, complete with a live video feed. I was even more surprised to see that the room was pretty full. After the presentation, one of the Salesforce.com engineers working on Apex (their domain specific language for the cloud) came up to the front. We ended up having lunch and I learned a bunch interesting stuff about their experience withe Apex. This sort of thing is what makes conferences worthwhile.

JavaOne

I spent the first day of JavaOne prepping for my presentation, “Seeding the Cloud”, which was about some ways that tools could help developers who choose to build applications in the cloud.

Ashwin Rao and I had some pretty interesting demos lined up, but we had problems with the internet connection in the room so a number of the demos failed. I learned later that the internet connection for all of Moscone Center had gone out, which made me feel slightly better. As someone commented to me, it was a good illustration of some of the weak points of the cloud (web, really) model.
The demonstration that I really wanted to show was an extension of some work that the Kenai team has done. Kenai is going to have support for doing continuous integration via Hudson, and the machines for doing that can be allocated as cloud instances. This is great if you have a project in Java or some other language that has major build steps. Another use for a dynamically allocated farm of machines is to do web UI testing on browser combinations. Back at PyCon, I put a bug into Adam Christian and Mikeal Roger‘s ears about this. Adam and Mikeal are the primary guys behind the Windmill web UI testing framework. Adam has been working with Hudson author Kohsuke Kawaguchi, and between the two of them they came up with a way for Hudson to start up a bunch of different browsers on different operating systems. If my demo had worked, people would have seen me kick off a Hudson build from inside of Netbeans 6.7, and then we would have watched (via RDC) the various browsers running though some UI tests on a web application. Oh well.
I spent the rest of JavaOne ducking into various language and concurrency talks. Jonas Boner gave a very nice talk comparing some of the concurrency mechanisms that are available on the JVM. Alex Miller gave a talk on Java concurrency gotchas. The net effect of Alex’s talk was to reinforce the fact that we need one or more of the mechanisms that Jonas covered in his talk. Also in the concurrency vein, I stopped in on Philipp Haller and Frank Sommer’s ‘s talk on Scala Actors. Probably the most fun concurrency thing was a random conversation with Clojure author Rich Hickey and Jonas Boner in the speaker room.
JavaOne is big on the keynote / general sessions. I only went to two, the opening session, and Bob Brewin’s technical keynote. The big news (to me) in Bob’s keynote was Mark Reinhold’s demonstration of a modularized JDK. This is cool for a variety of reasons, like reducing the footprint of the downloads, ability to build distribution packages trivially, and so forth. But the thing that made me happies was news that the CLASSPATH is finally going way, to be replaced by a module-info.java file.
The opening general session was very subdued. There were a variety of partner / sponsor segments, but things were really running at a low energy level until the end when Scott McNealy took the stage and then introduced Oracle CEO Larry Ellison. Despite Ellison’s reassurances to the Java community, it was a sad moment. I’ve only been at Sun for a little over a year, but my history with the company is pretty long. When I was in grad school, Brown was on of the first large installations of Solaris (replacing SunOS). Like many developers, I’ve used Java over the years. Sun has made a number of very important contributions to the computer industry, and it’s sad to me that a company so full of innovation was unable to remain independent.
Photography
This year things were so busy and frenetic that I really didn’t have much time to pull out the camera. Between presentations and meeting up with Sun people from all over the world, there just wasn’t time. Here are a few from the few times that my camera escaped its bag:
JavaOne 2009

Bob Brewin’s Technical Keynote
CommunityOne 2009
The Extra Action Marching Band on the CommunityOne Expo Floor
CommunityOne 2009

The CommunityOne Party

CommunityOne 2009

The CommunityOne Party

CommunityOne 2009

The CommunityOne Party
CommunityOne 2009

The CommunityOne Party

CommunityOne 2009

The CommunityOne Party

CommunityOne 2009

The CommunityOne Party

CommunityOne and JavaOne

I’m here in San Francisco for CommunityOne and the first 3 days (Tuesday through Thursday) of JavaOne.

Today at CommunityOne I’ll be giving a talk called “Programming Languages for the Cloud“. This is an exploration of areas where programming languages might intersect cloud computing.

Tuesday afternoon at JavaOne Ashwin Rao and i I will be giving a talk called “Seeding the Cloud“, where we’ll be giving a developer centric view of cloud computing and cloud computing issues. We’ll also have demos of some of the cloud developer stuff we’ve been working on.

If you are around and want to meetup, you can always get a hold of me via Twitter.

Northwest Python Day

Northwest Python Day

This weekend I attended the Northwest Python day. Actually, more properly, I attended the afternoon half of Northwest Python day. We’ve had some illnesses making the rounds in our house, and we had to do some creative schedule juggling on Saturday. In any case, the day was organized mostly by people from the Seattle Python User’s group, and run in a very low key fashion. The organizers managed to secure a decent size room at the University of Washington, and people worked together to bring some food and so forth. The program consisted of presentations that people volunteered to do – we had just enough to fill the day. A Python get together of any decent size just isn’t complete unless there are lightning talks, so there were two sets of lightning talks during the day.

My favorite talk of the day was William Stein’s talk about the Sage symbolic math system. Sage is a system in the flavor of Mathematica, Maple, or Matlab, and if you need to do any kind of symbolic math at all, this seems like something that is well worth looking at. One thing that I particularly liked was the use of a local web browser as a way of maintaining the worksheet/notebook workspace that is common to this class of applications. I was impressed to learn that Sage’s UI code actually contains a Javascript translation of the TeX layout engine for math, which is the gold standard for formatting math of any kind. Very cool stuff. I gave a talk on some of the Python projects that we have underway at Sun, and I tried to motivate my description of those projects with a bigger picture look at the state of the “market” for dynamic languages. The talk included some of the material that I used for my PyCon UK keynote and added some more Sun specific details.

This was my first conference of the year, and a good start.

Sun Folks on the loose: Sara Dornsife

Crack marketing person Sara Dornsife is looking for a new position. But I bet she won’t be.

I’ve known Sara for several years. I think that we first met at an ApacheCon, but we kept running into each other at various open source conferences. She has done a great job of learning what is important to a particular community (take the open source community as an example), and then figuring out how do something that is both good for the community and for the company. Before I came to Sun, she was definitely on my list of “Sun people that really get open source”. Sara is also a leader using social media technologies to change how marketing is done, and she’s been nominated by Austin’s American Statesman for the Texas Social Media Awards. The bottom line on Sara is this: before Thursday, if you were an open source company or a company whose business plan relied on building and engaging a community, I would have said that you ought to pay very careful attention to what Sara’s been doing. Now, you can just plain hire her.

Sara has a profile on LinkedIn, and a new blog.

Sun Folks on the loose: David Van Couvering

David Van Couvering is another Sun person who is looking for a new adventure after last week’s layoffs.

I first met David at ApacheCon, several years before I came to Sun. At the time he was working on JavaDB, also known as Apache Derby. Lots of projects out there include an embedded version of Derby, so if you are working on one of those, here’s your chance to hire one of the authors of that code. One thing that always impressed me about the Derby community is how the people from Sun and IBM were able to work so well together. More recently, he’s been the architect for the database functionality in the NetBeans IDE.

David is looking for a hands-on architect/team lead role. His background is mostly server-side Java technology, with a focus on distributed services and databases. If you are looking for that skill set, and need someone who has real experience with open source software development then you ought to be talking to David. In addition to his profile on LinkedIn, you can see how effectively he’s used his blog to describe the work that he’s been doing recently.

dtrace -G on Mac OS 10.5 or dtrace for Python

Let’s suppose that you were trying to port dtrace probes from (Open)Solaris to Mac OS X, and the makefile for the probes on (Open)Solaris calls for the -G option, which isn’t recognized by dtrace in 10.5. You might want to check out this mail thread to find out what to do.   

The driver for this is an effort to port OpenSolaris’ dtrace probes for Python to run on OS X. One benefit of this will be that we’ll have access to John Levon’s ustack provider for Python on the Mac. If someone wants to tackle a port for FreeBSD 7.1, it would be great to get this support into all dtrace enabled platforms.

CommunityOne 2009 CFP

CommunityOne is not as well known as its older brother, JavaOne. 2008 was the first year that I got to go. The event is going to be a bit bigger in 2009 — in fact, the event will be held both on the west coast and on the east coast. The conference is focused on “open source innovation and implementation”, and this year the conference planners are looking for talks on “cloud computing and virtualization, dynamic languages and scripting (PHP, Ajax, Python, Ruby, JavaScript), databases (MySQL, postgreSQL), web and application servers (GlassFish, Apache), operating systems (OpenSolaris, Linux), mobile development (Java ME, Android, Symbian), and tools (NetBeans, Eclipse, Sun Studio)”.

Here are the details:

CommunityOne East – March 18-19, 2009 – New York City
CommunityOne West – June 1-2, 2009 – San Francisco
Deadline to submit speaking abstracts: Dec. 11, 2008

For more information on these events: <http://developers.sun.com/events/communityone/>

If you are interested in submitting a talk: <http://www.eventreg.com/sun/communityone09/cfp>

Python in NetBeans

Along with today’s launch of NetBeans 6.5, Sun, in cooperation with the NBPython community, are releasing an early access version of Python support for NetBeans. This is a result of the collaboration between Sun people and the NBPython project that I wrote about back in July. This release has been tested by folks in the NetBeans community and some folks from Sun’s NetBeans QA team, and it’s in pretty good shape for an early access release. We’re interested in getting people’s feedback. We would also love to see more people get involved with NBPython.

How to get it?

You can get NetBeans Python from the NetBeans download page.

What’s in it?

The basic feature set for the early access release consists of an editor for Python, the ability to execute Python programs (using CPython or Jython), and a debugger.

There’s a tutorial up on the NetBeans wiki.

Tor Norbye, who did most of the work on the editor, has written a series of blog posts detailing various features of the Python editor.

Who did it

Allan Davis – project and platform management, interactive console.

Jean-Yves Mengant – Jean-Yves is the author of the jpydbg debugger, which he’s merged into NBPython.

Amit Saha – documentation and help sets – Amit works for Sun, but he’s doing Python on his own time.

Tor Norbye (Sun) – editing.

Tomas Zezula (Sun) – project and platform management.

Ted Leung (me) (Sun) – various behind the scenes stuff.

Frank Wierzbicki (Sun) – NBPython is using Jython’s parser and Frank worked with Tor to add support for positions and better error reporting.

Peter Lam (Sun) – Sun QA

Tony Beckham (Sun) – Sun QA

The NetBeans CAT community as well as those folks who drove by and reported bugs.

How to get involved

NBPython has become a full fledged NetBeans project, so the main project page is now on NetBeans.org, as are the issue tracker and mailing lists:

nbpython-dev@netbeans.org
nbpython-issues@netbeans.org
nbpython-commits@netbeans.org
nbpython@netbeans.org

My personal story on the Sun Storage 7000 series

Today Sun is announcing a new line of storage appliances. I haven’t been involved with this product at all, but I do have a personal angle on them. Shortly after I joined Sun this year, I took a trip to California to meet various people in person. Amongst the people that I met up with were Bryan Cantrill, Mike Shapiro, and Adam Leventhal, the inventors of DTrace. I was a graduate student at Brown when Bryan and Mike were undergraduates. I was mostly interested in talking to them about DTrace, because DTrace is an important part of your toolkit if you are building web applications using dynamic (and other languages).

During a break, Mike took me aside and asked if anybody had shown me what they were working on. I said that they hadn’t, so he took me back into a server room and showed me a prototype of the Sun Storage 7000 product. There’s lots to write about regarding this project, and there will be a veritable storm of blog posts about it today. The two things that stood out to me when I saw the prototype were:

a) the innovative use of flash memory as part of the storage hierarchy, and the work that has been done to ZFS in order to manage flash in an intelligent way. If you are interested in the science/engeineering behind this, you should look at Adam Leventhal’s article in the first issue of the revamped CACM on this topic. The impact on both cost and performance is very impressive.

b) the AJAX based UI that the Fishworks team has created for interacting with monitoring tools like DTrace.

You can read Mike and Bryan‘s blogs for the full story of how the products came to be, and you can go to the launch and product pages for the details the specific product offerings.

Well done Mike, Bryan, and team!