Jeff Dillon

     
 
Application Provisioning
The group I am a developer for at Sun is called N1 Grid Service Provisioning Server. The basic idea is that one master server contains a XML based description of all the software components that need to be installed on other systems. This master server is able to deploy these applications to other systems on a network. This allows for all the software to be managed from a central console. The product currently supports Solaris, Windows, AIX, and Linux.

The interesting thing for me is that while working at InstallShield, we always talked about doing this with our Java product. We continually had customers asking for this kind of functionality. However, the complexity of the project seemed too high with our already busy schedule. InstallShield was always focued on the world of a single machine.

The ability to manage software across many machines is a very powerful concept. It is very cool to be able to now work on a project which I have been thinking about for a couple years.
@ 05:06 PM PDT
 
 
 
 
Blogging From the Top
Recently, Jonathan Schwartz started his own blog. Having an executive like Jonathan blog is a really cool thing. First of all, I think it has the potential to go a long way to set the record straight on certain issues. Instead of Jonathon's message being turned into sound bytes by the media, he can communicate ideas directly. Often times people's ideas and messages can be manipulated by others who already have made up their minds on certain issues. Jonathan also has some very exciting and innovative ideas about the future of software and hardware, so this blog has the potential to be very interesting.

The Sun Blogs home page also has a new design which is very nice.
@ 08:49 AM PDT
 
 
 
 
The Office
I recently finished watching the first season of The Office on DVD. Along with being absolutely hilarious, it was also touching and had really excellent character development. I highly recommend it. I heard that it was a good idea to turn on subtitles to catch some of the more subtle jokes. This is how I watched it and it seemed to help.

I rented this one without Marcie since I didn't think she would like it. I was kind of expecting an Office Space like comedy, which was not her thing. But, this was really different. It's more than a really funny comedy series. It really made me think about the relationships I have with people at work. People that you spend almost as much time around as family.
@ 09:25 PM PDT
 
 
 
 
Dealing with Zealots
Everyone's favorite zealot, Eric Raymond, just wrote a new article titled "Get the FUD". The title of this article is somewhat ironic since portions of the article are doing nothing more than spreading anti-Microsoft FUD. Now, let's get this straight. I am a hard core Linux and Unix user. However, I also do not like exteremism and am annoyed by misinformed zealots. This quote from Raymond's article made me laugh out loud.

"I also expect a serious effort, backed by several billion dollars in bribe money (oops, excuse me, campaign contributions), to get open-source software outlawed on some kind of theory that it aids terrorists. We can only defeat that by making sure that national governments become so attached to open-source code that their military men and bureaucrats will short-stop the bribed legislators, rather than let their vital infrastructure be outlawed."

This is worse than some of the garbage that I read on Slashdot. The real question that I am interested in, is how do you combat zealots when they are spreading misinformation? Sun has been taking some heat lately for plans to open source Solaris and I think about this question. Do you combat zealots with more zealotry or combat them with pragmatism and facts? I read Scoble on a regular basis and I really respect him for his pragmatism. I think the world needs more pragmatism and less extremists. Scoble gets some of the most idiotic comments in response to his posts and he always responds to them in such a cool-headed pragmatic way. I think this is a good approach. The problem is that sometimes the facts are not enough.

In general, people have a very small view of the world and many of their opinions come from that small view. Solaris developers tend to think, "no one uses windows in the data center", because they have never seen it in a data center. Windows developers tend to think, "No one uses Java since Windows has 95% desktop share", while they completely ignore the multi-billion dollar enterprise and J2ME markets. The real trip is if you talk to Mainframe or OS/400 programmers today. Some of them still think that the PC is a fad and they have no idea on how to do anything with Unix or Windows.

Can't we all be more pragmatic about this stuff? Linux is a great thing. If you can really accept that, you don't have to attack everything else.
@ 11:08 AM PDT
 
 
 
 
I had to Dump Eclipse
I have used Eclipse for almost three years for my Java development. I also got my previous company to adopt it as the standard Java IDE since I really liked it. However, I recently had to dump it. It simply has become too bloated and is unable to handle projects with a very large number of files. The project I am working on at Sun simply has many more files than previous projects and Eclipse continued to crash and hang. (I was using the latest Eclipse 2 and Eclipse 3.0 is not any better.) As a software developer, I have absolutely no patience to wait for simple tasks like opening files and restarting from hangs and crashes.

I have been using IntelliJ for about two weeks now. The first test that it sucessfully passed was being able to handle the massive number of files in my project very easily. IntelliJ also has a few features that were not in Eclipse until very recently (3.0). I am also going to try out NetBeans since it has been about a year since I looked at it.
@ 10:45 AM PDT
 
 
 
 
Where .NET Shines
Aside from the fact that large parts of .NET are a straight rip-off of Java and that Enterprise Java is years ahead of .NET, there is one thing that .NET addresses that Java never touched. I really like the .NET Globally Assembly Cache (GAC). Java always left JAR management and dealing with shared JARS almost completely up to the developer. It is up to the developer to generate a globally unique name, it is up to the developer to deal with versioning issues, and it is up to the developer to set the classpath. There is very little support for dealing with the problems that arise from shared JARs. Often times I wonder how many copies of XML libraries or Reg Exp libraries are on a system that has many (pre-1.4) Java products installed. Many people are using private copies of everything including the JVM itself. This works fine until people realize that they have to start sharing with other products in the same company or across companies. Everyone ends up implementing the same types of custom solutions. Why do Sys Admins not deal with JARs like they would shared libraries? In the Java world, we often wrap JARs into RPMs and PKGs and then pretend that its not Java. Microsoft's .NET is able to treat assemblies as first class objects to the operating system using the GAC.

Java somewhat addressed this problem with the extensions directory where users can place JRE extension JARS, but this is rather primitive. Perhaps this is more difficult for Java because it can not integrate with the OS as closely as .NET can, but I am not sure that is the only reason. Since Java really took off in the enterprise App Server space, many people were ok with dealing with these issues in their application. (Namely, the app server). But, the fact that small ISVs have to implement a custom solution or just not share at all stinks. I really don't see any reason why something like the GAC could not be implemented for Java.

.NET's Globally Assembly Cache has some pretty nice features for addressing sharing problems in a common way.
@ 10:20 AM PDT
 
 
 
 
Jonathan Schwartz at Buck's
On Monday, I took the day off to spend time with Marcie, my fiance. For breakfast, we went to Buck's Restaurant. I had been hearing about Buck's for a long time. If you are not familiar with Buck's, it is a restaurant that is somewhat of a hole in the wall but a place where Silicon Valley big shots have been known to eat while deciding the future. The restaurant has all kinds of wacky and interesting items hanging from the walls and ceilings. You can read more about Buck's on their website. I pretty much just wanted to go there to say I was there.

While there, I saw Jonathon Schwartz having a business breakfast with another person. This was pretty cool. Although I have always heard that Buck's was a meeting place for the Information Age, I was still surprised to see someone like Jonathan having breakfast there. I have heard Jonathon speak before (which he is incredibly good at), but it was fun to see someone like him outside of an executive environment.

By the time I worked myself up to say hello, he left. Oh well. Buck's is a fun place.
@ 07:38 PM PDT
 
 
 
 
The GPL Needs Updating
In the days when software was distributed on tape and floppy disks, the GPL worked well. In the days, when software ran on the local client, the GPL worked well. Then along came the Internet and the concept of Internet services. In today's world, a fair percentage of the software being used is not being distributed to the client. This is where the intent of the GPL fails. Let's take Google as an example. Google uses Linux and has made all kinds of custom modifications to various pieces of Linux. (Whether or not they are directly using GPL software versus LGPL is not relevant for my example, because we don't know what they are doing and they don't have to say.) Google does not "distribute" it's software in the ways that Richard Stallman and others were originally thinking. In fact, they don't distribute their software at all. Google only distributes the service. This means that any online services company can use all the Open Source work they want without ever giving anything back. This was not the original intent of the GPL. The original intent was to bring progress to software by sharing innovations. Google or any other online service company can now use all open source code without ever showing anyone what they have done.

Google can now go on praising open source without having to pay anything. (Anything meaning money, IP, or source code). They can sing the praises of Linux while guarding their IP as close as any other company out there. Compare this to Redhat or Sun's involvement in Open Source, who give a lot to the Open Source community.

Traditional software distribution in will continue to matter less as more and more online services emerge. If you believe in the original intent of the GPL, the wording of the GPL needs a change. This would obviously have huge implications for people who use GPL software by the current rules.
@ 10:50 AM PDT
 
 
 
 
InstallShield gets bought out
My previous employeer, InstallShield, was a privately held company until today when they were bought out by MacroVision. (story) I put a lot of time into my development efforts at InstallShield, so this is interesting news to me. It was a good move for InstallShield since they didn't have the right conditions to go public themselves. The company which bought InstallShield, is also headquarted in Santa Clara, CA, which is were I live.

This is interesting news to me, but I am very glad that I left for Sun.
@ 08:39 PM PDT
 
 
 
 
IBM and Open Source
This article presents an interesting perspective on IBM and their stance on open source. Although IBM is a strong Linux supporter, they compete agressively against JBoss and MySQL. They also certainly have no intention to open source WebSphere or DB2. IBM is not nearly as behind the general open source concept as they are behind Linux. This is a good thing for Linux, but it begs the question, what is the real plan?

IBM's real goal is to open source the base layers and then sell expensive enterprise tools which sits on top of those layers. This works well for Linux, but when open source groups start implementing the top layers, we may see a different IBM.
@ 09:00 PM PDT
 
 
 
 
Enterprise Gaming
The other week, I attended a Java One Premeire presentation on Sun's project to create a game server. The presentation focused on the fact that the gaming industry, specifically Massively Multiplayer Online Games (MMOG), are experiencing many of the same problems that enterprise environments have been dealing with for the past few years. Today's online games require a large base of servers for controlling various aspects of the game and allowing users to interact. A MMOG requires data persistence, a large grid of server systems, synchronization, and authentication. While many game developers are experts at graphics and other "client side" issues, they are really not experts with databases, security issues, or networking. In fact, some of these issues detract from the game development process. Game developers are not in the business of dealing with these sorts of issues, they are in the business of designing great games. The presenter discussed how many game development shops are coming up with their own solutions for problems that have already been solved in the enterprise world. These custom solutions often have limitations that were not anticipated during the design. Sun's idea is to bring many of the technologies that have proved so useful to the enterprise world to the server side gaming industry. This group at Sun has been talking to game developers for quite some time and is developing a custom solution specifically aimed at solving these problems in the MMOG market.

A database transaction seems more exciting when it is powering the next version of an online game.
@ 09:56 PM PDT
 
 
 
 
Photos of Santa Clara Sun campus
I joined Sun about three months ago. Recently, I took a few pictures of the campus in Santa Clara, CA where I work. Everyone at my campus has their own office with a door. This is so much nicer than my previous cube farm environment. Here are some pictures of the campus.

This poster is hanging in the cafeteria. It shows Duke (the Java mascot) and Tux (the Linux mascot) battling a bunch of paperclips.

This is a picture of the clocktower. In front of the building, is the original Sun Microsystems sign that was moved to Santa Clara.

This is the building where I work.

This is the view from the front of my building. I love the palm trees.

A sunset as I am leaving work one night.
@ 06:28 PM PDT
 
 
 
 
Are you on The Grid?
Many people are familiar with the idea of grid computing, a methodology for making a collection of computer systems act as one. In my opinion, grid computing is in the same state of affairs that computer networking was in before the Internet took off. Before the Internet, many people knew that computer networking was going to be big but many people and companies were taking very different approaches and using very different technologies. The big change occurred when people started agreeing on a standard set of services to use for acessing the Internet. Services like DNS, http, and TCP/IP are now the standard. The Internet also took off with a special killer app which came out of the National Center for Supercomputing Applications, namely the web browser and web server. (I worked at NCSA while I was in studying computer science at UIUC.)

I provide this as an analogy because grid computing today is in a similar state. Many companies are using different technologies and ideas to make grid computing real. The group I work for, N1 Grid Service Provisioning is one such technology. This product allows you to define applications and provision them across a datacenter. However, there is also an academic group called Globus which has been working for quite some time on defining and implementing the standard set of services that may create what we will one day call The Grid. Globus defines a standard set of services for defining Grid Services. Globus is way ahead of the industry in terms of thinking about how resource and application sharing could operate in the future.

The question in my mind is, what will be the killer app that makes everyone need to be running grid services? Will grid computing ever mean anything to the average consumer like the Internet does?
@ 08:19 PM PDT
 
 
 
 
Java: The XP Look and Feel
The Windows XP Look and Feel found in Java 1.4.2 and above is absolutely awesome. I really wish that Swing would have foucused on making a look and feel like this before. The company that I was previously employed by has two main installation products. One is a native windows product and the other is a Java product. The XP look and feel was so good that in certain places the Windows UI design team was producing screenshots of the Java product and showing it to the Windows developers to improve the Windows product. As an example, they actually wanted the native windows product to use the tabs (JTabbedPane) that appear in the Java XP look and feel. If you compare the two products even today, the native windows product still has uglier looking tabs.

I really hope the Java team continues to get to move ahead on desktop specific technologies even with J2EE and J2ME being so popular. The XP and GTK look and feel are really great.
@ 10:51 PM PDT
Follow-up to My Mono/.NET comments
There were a few good points in my comments section that I wanted to respond to.

Comment: In Java you couldn't really choose not to write a portable program. Obviously this won't be the case in C#, but it doesn't mean you can't write a portable program.

I agree 100%. But, to me this is similar to how die-hard C and C++ developers say the same thing about C and C++. Yes, it is possible to write portable C++ and yes STL is theoretically very portable. But, it still has all kinds of problems and is harder than Java. Even if something is 95% portable, it is always that last 5% that is the killer.

So, to write a program that cross-platform capable, just avoid the Microsoft.Win32 namespace.

This is exactly what MS tried to do with Java when they first responded to it. "Stay away from com.microsoft.* packages, and you'll be fine". I think people on each side of the fence will never agree on the issue of whether it is more imporant to have a system which favors platform independence or allows you to do everything you need easily. (For example, some people would love to see Java/COM integration.) I have personally dealt with horrible issues resulting from trying to make C and C++ code portable. Unlike Java, .NET is not really focused on portability and therefore Mono may have a tough time. One outcome is that Mono becomes another Wine. Wine is pretty good, works for some things, but is not a real enterprise solution and is always catching up.

Don't get me wrong, Mono is a very cool project and I would like to see it suceed in order to shake things up and compete with MS. My only contention is that it might be a difficult project when your lead developer (MS) does not have a Community process and sees linux as the enemy to Windows.
@ 01:48 PM PDT
 
 
 
 
 
June 2004 »
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
8
11
15
19
20
21
23
28
   
       
Today

[RSS Newsfeed]

 
© Jeff Dillon