Apr 20

Google Personal, one step closer

Google, Search, Tech 2 Comments »

I have been wanting more of a personal touch from Google for awhile, and it looks like they are coming up with the goods.

Google Labs just came out with Search History, in beta.

Now you can choose to tell Google to watch over you and help out.

There are definitely privacy issues surrounding some of the more ‘out there’ personal search features (e.g. social networking ‘those who searched also searched’) but it is great to see this first step, and I look forward to more!

I always like the integrated experience with Google. When I sign up for something I don’t have to go to a DIFFERENT place. www.google.com is still the entry point and it just knows that I want a personal touch.

Apr 20

Argos: Simple Java Search Engine Wrapper API

Java, Search, Tech 2 Comments »

Nick Lothian has put up a 0.1 release of a nice Search Engine wrapper API called Argos.

About Argos

Argos is an open source (Apache licenced) Java library for accessing the search APIs provided by internet search engines. It provides a consistent, extensible and easy to use API, while supporting advanced features such as a paged request model and a simultaneous search across multiple engines.

Argos currently supports the following search engines:

  • Blogdigger
  • Del.icio.us
  • Feedster
  • Google
  • Google Desktop Search
  • MSN Search
  • Technorati
  • Yahoo

Here is an example of running a simultanous search on MSN and Blogdigger:

List<Searcher> searcherList = new LinkedList<Searcher>();
searcherList.add(new MSNWebSearcher());
searcherList.add(new BlogdiggerWebSearcher());

SimultaneousSearcher searcher = new SimultaneousSearcher(searcherList);

Iterator<SearchResult> it = searcher.search("Java");
while (it.hasNext()) {
SearchResult result = it.next();
System.out.println(result.getTitle() + " Address: " + result.getAddress());
}

A nice simple API, and one consistent one for a group of search engines.

Apr 20

Adobe / Macromedia. PDF / Flash. Print / Web. Mobile?

Tech 4 Comments »

There has been a lot of talk surrounding the Adobe acquisition of Macromedia.

My initial gut feel was that this is smart of Adobe, as it opens up their market to many other areas. Although there definitely are overlaps (Dreamweaver / GoLive, Photoshop / Fireworks, etc etc etc), there are leaders in each area, so it won’t be too hard to decide where to go.

The bigger point is that the companies have very different niches. Adobe quickly nailed Print, grew into Web via PDF and some web tools, and even has a group that works on server-side products. Macromedia can bootstrap the web effort.

Flash?

Tim Bray thinks that “Flash is a distraction”, and has the wrath of Flash lovers on his case :)

I am a fan of technologies such as Flex (Lazlo etc), so I think there is a lot of room to work there. It isn’t going away IMO.

Mobile?

Russ Beatie zoomed in on the mobile piece of the puzzle:

How important is mobile to the combined company? Mobile is a huge new market opportunity for the combined company. Macromedia has demonstrated significant momentum with key partners like Nokia and Samsung and the combined company will accelerate this new business.

and AP had something to say on that front too:

Both companies said the long-rumored acquisition was not to consolidate and cut costs but to help Adobe expand into new markets, particularly in the area of providing content to mobile phones and other handheld devices.

All in all an interesting play for both companies. It will be a delicate merger, with a lot of big decisions to be made. With Avalon coming around from Microsoft, there is even more at stake.

Apr 20

Spring Modules 0.1

Java, Lightweight Containers, Tech No Comments »

It was cool to read from Rob that Spring Modules 0.1 has been released.

After a few weeks worth of effort in setting up the project and getting our initial codebase started, we have finally released Spring Modules 0.1.

This release includes:

  • Spring-style configuration for OSWorkflow
  • Support for JSR-94 rules engines
  • HiveMind integration
  • Commons Validator support migrated from Spring sandbox

You download the release from the home page.

As Spring has grown so fast, it needed a way to have modules, else how could it be called Lightweight? :)

0.1 has some useful stuff already, and I am sure there is a lot in the works to move over to that playpen.

Apr 19

Rebirth: Cardinal to Pope Benedict XVI

Personal 3 Comments »

It is very surreal to watch the ancient ceremony involved in picking a new Pope. This is the first time that I have witnessed something like this, and it sure is an experience.

It is the closest spectacle that I have seen, that mirrors a true rebirth. Caterpillar to butterfly. Counselor to Emperor ;)

I wish him well, and I hope that he moves a little more to the center from his positions as a cardinal. He has a HUGE role to play, and I really hope we can move on from anti gay rhetoric. I pray for that.

Apr 19

AOP Caching

AOP, Java, Tech No Comments »

Cedric has responded to the article on TheServerSide, Implementing Object Caching with AOP.

He discusses the coupling issues that are intrinsic to any of these crosscutting problems.

The nice thing about AOP, is that it gives you the tools to add to the balance.

You can choose to:

  • Use a marker based approach (@annotation / marker interface / naming convention in methods [normally bad])
  • Have a more complicated policy defining a pointcut in code (e.g. List around(String productGroup) : getInterestRates(productGroup) {)
  • Define a DSL in some form to handle the configuration

At the end of the day, these are all the same in more ways than they are different. Cedric says:

It should be configurable externally. You don’t need AOP to branch conditionally and disable (or alter) your caching logic at runtime. Most of the EJB and web containers that I know have been providing this kind of functionality in XML files for quite a while.

This is an example of a DSL. In this case, there is a very formal way to specify SOME form of caching for EJBs. It is very limited, but it is well specified.

A lot of the time people want a lot more control (and not be forced to use EJB ;), and that is where the other options come in. You could create your own XML definition which powers the caching configuration (an Aspect could grok that), you can use annotations if you think it makes sense to declare the configurability of the caching IN the area of the code, or you can modularize it completely by NOT having this, and having it all in an external aspect. At this point your code doesn’t know about the caching cross cutting concern.

In my opinion, there is no RIGHT answer for all of your needs. As with all these things, depending on your use cases, you will find the right balance.

We added Tangosol Coherence to the TSS code way back, and we only needed caching in the form of DATA caching. Thus, we could add it to our persistence layer, in one simple place, and the AOP approach may well have been overkill here.

But there are many other types of caching, and I think an AOP modularization of this concern makes a lot of sense.

Apr 19

Next Rich Internet based Email from Lazlo

Tech, UI / UX No Comments »

We have had simple web based email, Outlook Web Access, GMail, and more. Now Lazlo has gotten into the fray to create a rich Web Email application for Earthlink.

It will be interesting to see how a Lazlo-based system can give us some innovation. One thing I would be keen to know is if the app is available when offline, and if ‘tagging’ rather than the folder based system is applied.

Apr 19

Versant offers their JDO/EJB3 implementation to Eclipse

JDO No Comments »

Versant is giving JDO 2.0 and EJB 3.0 to Eclipse.

I think this is a smart move for them, as their business model isn’t to make money on an ORM, but selling OODMBS, and other OR solutions.

Now there are quite a few implementations (Apache JDO, JPOX, etc), and other vendors are doing cool licenses for the community.

When JDO 2.0 and EJB 3.0 are both final drafts, we will see some very cool runtimes and tools to work with.

More power in the fight for Vietnam (as Ted says).

Apr 18

Using a Mobile for Travel

Mobile, Travel 2 Comments »

As I went through the lovely process of international travel last weekend, I found myself thinking about how technology could potentially help out in a few areas.

As I picture the Finns (and others) walking up to a Coke machine, hitting a few buttons on their mobile, and getting a can out of the bottom, I wonder if we could do the same with travel?

Imagine the following scenario:

  • Mobile tells you that you are able to select a seat, and checkin to your flight, 24 hours from NOW
  • You choose a seat on the screen, and are officially checked in
  • You are constantly updated with information on your flight. Its status, the gate number, whether the plane is actually ARRIVED to the gate yet, etc
  • Some kind of handshake between your phone, and the airport systems occurs
  • You can see where your luggage is at ALL times!

It would also be cool if you could select food for your flight from any food vendor at the airport, and have it delivered for your flight. Considering the quality of plane food, that would be a plus (although there are logistical issues such as what if your flight is cancelled, stand-by, etc etc).

Update

I was pinged about Airport Monitor which shows flight info in a nice Java Applet (yes, a Java Applet). It shows a backlog of info, as to not help people use the data for bad ;)

Apr 18

Call by Locality

Mobile No Comments »

I find myself falling for using the Call By Locality pattern. This revolves around calls that I make on my mobile, depending on MY physical location. For example, I was just in europe, and flew via Minneapolis. When at the airport, I called a friend who just had a child, and family that lives there to chat. It isn’t like I was able to see them or anything, so I could have been calling from anywhere… but I did it there.

I did the same in London. When I landed, I started to text my old mates to say hi, even if I couldn’t see them. It isn’t like I couldn’t have done that from home.

I even had a call from an English friend who is living in Canada, calling me in England, as he knew I was there!

I know the simple answer is that being somewhere reminds you of a person, but it always makes me laugh.