Mar 21

Google Sued: Legal mine field of aggregating content

Google No Comments »

Many people have argued over what content an aggregator can show of a companies site.

Obvious questions come from how much of an RSS feed can you show.

Also, Google’s ‘cache’ comes into question. Can they display the entire content of sites?

What is fair use? What is allowed?

AFP sues Google over news copyright

The future of aggregated news sites supplied by internet companies such as Google was called into question today when it emerged Agence France-Presse had sued the world

Mar 21

AOP Library Meeting

AOP, Java, Tech No Comments »

AOP adoption requires a good standard aspect library.

Throughout AOSD, and indeed after the show (including on Saturday), a group gathered to discuss a new AOP library. The group consisted of the group of people named above, and other users of AOP. The first meeting discussed the scope of the project. Since we had multiple implementors (AspectJ team, and JBoss AOP for example), what could be used by both. It was really great that Bill had time to be there, as we discussed that, at a minimum, it would be good to share annotation naming/semantics. From there, pointcut language could be reused too, and potentially even more.

The bulk of the code itself will be written using the common idiom of AOP:

  • Java code where possible, doing the actual work
  • AspectJ code to do the thin wiring up to the Java modules

This also means that there is potential reuse outside of the scope of an AspectJ 5 library.

Rob Harrop of Spring was also key at these meetings. The library does NOT want to reinvent the wheel here. We have common issues such as configuring Aspects, and the default DI implementation will be Spring for this goal (Although, we talked about how we will also tie into hivemind, pico, and the like).

Spring also offers a lot of logic that we can reuse. Take a set of Transactional aspects for example. Spring has a LOT of code to handle transactions, from XA to Local, to Hibernate, to JTA, and beyond. We definitely want to just write aspects which USE these features.

On Saturday, the team ironed out a beginning taxonomy for the aspect library. Then we got to answer the age old question:

How many AOP experts does it take to come up with a reusable Tracing aspect.

The aspect library will be structured with two projects. One will be an incubation project that lives outside of the Eclipse foundation. Then, aspects will ‘graduate’ into the main AspectJ library itself which will be part of Eclipse.

A strong AO library will take AOP to the next level. The aim is to move people to using a lot of useful aspects, rather than thinking about writing everything from scratch. Imagine not having the Collections package in Java? We need a platform rather than just a language.

Mar 18

JVM Technology: JRockit, Microsoft Phoenix, and AOP

AOP, Java, Tech 1 Comment »

There has been a lot of interesting talk surrounding VM technology at AOSD.

JRockit Rules

Firstly, as Bill writes, the latest JRockit work is awesome. Why bother using a third party tool, when you can just download the JRockit JVM and have at it. The overhead is really meant to be almost unnoticeable, the metrics are fantastic, and the memory leak tool blows you away.

If you are on Intel, I think that you will be running on a JRockit JVM. And, they are working on other platforms too. I really want the JRockit team to do a screencast that we can put up to show you how cool this stuff is.

Microsoft Phoenix

Anders and company may be on the fence wrt AOP at Microsoft, but there were some other smart folks working on Microsoft Phoenix:

Phoenix is a software optimization and analysis framework that is the basis for all future Microsoft compiler technologies. The Phoenix framework is an extensible system that can be adapted to read and write binaries and MSIL assemblies, represent the input files in an IR which can be analyzed and manipulated by applications by using the Phoenix API and then the code can be written in binary, or JITable form for execution.

I saw a short presentation at AOSD and it looks very cool and promising.

I wonder if Sun will finally think seriously about getting AOP into their JVM ever.

With Microsoft and JRockit on the case, I think at some point they will have too. It just makes so much sense.

In fact, Sam Pullara talked a lot about AOP in the JVM in a session earlier today. It enables so many things, and will be a god-send to many of us. It will also make us think *very* differently about AOP.

Sam talked about how we will stop using the term “weaving”. At this point, we will be giving code to the VM. With AOP semantics. And it will be able to run the code correctly. It won’t be ‘weaving’ at all.

I think this is one of the reasons that many AOP-ists like to get the point across that AOP != interception, or “weaving”, etc.

Who knows how long it will take to get there, but I can’t wait.

Mar 18

AOP to implement Annotations

AOP, Tech 1 Comment »

The use, and development of Annotations will increase the use of AOP

Why do I say that? I think it makes sense from what we are seeing happen.

Right now, if you develop your own annotation, how do you actually DO something with it?

  • Suns APT tool (source only? come on.)
  • Reflection
  • Write a quick Aspect :)

I naturally move to writing a simple Aspect to handle the work for me.

We are seeing these thoughts via:

  • Bill Burke and JBoss have pioneered some of this thinking. Have Annotations as a nice way for users to get things done which happen to be using AOP below. And, then allow them to EXTEND using AOP themselves if they need too.
  • Adrian’s Event Driven example
  • Ramnivas’ thoughts 1, 2, 3
  • Sam Pullara also had an example showing just how simple it is to put together a small DSL via a quick annotation and an Aspect, including an @Aspect

Sam also pointed out the similarity between this model, and JView/JDirect from the Microsoft JVM.

/** @dll.import(”URLMON.DLL”, unicode) */

private static native int FindMimeFromData(String prt, String URL, byte[] pbuff, int bufsize, String prop, int dmimeflag, int[] pout, int res);

Wait a minute. Doesn’t this look familiar? :)

Mar 18

Web Frameworks == $$$$

Tech 3 Comments »

This web frameworks business isn’t just about arguing with geeks.

Now it is about serious money ;)

Check out the Buzz Game Web Frameworks Market and start trading.

Holy RubyOnRails. I suspect insider trading? ;)

Mar 18

Learning via Unit Tests

Tech 1 Comment »

Mike Clark talks about how he learnt Ruby via tests.

This is one ways in which I learn new tech/APIs too.

  1. For simple exploration, play in an interactive shell
  2. For more, start writing tests

This is definitely valuable in its own right, but what if we all started to shall our test suites?

Wouldn’t it be nice to have a few suites for Hibernate 3 say. You could download the tests which would have examples of the various parts and pieces of Hibernate (simple one-one test, simple one-many, ….).

We do have test suites from the open source technologies themselves, and they are great resources, but this would have a very different audience.

Also, what if there were also test suites which have all methods throw new RuntimeException("Not Yet Implemented"). You, the developer, would then go through and try to get as many tests to pass as possible, learning all along the way!

We are actually trying to package some of this ourselves as it would be such a cool resource.

Mar 18

Google Code: Open Source

Google, Open Source, Tech 1 Comment »

Remember the big argument over Adam Bosworth talking about open source databases? At the time some people came out swinging saying that “Google doesn’t do open source, so why should they ask others to do work for them! They just use others”.

Google came back saying:

  • We do contribute to open source
  • We do GIVE YOU GOOGLE FOR FREE!

Now, they announce http://code.google.com which has open source projects from Google.

Cedric: Where is Test NG? :)

Bob: Where is dynAop? :)

Mar 17

Microsoft is about Windows. Better Java on Windows would be good for them.

Java, Microsoft, Tech 3 Comments »

This morning, one of the Microsoft head honchos had a high level conversation with the crowd, where he explained that:

Microsoft is a software company.

Microsoft lives to make Windows the most compelling platform.

A lot of the crowd didn’t get this. There was a lot of talk about open sourcing Windows (huh?), and porting the CLR to other platforms. They aren’t in that business. It isn’t going to happen. Mono is out there, and MSFT are watching it, and they think that it is cool the Miguel and company think .NET is cool, but that is it for now.

Since MSFT is all about Windows, they are very interested in making Java more compelling on the Windows platform. I think they are hoping that the check to Sun will help them in this regard.

I would love to see a windows.* or com.microsoft.* package which allows me to do the cool low level things that I can do in the CLR. What about Indigo from Java? Avalon with Java? etc etc.

Who knows what will be allowed here, but I would be happy to see this support, from a pragmatic perspective.

Obviously, there is an interesting tension between Microsoft wanting you to run Java on Windows, and Sun wanting to have Java as a platform to allow you to work on other areas.

Mar 17

What we learned from the Microsoft Technology Summit

Microsoft, Tech 10 Comments »

Read Matt Raible’s blog for the details, but in a nutshell what we learned from the technology summit today was:

  • “If I could wave a magic wand we would all just use Ruby”, Don Box.
  • Schema Sucks. RelaxNG is the way to go, Don Box.
  • We are “sucking less”, Everyone.
  • security, security, security. It is the #1 priority now. Honest.

In all seriousness, it was a very interesting day.

Mar 16

GoogleX: Google meets the Apple Dock

Apple, Google, Tech 2 Comments »

GoogleX. I think an Apple fan had fun in the Google Labs with his 20% time? :)

On the plus side:

  • You can fit more items in than text

On the minus side:

  • You have to ‘learn’ what a lot of those icons MEAN. Having to mouseover to read the name is painful

It would be nice to have a personalized Google home page where power users can choose icons / text / icons+text… and can even choose which tools they want there etc.