May 16

Spammer, Comments

Tech 2 Comments »

Spammer Comments

I had a do a double check when I saw my comment stream the other day. There was a long list of spam comments like the top one, and then suddenly there was, what looked like, a real thoughtful response to one of my posts.

I sat there imagining a CAPTCHA farm in indonesia with a guy pluggin in spam crud, and actually being a smart chap who puts real comments into threads now and then.

Or, it could just be a glitch in the matrix…. nice to dream though.

May 15

Enterprise vs. Consumer

Java, Tech with tags: , , 1 Comment »

Enterprise  Consumer

There has been a recent shift in thought, where people believe that we are in a phase in which the consumer space is pushing innovation into the Enterprise space. The general thought process is that the Web has made things very easy and inexpensive to play, and has taken the lead in productivity which we now see pushing the behind the firewall types.

We can look back a little and see how J2EE was pushing the Java stack forward not too long ago, even if the EJB of then may not have been the right road to go down. Ignoring EJB, there were a ton of other great technologies that did actually simplify the life of the Enterprise. Some of these folks were trying to deal with CORBA. Others were used to integrating through messaging and may not have had quite the same pain. EJB was “simple” compared to the myriad of CORBA specs and half implementations though.

Jump forward a few years and we see EJB 3 having the main message as “simplicity”, and many other Java specs were doing the same. The worm had turned a little.

Of course, if you look back at history you see a ton of other stories. If we think back to how IBM was progressing the computer world from the Enterprise inwards, compared to something like the Sinclair Spectrum.

There is always innovation on both ends, and hopefully the “good stuff” that happens to transcends the needs of the consumer or the enterprise pops out to the other side.

A hot topic right now is “Enterprise Mashups”. A lot of large shops have seen how simple it is for the Web 2.0 folk to mash together Web systems to create a new system that meets their unique needs. As they watch this, they look at the massive integration projects they have going on, and how painful and expensive they are. Here we see the constant battle between the IT group and the business groups that want to just get stuff done. Access was so popular as people in the business units could hack on it just enough to get something done, without having to go to the IT department to get an app developed that would take forever. Internal mashups have the promise to do the same.

Of course, it isn’t that easy. A little Google Map + Data mashup is one thing. But, behind the firewall you have to deal with auditing, authorization, authentication, and all of that Enterprise stuff. There can be a reason why there is complexity.

Why am I blabbing on about this? I had some people talking to me about my recent Sun posting (you know, where they bleed a little) and a common thread was “should Sun stick to the Enterprise?” The thinking here is that Sun makes its money (at list I think so) from large Enterprise customers. The big consumer ra-ra around JavaFX as a Flash/Silverlight competitor makes Sun look like a company that it is not.

If you believe that the route to winning is “do consumer well, and then let it bleed to Enterprise” then you could see why Sun is so desperate to get this working. If you believe that there is room in focusing on the Enterprise customers, and giving them what they need, then you may see JavaFX as a waste.

I don’t quite see it as a waste myself. Chris Oliver just posted Why JavaFX? where he states:

Our goal with JavaFX is to deliver a “media” stack for the Java platform. What does that mean? Well, in simple terms, 5 things: Audio, Video, 2D Graphics, 3D Graphics, Animation

There is value there. If you partake in some of Ben’s vision, then Enterprise software doesn’t have to be grey and boring. In fact, it could even resemble a video game in some situations. So, having this stack is very useful indeed. The problem has been in the details. It has been sold at JavaOne as The Saviour. The big thing that Sun is working on. The thing you should be excited about with Java. In fact, it is some nice features that will enable us to do better things in all software.

As I outlined in my last post, I would just prefer to see a more balanced outlook, and one that showed a focus on other things, especially productivity. Blend this all together to show how the league of Java developers can productively produce compelling, usable software for their end users. There are legions of developers in the Enterprise trenches, at companies with large wallets, that would love to be more productive.

May 14

Damned if you do; When do you eat your own dogfood?

Comic, Tech with tags: , , , 1 Comment »

Eating your own dogfood

When should you eat your own dogfood? I saw two contrary thoughts recently that showed how sometimes you are damned either way.

Microsoft Silverlight Dogfood

I hit Channel9, or some baseball thing, or any random video site that uses Silverlight and I get the in-your-face “upgrade for a better experience” message. This has me thinking “geez, why wouldn’t they just use Flash here for the cheesy little video.” It feels forced and gratuitous.

But, then….

Curl using Flash

If you go to Curl.com you will see Flash content everywhere. It is easy to laugh and say “wow even Curl doesn’t use it!” and “How can they not eat their own dogfood”. Or, you could look at it another way: “They realise that they are enterprise players, and they don’t want to force a download on people who are just browsing their website.”

All of this brings us back to the question of when to eat your own dogfood, and it appears that the answer is nuanced. You don’t want to be bloody minded about it either way, and it depends on what you are doing. Are you forcing dogfood on your own teams that have a vested interest in making the thing better? Are you trying to shove it down other peoples throats? Could you even do both. For example, if you have Curl installed use that (showing something cool in addition), else, show Flash but have a small link to the Curl version if people are interested.

May 13

Alpha, Masks, Shapes in Apple Keynote

Tech with tags: , , , No Comments »

I am having a lot of fun with Keynote recently, and the coolest feature in Keynote ‘08 is the instant alpha tool which I show above. What makes it so good is the UI representation. You are basically pinching the areas that you want to make transparent, and as you go in and out you get an instant feel for what you are doing. It is as close to tactile feedback as you can get. Compare this to the magic wand in Photoshop, which is a nice precise tool, but doesn’t give me the same feedback and often drives me nuts. Now, don’t get me wrong, the alpha tool sometimes does an amazing job, but often comes up short, as you see in this video.

May 12

Sun is bleeding; More engineers leave as JavaFX is pimped

Java, Tech 33 Comments »

Sun is bleeding

I talked about how I thought Sun was drowning back when Chet Haase left Sun and joined the Flex team at Adobe. It wasn’t that without Chet Sun was screwed, but rather it was a sign of how things were going. The client team lost big players like Scott Violet, and then Chet.

Well, more heavy hitting engineers are leaving. When the CTO of the client division moves on (to Adobe again, no less), we yet again have a reason to wonder what is happening at Sun.

It is ironic that the exodus of talent has happened at the same time as Sun promotes JavaFX at JavaOne. As I asked people “How is JavaOne going for you?” at the end of last week I got a common response “Cool to see everyone, but I don’t get JavaFX.” JavaFX is a mistake in my book. I haven’t met anyone who was truly excited about it, and who didn’t think that Sun could be putting their engineers on better tasks.

When talking about the symbolic “Why <> instead of !=” in JavaFX Script, I was told “JavaFX Script isn’t meant for you, it is meant for designers.” Fair enough, but:

  1. What a gratuitous change. Designers somehow feel closer to <> ??
  2. Do you realise that you have THOUSAND OF JAVA ENGINEERS at JavaOne that you are talking too? I may have seen one designer.
  3. Shouting about JavaFX is like shooting fish in a barrel, and it is easy for us to sit on the sideline and quarterback Suns demise, but what I find so frustrating is that Sun has a ton of assets. It doesn’t actually HAVE to go this way. Although there isn’t a Steve Jobs to come back and save the day, like Apple did (even if Steve didn’t do it all), Sun could change course.

    I personally think it is time for Sun to be humble. Re-engage the Java developers. There are more Java developers than any other platform …. still. The army at JavaOne filters into the keynote ready to be inspired. They don’t want to feel ignored thanks to JavaFX.

    Along with your Java army, you also have a fantastic platform that is deployed all over the world. The JVM is phenominal, and could be the platform for much more than Java the language. JRuby is doing great. Scale is promising. Jython. Awesome work, but lets put more into it and take it to the next level. Make the JVM the best platform for dynamic languages as well as static. Don’t through every dynamic feature into the Java language as they will split the community. Instead, keep Java Java, and dynamic folks can jump into JRuby, Groovy, and the myriad of other choices on the JVM.

    Although people weren’t head over heals with JavaFX (and its non announcement), I did talk to people who were actually excited about the Java Plugin. Ken Russell is doing a great job, and imagine what they could do if they pushed there. The Web has won. Java could be a great way to push the Web forward. Instead of thinking about the applet as a way to draw rectangles, think of it as an extension mechanism. Using it for our Wii demos was simple. There is much exciting work that could be done here. My old “Ruby in the browser” work is not a lot cleaner with JNLP support, and JRuby builds out a JNLP package ready to rock and roll.

    Use your power in the Enterprise. Instead of the current Java EE focus, how about also making a productivity play. Make Java the most productive way to build phenomenal applications. Come out kicking and screaming at next JavaOne saying:

    • No CEOs of Sony Ericsson this year
    • No Neil Young
    • This keynote is about YOU, our developers, and everything we show in the next two hours ships TODAY
    • In the next two hours we will show you how excited we are about how you can deliver world class applications on the Java platform.

    Get people off their seats. Inspire them. Cull the bleeding and move on. The assets are in place, now it is time for the momentum to change.

    NOTE: I talked about some of these issues in the JavaOne Roundup Podcast with @cote of Redmonk.

May 10

Definition of an IDE

Comic, Tech 5 Comments »

Definition of an IDE

Someone shoots you some Java source code, you try to just open it up in IntelliJ, and then you realize that you need a freaking project. Instead, you open it up in Textmate and go from there.

Hence, the definition of an IDE:

If you have to create a project before you to open a file, you are using an IDE

Good tools can be very rich, but not enforce this. Emacs can act as the mother of all IDEs when it comes to functionality, but you can also right click and open a darn file. At this point, I would never build a programming tool that didn’t work in either mode.

May 09

Lifehack: Accessing Safari/WebKit tabs via a key stroke

Tech, Web Browsing with tags: , , No Comments »

I love how Firefox lets me hit Apple (or Splat as James Strachan calls it!) plus a number to go to the given tab in the browser window.

I often follow the pattern of “open new link in a tab and go to it at the end” and also have windows open with known apps up in the same tab location so I can get to them quickly, without even thinking. Being able to Splat-9 to go to the end is key to this of course.

Although Firefox does this by default, WebKit/Safari does not, so I changed it via a simple hack that others have mentioned. Some people saw me doing this at JavaOne and asked me how I did it, so I decided to quickly show how it is done in the window below.

The steps to follow are:

  • Generate AppleScripts to tell Safari and WebKit to go to the right tab. This is talked about here, and I have a slightly modified version that I will paste at the end of this post
  • Tie together the AppleScript to the browsers. I tried to use simple keyboard bindings in the keyboard pref panel, but that didn’t work, so I ended up using Quicksilver triggers

See how it all fits together below!

May 08

Job Swapping Priorities and a Macbook Pro

Comic, Tech 1 Comment »

Job Swapping Priorities

I had a conversation at JavaOne yesterday with a couple of chaps who had some interesting thought processes on taking a new job.

One of them had an offer from a company that he liked, that would have him changing location (which he wanted) but he was wondering if he should wait for WWDC and see if a new Macbook Pro comes out, and thus join afterwards getting the laptop. The thought of joining now, getting a current version, and then seeing a new one came out would be torture.

I sat and listened for quite some time before suggesting that if this was SO important to their package, that maybe they just tell the prospective employer and if they want them, they will probably buy the bugger a new laptop when it comes out.

Always funny to hear the priorities of the developer. Laptops, free t-shirts, and free food.

May 07

JavaOne 2008, or was it 2007?

Java, Tech with tags: 1 Comment »

JavaFXOne kicked off yesterday, and I captured pieces of the keynote which are seen below as separate videos in the custom player. Someone nailed the keynote pretty well when they said “Shouldn’t this have been last years keynote?” Nothing was actually announced here. The only “you can get this today” code drop was for Update 10 which has been out for months!

Update 10 has some cool features though, and the updates to the Java Plugin are key. If Sun spent a tenth of their time on that versus JavaFX they could do great things. Use it as an extension point instead of a paint mechanism!

Well, now off to polish the presentation that Ben and I give at 4pm today. A sneak peak: If you fancy watching a demo that involves the Wii, show up for a bit of fun!

May 05

Being Open is hard, as we have seen this week

Open Source, Tech 5 Comments »

Open

The last week or so has been a stark reminder of how hard it is to do “Open”, and how the term itself doesn’t mean anything. There are many shades of grey when it comes to open. Let’s take a peak at what happened, and then try to come up with some tools to help us communicate what we truly mean.

Ext JS

This one has been talked to death. At its heart, the project originally had a license that was hard for people to understand. The “LGPL unless” clauses were unclear, and many thought untenable. At best, it was very cloudy.

After some people discussed the issues, mainly in private, with Jack we saw a new Ext 2.1 release until the GPL license (no more special clause). Some were unhappy about this, mainly because it was also unclear that the team actually said “we were wrong” and that these folks had a right to fork the project due to LGPL. Jack quickly came out with an exceptions clause and people are trying to iron this out.

SpringSource Application Server

SpringSource announced a new product for JavaOne, an application server. The Spring Framework itself is licensed under the Apache license, yet the new application server is GPLv3.

This caused a bit of a stur, as people were unclear of the difference, and I read a few posts saying that everything had been changed (which is totally untrue).

Marc Fleury came out of the biotech wilderness to comment on this all, claiming that this is just a packaging of the old stuff with a new license to kick into gear a new business model:

So voila, we now have a box drawn around an OSGi kernel, the Spring framework and Hibernate/Tomcat, and it has a name: it’s an application server. It is the same thing you had yesterday for free, except it is now under the GPL and a proprietary subscription license.

Rod and the team consistently argued that there is actually a lot of engineering here. One little embarrassing moment was in one of the TSS replies. Both Rod and Adrian replied to a message with the same boilerplate response:

Creating an application platform that makes the benefits of OSGi available to end users was a huge investment for us. There’s a *lot* of technical innovation under the hood which won’t be immediately apparent but which enables us to make a generational leap. If we’re giving that technology away in open source, we wanted others who build on it to also give away the results in open source.

When the community saw that, they thought that this was very much canned.

Adobe SWF / FLV Binary Specs

Adobe made a big PR announcement around the opening of Flash and more.

When you come out and say “now we are Open” it gets everyone excited. Their stock bumped up, which may or may not have been related to this (a lot of stocks went up at the same time).

I was ecstatic to see the news on the wire, because I think this will be great for the Web. If we could get Flash to be part of the Open Web, I would love to see it as a win-win.

Unfortunately, when I looked into the details, there wasn’t much to see. The claim was that the FLV/SWF/F4V binary formats will be Open, and there will no longer be the restriction that said you can’t RUN the code.

The problem was that there was no license to go along with this claim, which means that we can’t actually do much with it yet. Adobe isn’t more “Open” today than it was the day before the announcement. This will hopefully change very soon when we actually see the license, and hopefully see even more.

Time to learn

What did I learn through all of this? All of this licensing lark is about clarity and communication. I actually like all of the three parties here. I consider Jack, Rod and many Spring-ers, and lots of the Adobe folk as friends.

When it comes to licensing:

  1. You need one, please
  2. Please make it a standard one
  3. Be careful which one you choose first, as changing it later will cause a lot of issues.

All of the concerns have been due to communication through licenses and on top of them. The license is a great starting point, but it isn’t enough.

So, what does it actually take to be Open?

  • 0 points: Say you are open
  • 10 points: Choose an OSI license
  • 20 points: Define the governance of the code, or the protocols / specs. If the spec gets a license that is great, but how does it get changed? Does Adobe hold all of the cards still? Can others participate? For code, who participates? Can anyone patch? Can you, and if so how do you become a committer? At the core: HOW ARE DECISIONS MADE
  • 30 points: An reference implementation under an open source license
  • 40 points: Where does the IP stand? Did you donate it to Apache or some other foundation? For an example, you can see Exhibit B: Patent Non-Assertion Covenant for the OpenSocial Foundation Proposal

Now, this can be a gradual thing. It is common to start at one end and then slowly move down the stack. It took some time to get the OpenSocial Foundation in place for example, and everyone involved is still working out the governance model.

Also, no answer is “right”. You can put code out there as open source and hold all of the cards. That is your prerogative. It is so easy for us to sit back and say “Oh come on Jack, just put it all out there!” or “Spring? GPLv3? Come on!” or “Adobe, just open source the entire Flash VM!”. These decisions have huge business ramifications, which huge potential consequences. You can understand how it is hard.

All we can really ask is to have the clear communication. Just be honest with us. Be clear with your intentions. The ramifications really do effect us too. I may get more involved in a project that isn’t just run by one company, where they can change things on a whim. If the purpose for using open source is more than the insurance of “if they do something I can fork it” then this stuff matters hugely. Some are in the game for insurance, but in general I think that people like to also get behind causes. They want to put energy into something they believe in. As soon as this happens your project has a part of us in it, and you need to respect that.

I am really excited to see a day though where SWF/FLV does have a clear license, thoughts on governance and how the community can get involved there, and frankly, guidance from Adobe on why they are doing this. Based on that information, people will get more or less excited. Others have already reverse engineered the Flash formats, and a Flash player that lives in the wild under full control of just Adobe means a certain kind of “Open”… one that isn’t very. I have belief that over time, the need and desire will push Flash over the edge. You only have to look at where things have gone with Flex, Tamarin, and other open source projects at Adobe. Macromedia is winning, and over time Flash will surely be open source, especially as Silverlight gets better.

The Peeps Don’t Care

Finally, I know that 99% of the developers out there may not even care, let alone users. There are open source wonks who like to argue about licensing and methodologies. As I watched the John Adams HBO series, I felt a little like those fine chaps arguing over the finer details of things. Many of the people didn’t know what was going on there, or why a particular Article was written the way it was. But, they had drastic implications for the people. I think that the same can hold here for some of the projects.

We need to pat backs when they deserve it, and hold the feet to the fire a little when the details don’t match the rhetoric. I can’t wait to see a better software world continue to grow over time.