Incremental Software Development without Iterations

Movable Type 4.0 Beta Launches, Platform To Be Open Sourced

Salesforce.com, Google release first joint product

(InfoWorld) - Salesforce.com Inc. and Google Inc. announced a strategic global partnership Tuesday, but it wasn't the widely expected tight integration between Google Apps and Salesforce.com's hosted CRM (customer relationship management) software. Instead, the two vendors brought out their first jointly developed and co-marketed product combining Google AdWords with Salesforce on-demand CRM.
[ See Reality Check blog post: Google, Salesforce miss the mark. ]
Speculation reached fever pitch in recent weeks that Salesforce.com and Google would integrate their respective hosted applications to counter Microsoft Corp.'s move into on-demand software with its Live applications, which will include a hosted version of its Dynamics CRM offering. There were even suggestions that Google was ready to acquire Salesforce.com.
The two companies have a lot in common in terms of their company culture, their technologies and their belief that pay-as-you-go Internet applications will become increasingly popular. "There's a natural fit," said Kendall Collins, senior vice president of marketing at Salesforce.com, of the relationship with Google.
The two vendors have been looking at where their businesses intersect and where they could both derive substantial business. They decided to work together on a new offering to target small to midsize businesses (SMBs) and integrate AdWords with Salesforce CRM.
AdWords allows companies to advertise their products to people using Google's search engine and to associate their ads with specific keyword searches so the ads may appear next to particular search results.
Using the new product, which is called Salesforce Group Edition featuring Google AdWords, a company can immediately connect to AdWords and create an ad linked to particular search results. Customers clicking on that ad are taken to the company's Web site and encouraged to complete a form with their contact details, which then automatically becomes a new lead in Salesforce CRM. Those leads can then be shared around the company and managed through Salesforce CRM.
Users will also be able to link existing AdWords accounts to Salesforce CRM and to create new AdWords accounts, Collins said.
Potential customers can try out and then purchase the new product from a special microsite on the CRM vendor's Web site.
The new product will immediately replace Salesforce.com's Team Edition offering, Collins said. It will be available in 14 languages and in the 43 countries where Salesforce.com operates. Under a promotional deal, the new offering will initially cost $600 for a five-user edition per year, as compared with $995 for the five-user Team Edition. The list price will end up as $1,200 per year. For users in Canada, Mexico and the U.S. who are new to AdWords, Salesforce Group Edition featuring Google AdWords also comes with a $50 AdWords credit.
Under the terms of the nonexclusive agreement, Salesforce.com will take 100 percent of the $600 annual subscription fee, while Google will garner the lion's share of the advertising revenue generated, with the CRM vendor receiving a small undisclosed portion of those ad sales. Google's hope is that teaming up with Salesforce.com will enable the company to reach new SMB customers.
Salesforce.com's goal is to ensure that all of its CRM offerings have some component of AdWords, Collins said.
It's likely that this is the start of an intensification of the Google, Salesforce.com relationship, with perhaps the tight integration of Google Apps and Salesforce CRM to come.
"Where will we go next?" Collins asked. "Stay tuned."
SQL Server 2008 CTP Announced

Monday Microsoft released a CTP of SQL Server 2008. SQL Server 2008 will support, what the product overview calls, dynamic development.
Dynamic development enables us to build our applications in terms of business entities instead of tables and columns. This will accelerate development of new applications with a higher level of data abstraction exposed in the .NET Framework through the Entity Framework and LINQ components.
Exciting times!
Intel releases new 10.0 compiler

Silverlight and XAML, have you guys met Old Man SVG?

XAML and SVG, separated at birth?
Windows Presentation Foundation introduced vector graphics as a first class citizen in the desktop development arena. XAML, the language used to define WPF applications, contains pretty good support for describing vector graphic images.
Of course, there was already a pre-existing W3C standard for vector graphics - SVG - which is supported in most modern browsers except Internet Explorer. Why doesn't WPF just use SVG for vector graphics? That question's pretty quickly answered when you start to actually study WPF - WPF is an entire application framework, and the vector graphics portion was written to fit with the rest of the framework. Ian Griffiths described it pretty well back in 2004:
"On the face of it, it seems strange to invent a new way of representing vector graphics in markup when a standard already exists. However, the principal advantage of these shape classes is that they have been designed to integrate into the Avalon programming model. The vector drawing elements derive from the same FrameworkElement base class as all other XAML elements, and follow the same naming conventions...
By not using SVG, Avalon ensures that vector graphics can be mixed in with any other kind of markup in your XAML, and can take advantage of all of the same layout facilities."
Aside: XUL, Mozilla's XML User Interface Language, took a different approach by aggregating existing technologies such as HTML, CSS, SVG, and Javascript.
Microsoft doesn't care about SVG people!
However, the actual vector graphics code in these systems is remarkably similar, and it's a shame that XAML seems completely oblivious to the pre-existing SVG standard. This is of course an even bigger question now that Microsoft's new web technology, Silverlight is as ignorant of SVG as Internet Explorer's always been.
I've been surprised at the lack of support and / or interest in loading SVG into WPF. SVG (scalable vector graphics) and WPF shapes are very similar. Compare the SVG and XAML code to create the Windows logo:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 105 95">
<path fill="#7B4" d="M106,13c-21,9-31,4-40-2l-10,35c9,6,20,11,40,2l10-35z"/>
<path fill="#49c" d="M39,83c-9-6-18-10-39-2l10-35c21-9,31-4,39,2l-10,35z"/>
<path fill="#E63" d="M51,42c-5-4-11-7-19-7c-6,0-12,1-20,5l10-35c20-8,30-4,39,2l-10,35z"/>
<path fill="#FD5" d="M55,52c9,6,18,10,39,2l-10,35c-21,8-30,3-39-3l10-34z"/>
</svg>
Now in XAML:
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Path Data="M106,13c-21,9-31,4-40-2l-10,35c9,6,20,11,40,2l10-35z" Fill="#7B4"/>
<Path Data="M39,83c-9-6-18-10-39-2l10-35c21-9,31-4,39,2l-10,35z" Fill="#49c"/>
<Path Data="M51,42c-5-4-11-7-19-7c-6,0-12,1-20,5l10-35c20-8,30-4,39,2l-10,35z" Fill="#E63"/>
<Path Data="M55,52c9,6,18,10,39,2l-10,35c-21,8-30,3-39-3l10-34z" Fill="#FD5"/>
</Canvas>
Unfortunately, Microsoft seems to have decided to pretend that SVG just doesn't exist. Expression only works with XAML, and has no SVG import or export. Microsoft seems to see SVG as nothing more than the native format of their competitor, Adobe Illustrator, rather than the most widely accepted and used vector graphics file format. The only Microsoft application I can think of that supports SVG is Visio, and only via export.
The quest for the SVG to XAML converter
Since WPF is ignorant to SVG's existence, I went looking for an SVG to XAML converter. Since the formats are so similar, I figured it would be a no-brainer. Not so.
- SVG2XAML was discontinued in 2004. SharpVectorGraphics (SVG#), which powered SVG2XAML, was abandoned in 2005; the latest version wouldn't build for me.\
- Xamalon had support for Adobe Illustrator's SVG format, but unfortunately they were ahead of their time and couldn't hold out waiting for the long, long, Longhorn release.
- There's an Adobe Illustrator SVG to XAML converter, but it requires Illustrator. I'm an Inkscape user, though, so that's no help to me.
I was looking into starting an SVG to XAML project when I finally started finding some answers.
WPF-Graphics.com helped me to lose weight and pick up chicks
WPF-Graphics has some cool class libraries which convert a variety of vector formats to XAML, including SVG. The SVG reader, WPF-Graphics ReaderSVG, allows for loading from an SVG resource (locally of via URI) via some really simple code:
Viewbox svgButton = Ab2d.ReaderSvg.Instance.Read("openButton.svg"); myButtonsStackPanel.Children.Add(svgButton);
The sample application did a decent job with loading the basic paths for some of the SVG files I had sitting around (apologies, Scott). It didn't handle embedded bitmaps well, especially in dealing with absolute vs. relative coordinates which seems to be one of the tricky differences between SVG and XAML.
It's a free download, so give it a spin. Note that you'll need to have the Visual Studio 2005 extensions for .NET Framework 3.0 (November 2006 CTP) installed to build the project. The only bad thing I can think to say about Ab2d.ReaderSvg is the licence, which restricts use in a commercial program without the author's permission; I wonder if there's a cost involved and, if so, what it is.
Anything worthwhile can be done in Javascript...
Also very interesting is Sam Ruby's a javascript SVG to XAML converter that's working pretty well (information here, demo here). Here's a direct link to the javascript file.
Let's hear it for sleazy hacks
There's another way - eddwo's Cheap Trick for SVG > XAML Conversion:
1. Open the SVG in Inkscape.
2. Save it as a PDF.
3. Open the PDF in Adobe Reader.
4. Print the PDF to "Microsoft XPS Document Writer"
5. Rename the xps to zip.
6. From the zip extract out /Documents/1/Pages/1.fpage
7. Rename the fpage to xaml.
Within the file the top level element is FixedPage, which contains a Canvas with the relevant paths. You can pull out just the path data and use it in your app.
Rather a long way around, but it seems quite effective.
You can't print straight to the xps writer from inkscape, as it just prints as a bitmap rather than preserving the vectors.
Intel, Asustek announce plans for low-cost laptop
(Reuters)

Reuters - Intel Corp. has
detailed plans to team up with Asustek Computer Inc. (2357.TW),
the world's largest maker of computer motherboards, to make a
notebook PC that would cost as little as $200 and be aimed at
mass markets in developing countries.
Ask3D: Ask.com One-Ups Google Universal Search

Ask.com has just announced the next stage in its evolution as a major search engine. It is called Ask3D, a name which had me expecting an amazing new leap in Web UI (3D search!!) and then got me reminiscing about the time I saw that Jaws sequel in 3D... Turns out Ask3D isn't quite as innovative as its name suggests, but still it is an iterative improvement over the previous version, called AskX (more on that below).
So what is Ask3D? It is essentially a synthesis of Ask.com's technologies and it integrates content from various media types (web, news, blog, video, images, etc) onto one page. That is where the similarities to Google's Universal Search come in. Ask.com itself says Ask3D is about synthesizing "across the three dimensions of search: Expression, Results and Content."
Further, the company says that Ask3D uses its "new Morph content-matching and ranking algorithm" and claims it "dramatically transforms the entire search results page based on your query by customizing sources, selecting content, ranking results and exposing tools differently for each different search you conduct." There's a bit of wordplay going on here, but essentially Ask3D is about unifying search results - as is the case of Google Universal Search.

Certainly, as Techcrunch noted, Ask3D is the next step up from AskX, the next-generation search UI that Ask.com released in beta back in December. Ask.com told Read/WriteWeb that "we've changed a lot, especially in the technology, since our AskX experiment, so this is really a brand new release."
In its promotional literature, Ask.com says that it has re-defined the process of searching:
"Before Ask3D, search required three separate and distinct steps: 1) composing a query, 2) reviewing search results, and 3) finding content. At each step, users were left to their own devices to iterate, investigate and navigate. After extensive development and live user testing, Ask.com has created a better way. Ask3D marries powerful new technology with innovative, patent-pending design to intelligently unify search, results and content into a single search application."
Ask.com is calling this "Instant Getification", a rather awkward phrase. It all sounds great in theory. How does it deliver though? I tested a few queries out. A search on "Barack Obama" was one of the better examples:

This query brought up a lot of very relevant info about Obama, including a short description of him, pointers to official and other relevant sites, images, news, info from Wikipedia, video, and shopping (you guessed it, "The Audacity of Hope [by Barack Obama]"). There are also lots of little 'nice to have' features, such as clicking on the binoculars bringing up a preview of the link:

Comparing Ask3D to AskX
At first glance the results in Ask3D didn't seem that different from my Lou Reed query of AskX last December:

But to make sure, I decided to re-do my Uncle Lou query in Ask3D...

Apologies for poor screenshot (I need to increase the width of this blog!), but I can tell you there are subtle improvements between AskX and the new Ask3D. It seems slightly less cluttered, and has some neat features like being able to play Lou Reed songs with just 1 click on the results page (it automatically went to iLike and started playing the songs). Also I discovered some great Lou content I hadn't seen before - like The Lost Lou Reed Interviews on YouTube! [note: it's not the real Lou Reed, but a somewhat fatter gum-chewing New Yorker with a beard! perhaps indicating the shortcomings of semantic search :-)]
Conclusion
While Ask.com is using some artistic license to describe the changes, it actually does seem to offer more utility than Google Universal Search. At its heart Ask3D is, like Google's upgrade, an integrated set of search results on one page. This is something that Ask.com has always tried to do - present search results that give a variety of content on one page, so users don't need to go hunting around for it. So Ask.com has more experience than Google at doing this; and I think it shows. The amount of useful information you get on page one of an Ask3D search results page, and how it's presented, is arguably better than what you'll get on Google (forgetting for a moment the quality of the underlying algorithm, which I didn't test).
So this is a good move by Ask.com to improve its UI and search results presentation. Will it be enough to overcome Google? Unfortunately it isn't that game-changing, especially as Google's Universal Search is tackling essentially the same problem (how to unify different types of search results in one page). But for now Ask.com has the edge in UI over Google, so maybe they will grab some much needed market share.

