Sunday, September 14, 2008

Technorati Ranks Mike Ormond’s Blog #8 with Authority of 11,764

I consider myself lucky to maintain a Technorati Authority of 76 to 80 for the OakLeaf Systems blog. (It once hit a high of 130 when I posted a controversial topic.) 

So I was surprised when I accidentally clicked on Technorati’s synopsis of a recent post about the Entity Framework by Microsoft UK’s Mike Ormond, as shown here:

 

I didn’t notice the Authority rating of either entry for Mike’s post in the preceding blurbs, but I did when I saw Mike’s rated #8 out of the approximately 2,000,000 blogs Technorati spiders, as shown here:

To give you an idea of some technology blogs competing in this authority range, TechCrunch is #2 with an authority of 22,152 and Gizmodo is #3 with an authority of 21,123. Scott Guthrie (ScottGu) ranks 739 with an authority of 1,855 (but his posting frequency has dropped considerably in the last month or so).

That’s not to say Mike’s blog isn’t great; it’s on my Feeds list to check every four hours.

However, Mike says its real Authority is 39 83 (see comment). The point is that rating a group blogsite (e.g., http://blogs.msdn.com) by the sum of its members authorities is nuts.

Issue: The preceding links appear to appear and disappear randomly and for no apparent reason. Several of my recent posts with Entity Framework tags still don’t appear in the list and the Entity Framework post frequency today is obviously incorrect:

I posted at least 10 items with an Entity+Framework tag during the period 8/20/2008 and 9/10/2008. It appears that Technorati was encountering spidering problems before their initial outage in August.

Note: My A Suggestion for Technorati's Blog Authority Ranking Algorithm post of 5/8/2007 suggests an improvement for Technorati’s ranking algorithm. However, it would make better sense for Technorati to concentrate on consistently listing new posts by tag and eliminating aggregate ranking of group blogsites before considering a more accurate ranking algorithm.

Friday, September 12, 2008

LINQ and Entity Framework Posts for 9/8/2008+

Note: This post is updated daily or more frequently, depending on the availability of new articles.

•••• Updated 9/14/2008 7:00 AM PDT: Addition of EF POCO v 1.02
••• Updated 9/12/2008 9:00 AM PDT: Additions to EF, LINQ, Astoria, SSDS, and Sync Services  
•• Updated 9/11/2008 2:00 PM PDT: Additions to EF, LINQ to SQL, LINQ (to NHibernate and XML), Misc. (Technorati, MVC) 
• Updated 9/10/2008 10:00 AM PDT: Additions to LINQ to SQL, Astoria, Dynamic Data, and SQL Server Compact

Note: All DevDays 2008 session links point to the MSDN Spotlight page because login with a Windows Live ID is required and links without a session ID fail.

Entity Framework and Entity Data Model (EF/EDM)

•••• Jarek Kowalski has updated his Persistence Ignorance (POCO) Adapter for Entity Framework V1 (see below) to v1.02 to fix three issues reported by users that his EF POCO Adapter updated (v1.02) post of 9/13/2008 describes. Download the updated code here.

••• Elisa Flasko’s PDC 2008 - Los Angeles, CA - Oct. 27-30 post of 9/12/2008 to the ADO.NET Team blog describes Tim Mallalieu’s Entity Framework Futures session at PDC 2008:

The next version of the Entity Framework adds scenarios in the areas of   model driven development, domain driven development, simplicity, and integration. See a preview of production and prototype code for the next version of the Entity Framework as well as a candid discussion with members of the development team.

In the meantime, EF V1 pilgrims are still awaiting the arrival of the promised minutes of the first EF Advisory Council meeting.

Alex James provides a detailed description of the plans for adding a domain-design-first feature to Entity Framework v2 in his Model First post of 9/10/2008. Topics include:

  • Generating Databases from Models (an overview of the process and UI)
  • Under the Hood (a description of the Sequential Workflow WF implementation)
  • Stage and Purpose (of each WF element)
  • Templates (the T4 templates that perform CSDL to SSDL, CSDL to MSL, and SSDL to DBSchema transformations)

Huageti Systems’ Kristofer Andersson notes in his Tools - Part 5 - Add-ins - Documentation features in Entity Framework vs Linq-to-SQL post of 9/2/2008:

[EF’s documentation feature] has a cosmetic flaw: In the haste to release VS2008 and .net 3.5 SP1 it seems like MSFT forgot to apply the entity type documentation to the entity set accessor properties, so entity sets (and all undocumented classes and properties) will show the default “There are no comments for [name] in the schema.“. I would like to see the EntitySet using the same documentation as the EntityType, or at least have a “Documentation” property of its own. (It does in the EDMX, but not in the designer)

The “There are no comments” default value is a bit redundant and waste of screen real-estate. Why not leave the default value blank? Oh well, this is just version one so I guess that will be improved in some future service pack update.

Also missing is the ability to automatically populate the documentation field with descriptions from data model diagrams and/or the database. The descriptions may already exist in a data model diagram or in the database. In addition, knowing what indexes exist is very useful when writing queries, and what indexes exist on tables etc are of course available from the database so being able to automatically retrieve those two pieces of information from the db would be a nice-to-have feature.

According to Alex, EF v2 will include metadata for indexes because the generated DDL add them.

Note that Damien Guard has produced an initial set of T4 templates for serializing LINQ to SQL classes, as described in my Bidirectional Serialization of LINQ to SQL Object Graphs with Damien Guard’s T4 Template in VS 2008 SP1 of 7/27/2004. A later version will add:

  • Inheritance support
  • VB.NET generation
  • DataContract serialization

But it won’t support stored procedures or composite primary keys.

Jarek Kowalski’s Persistence Ignorance (POCO) Adapter for Entity Framework V1 post of 9/9/2008 provides extensive details about the new EFPocoAdapter that’s available for download from the CodeGallery. Here’s its description:

EF POCO Adapter enables Plain Old CLR Objects (POCOs) to be tracked using released version of Entity Framework V1. It consist of a code generator, supporting library and a test suite and examples.

Code generator writes an adapter layer that will translate between POCO objects and Entity Framework-aware objects and provide services on top of POCO objects, such as:

  • Change tracking (snapshot-based and proxy-based when possible)
  • Transparent lazy loading
  • Immutable Value Objects
  • Queries (LINQ and Entity SQL)
  • Shadow state (maintaining certain persistence-related fields outside of entity class)

Entity Framework V1 programming interfaces are wrapped with corresponding APIs that work with POCO objects and do necessary translation between POCO and Persistence-Aware objects.

The availability of the new adapter should quiet the tumult and shouting about EF’s lack of persistence ignorance.

• Update 9/10/2008: From comments to Jarek’s post:

Roger Jennings (9/9/2008):

Does Astoria consider the POCO Adapter's EFPocoContext a first-class data source, that is, supports IQueryable<T> and induces the Astoria runtime to provide IUpdatable<T>?

In other words, can it be plugged into an Astoria project without adding a significant amount of code?

Jarek Kowalski (9/9/2008):

I'll investigate the Astoria question, but since EFPocoAdapter does not implement IUpdatable I don't think it works now. …

OK. I have played with Astoria and I was able to get a basic service to work. All you have to do is to derive from DataService<adapterContextType>, such as:

public class NorthwindEFService : DataService<NorthwindEntitiesAdapter>
{
}

This makes use of the "second face" of the object model, which is the EF-compatible adapter layer. Astoria doesn't have a clue that it is talking to POCO model, but the EF-POCO translation happens under the hood.

Implementation of IUpdatable should be pretty straightforward, though.

Mike Taulty presents Understanding the ADO.NET Entity Framework at DevDays 2008 Amsterdam (Video, May 2008).

LINQ to SQL

•• Mike Tulty’s Messing with Dynamic LINQ Queries post of 9/11/2008 shows his attempt with a LINQ to SQL query:

[T]o take the Expression which will have 2 parameters and reduce it down to an Expression which has 1 parameter by hard-wiring the 2nd parameter with the current value of the loop variable "s" into the method call expression itself as a constant.”

• Mike Hadlow has posted a working sample and source code for the Suteki Shop eCommerce application that uses the following technologies:

  • .NET 3.5
  • MVC Framework
  • LINQ to SQL
  • Windsor IoC Container
  • NUnit (for testing)
  • Moq (for mocking)

• Matt Manela explains in his SQL CE 3.5 with LINQ to SQL post of 9/9/2008 how to avoid the performance hit caused by moving SQL Server Compact (SSCE) 3.5 into and out of memory when LINQ to SQL opens and closes connections on single or multiple threads.

Bill BurrowsASP .NET MVC Framework - Preview 4 Update demonstration “highlights the changes in the MVC model since the release of Preview 1 and covers both "drill-down" applications as well as showing how to update and existing database record and add a new record” with VS 2008 (not SP1), LINQ to SQL and VB.

It’s unfortunate that the demo is one service pack and preview behind, but most of the two video links apply to current releases.

Bill also offers a VB-based LINQ to SQL Tutorial and Introduction to MVC Tutorial.

Anko Duizer presents Is LINQ to SQL your data Access Layer? from DevDays 2008 Amsterdam (Video, May 2008).

LINQ to Objects, LINQ to XML, et al.

••• Eric White describes how LINQ used C# 3.0’s closures feature in his Closures post of 9/12/2008.

•• Ayende Rahien‘s NHibernate 2.0 and Linq post of 9/11/2008 delivers formal notification that LINQ to NHibernate is not part of the recently-released NHibernate 2.0, but an improved LINQ implementation will be part of NHibernate 2.1.

However, he notes that “Daniel Guenter has back ported the current version of Linq to NHibernate to Nhibernate 2.0 and made it available here.”

Mike Hadlow noted problems with LINQ to NHibernate and complex queries in his What's up with Linq to NHibernate? post of 9/2/2008.

•• Shayne Burgess notes that the XML Team plans to incrementally publish “frequently encountered issues in System.XML; mainly points that we felt were interesting because they were the source of a lot of difficulty for our users.” The first two members of the Frequently Asked Questions on XML in .NET series are:

  1. Part 1: Invalid Literals (9/10/2008)
  2. Part 2: Conformance Level – Fragment (9/10/2008)

While not specifically about LINQ to XML issues, they should be of interest to developers using LINQ to XML.

John Papa describes a workaround for an Amazon Web Services’ book price ambiguity in his LINQ to XML Tip - Checking for Values post of 9/9/2008.

Eric White explains “how to use content controls in Open XML word documents to delineate code snippets so that you can automate validation of the snippets” in his OpenXmlCodeTester: Validating Code in Open XML Documents post of 9/8/2008. Eric says:

I suspect that this blog post will be very interesting to a very few people, but of casual note to all others. I’m very interested to hear if this scenario is useful to you. But more than this particular scenario, I want to spark interest in the possibilities that content controls open up for you.

This may be the longest blog post I’ve written, because this blog post also serves as a manual of sorts for OpenXmlCodeTester.

Eric’s code is based on functional programming principles and all variable values are immutable.

Sessions from DevDays 2008 Amsterdam (Video, May 2008):

ADO.NET Data Services (Astoria)

••• Elisa Flasko’s PDC 2008 - Los Angeles, CA - Oct. 27-30 post of 9/12/2008 to the ADO.NET Team blog describes the following two Astoria presentations at PDC 2008:

Developing Applications Using Data Services: Mike Flasko

In the near future, applications will be developed using a combination of custom application code and online building block services, including data-centric services. In this session we discuss advancements in the Microsoft development platform and online service interfaces to enable seamless interaction with data services both on-premises (e.g., ADO.NET Data Services Framework over on-premises SQL Server) and in the cloud (e.g., SQL Server Data Services). Learn how you can leverage existing know-how related to LINQ (Language Integrated Query), data access APIs, data-binding, and more when building applications using online data.

Offline-Enabled Data Services and Desktop Applications: Pablo Castro

The ADO.NET Data Services Framework (a.k.a. Project "Astoria") introduced a way of creating and consuming flexible, data-centric REST services. By combining data services with the Microsoft Sync Framework, learn how to create offline-capable applications that have a local replica of their data, how to synchronize that replica with an online data service when a network connection becomes available, and how replicas can be used with the ADO.NET Entity Framework. Also, hear us talk about our plans, see the tools that help client- and server-side setup, and discuss the runtime components and APIs.

Mike Flasko’s ADO.NET Data Services Concepts post of 9/9/2008 points to a new "Overview of ADO.NET Data Services" white paper on MSDN. Mike says:

The document is meant to cover the high-level concepts for the product.  A companion paper "Using ADO.NET Data Services" published a little while ago complements this overview with details on product features and how to use them. 

Coming up next is a paper which goes one level deeper and shows how to host data services in different environments (ASP.NET, WCF, IIS, WCF self host, etc).

Click here for more information from LINQ and Entity Framework Posts for 9/2/2008+ about the companion paper.

Sessions from DevDays 2008 Amsterdam (Video, May 2008):

ASP.NET Dynamic Data (DD)

•• Mike Ormond’s Dynamic Data and Entity Framework post of 9/11/2008 describes exceptions thrown when using EF with Northwind as the data source: one with the Order_Details entity and one when navigating the Product –> Order_Details relations (that composite index issue again!) The fix is the Dynamic Data Entity Framework Workaround on CodePlex.

Steve Naughton completes his Dynamic Data Futures series with his Dynamic Data Futures – Part 3 – AnyColumnAutocomplete Filter post of 9/9/2008. Steve says:

The issue is that the Autocomplete filter and AutocompleteFilter web service is designed to work with Foreign Key columns, I thought this would be like the previous article in this series and be quite simple, instead it turned out to be a bit more complicated

SQL Server Data Services (SSDS)

••• Eugenio Pace lauds Apprenda’s SaaSGrid cloud services framework for ISVs in his Northwind Hosting exists, it's better than what you saw and it's called SaaSGrid post of 9/12/2008. Eugenio says:

This "non-intrusiveness" of SaaSGrid is a property of PaaS offerings we have studied in the past. I personally believe that all offerings requiring an ISV to re-write an app, or re-learn a whole new development paradigm (custom language, non-mainstream storage, etc) will be at a disadvantage compared to PaaS offerings that will make the most of your existing investments and strengths, and therefore adoption will be hurt (probability +80% :-)).

Eugenio’s Northwind Hosting concept demo and related white papers form much of the foundation of SSDS and especially the LitwareHR demo. Watch the video to learn more about SSDS’s current and future architecture and features.

Mike Amundsen updated his “SSDS-Proxy and SSDS Provision Client code on 9/8/2008 to support returning the Authority List for the logged-in user. This update also includes support for reading and deleting BLOB files (no upload via the web - yet).”

A live demonstration is running here http://amundsen.com/ssds/. The source code is available from Codeplex http://codeplex.com/ssdsexamples/.

SQL Server Compact (SSCE) 3.5 and Sync Services

••• See Offline-Enabled Data Services and Desktop Applications: Pablo Castro

• Matt Manela explains in his SQL CE 3.5 with LINQ to SQL post of 9/9/2008 how to avoid the performance hit caused by moving SQL Server Compact (SSCE) 3.5 into and out of memory when LINQ to SQL opens and closes connections on single or multiple threads. (Also in LINQ to SQL category.)

Martijn Beenes presents Sync Framework from DevDays 2008 Amsterdam (Video, May 2008).

Visual Studio 2008 Service Pack 1 (General)

Beth Massi’s What's New in Visual Studio 2008 SP1 - Client and Data Features post of 9/11/2008 includes links to the slides and code from her presentation to the East Bay.NET UG on some of the new features in Visual Studio Service Pack 1, including:

  • SQL 2008 Types and Data Binding Support
  • ADO.NET Sync Services Enhancements
  • WPF Enhancements
  • ADO.NET Entity Framework Designer
  • ADO.NET Data Services (Astoria)
  • “Client Profile” Framework Deployment
  • VSTO Content Controls and Smart Tags
  • VSTO Deployment Improvements

I wonder how long the meeting lasted.

Miscellaneous (MVC, WPF, WCF, Silverlight, etc.)

•• (OT) Roger Jennings takes Technorati to task for making acquisitions while failing to maintain their primary obligation to the blogosphere and provide timely customer service in his More Technorati Troubles post of 9/11/2008.

These two posts re Technorati were added on 9/12/2008:

Update 9/11/2008 2:30 PM PDT. Apparently the above post caught Technorati’s attention. The latest posts are now appearing and the Authority was updated (-2 points.)

David Hayden’s ASP.NET MVC and Enterprise Library Validation Application Block post of 9/10/2008 complements his earlier post with instructions for integrating the Validation Application Block with ASP.NET MVC.

Scott Heuer says in his 9/9/2008 post, H.264 and AAC support coming to Silverlight (in a future version). The Silverlight Shines at International Broadcasting Conference 2008 in Amsterdam press release of the same date includes Q&A with Scott Guthrie about the new video codecs for Silverlight.

Mike Taulty’s Silverlight, Async, Events post of 9/8/2008 deals with issues around asynchronous operations and the inability to pass an event into a function.

David Hayden uses a simple Customer class in his Custom Model Binder and More UI Validation in ASP.NET MVC post of 9/8/2008 to demonstrate the CustomModel binder’s input validation capabilities.

David Hayden’s ASP.NET MVC UI Error Handling - ModelState and AddModelError post of 9/7/2008 demonstrates validating a phone number input with ModelView’s ModelState property and the ModelState.AddModelError() method.

Miscellaneous Sessions from DevDays 2008 Amsterdam (Video, May 2008):

Technorati’s Problem with IE7’s Feed Reader

I have the IE7 and IE8 B2 feed reader set to capture updates to tags of interest to this blog’s readers, such as LINQ, Entity Framework, ADO.NET Data Services, ASP.NET Dynamic Data, etc. The Feeds feature works as expected for all sites except Technorati.

Update 9/13/2008 8:40 AM PDT: Technorati tag feeds no longer validate. See end of post.

The Technorati folks sent me the following tweet:

@rogerjenn: feeds validate. What's the issue? http://tinyurl.com/4m76ag about 16 hours ago from web in reply to rogerjenn

Here’s the story: On or about 8/28/2008, I ceased receiving updates for these tags. When attempting to open the LINQ tag page, for example, I receive the following error message from IE7 under Vista SP1:

Here’s the less informative error message from IE8 B2 on a different machine under Vista SP1:

I agree that the Technorati feed validates, but I assume there are many folks using IE7’s Feed feature who might want it to work with Technorati tags. It probably would be a better customer service policy to test the the problem rather than respond with a curt “What’s the issue?” question. I’ve explained the issue in two previous messages to the Technorati tech service (?)group.

Update 9/13/2008 8:40 AM PDT: Technorati tag feeds no longer validate because they return 0 bytes:

Click here to run your own test with Technorati’s test URL: http://feedvalidator.org/check.cgi?url=http%3A%2F%2Ffeeds.technorati.com%2Fsearch%2Fpolitics

Technorati Contracts Twitteritis

The Technorati folks made the following announcement on Twitter last night:

Technorati web site went down around 9:40pm Pacific time. We're working on it.

When I attempted to open the LINQ tag page this morning, I received this message:

Does Technorati have it in for me?

Update 9/13/2008: At about 9:00 PM PDT on 9/12/2008, Twitter posted the following tweet:

It's been a busy last 16 hours and we're not quite there yet. Getting closer to fully restoring the web site. Thanks for your patience. about 17 hours ago from web

Followed by this announcement at 10:38 PDT the same night:

Technorati is back. A major bout with bots. This round, Technorati. Grueling and thanks to the team.

However, tag feeds still aren’t working.

Update 9/15/2008: Mashable’s Rob Diana posted Technorati: How the Mighty Have Fallen, which remarks about how little ruckus was raised when Technorati was down for over 12 hours. However, their search didn’t pick up my 15 Twitter posts with Technorati problems as the subject. Click here for all five posts about Technorati troubles.

Tag feeds still aren’t working.

Thursday, September 11, 2008

More Technorati Troubles

Technorati is having more problems with blog indexing and customer service than I reported in my Technorati Fails to Index OakLeaf Systems Blog Posts post of 9/2/2008. Here’s the current status:

Update 9/11/2008 2:30 PM PDT. Apparently the above post caught Technorati’s attention. The latest posts are now appearing and the Authority was updated (-2 points.)

However, there’s a 20-day gap between today’s two posts and the third on the Blogs / OakLeaf Systems page and RSS feed updates still aren’t appearing in IE 7 or IE 8 beta 2’s Feeds window.

Technorati is finally recognizing manual OakLeaf Systems pings after a lapse of more than 20 days.

Technorati still isn’t indexing all OakLeaf posts on a timely basis and has acknowledged a serious indexing problem as of September 9. Their Blogs / OakLeaf Systems page reports the last entry was Upgrading Databound Projects to Entity Framework V1 RTM Doesn’t Expose DataSource’s 1:Many Associations of 8/14/2008, three days before the first report of a search result updating problem noted below.

The last OakLeaf item in the Entity Framework tag list as of today was the preceding post.

The last OakLeaf item in the LINQ tag list was LINQ and Entity Framework Posts for 9/2/2008+. Why it doesn’t appear on the Blogs / OakLeaf Systems page and in the LINQ tag list is a mystery. The missing LINQ and Entity Framework Posts for 9/8/2008+ undoubtedly is due to the reported indexing problems.

RSS feeds for all Technorati tags that I follow now fail to update in IE 7 and IE 8 Beta 2 due to an error with a malformed document (an extra character preceding the XML declaration.) IE also refuses to add a new tag feed. (This problem started about 9/8/2008.)

support@technorati.com did not acknowledge my initial and follow-up messages about these problems.

The reply to my last two messages of yesterday to support@technorati.com was: “RT could not load a valid user, and RT's configuration does not allow for the creation of a new user for your email.” (I.e., Technorati no longer provides technical service.)

Recent Indexing Problems: September 2008

Indexing operations took another hit, especially for Word Press and Blogger users, as reported by Janice Myint in her Delays in Indexing post of September 8:

Late last week part of our indexing system underwent a brief outage. During that time a number of blogs experienced a halt in indexing. Since then, fixes have been implemented and indexing is occurring again. However, because of the outage, a backlog has built up in our spider queues. The spider queues keep track of pings as they come in, so no pings were lost, we just have to process them.

We are catching up as quickly as we can, but in the meantime, please expect delays in indexing, particularly for those on the Blogspot and Wordpress blog platforms. We appreciate your patience as we catch up and thank you for your understanding. [Emphasis added.]

Initial Indexing Problems: August 2008

Their indexing operations began to fail in mid-August, as reported in Dorion Carroll’s Search updates not showing in results post of 8/17/2008, which when I started having serious problems with Technorati’s tracking of OakLeaf articles. Dorian said:

Technorati is experiencing a problem with our search result updating infrastructure. We continue to crawl and save data, however, post search results are stale and temporarily stuck at about 3pm Pacific Fri. Aug 15. Link results (reactions) are stuck at Thu. Aug 14.

We have identified the root cause and are actively working on the issue. We expect to have the system caught up during the evening hours.

No data is being lost, but the most recent posts and reactions are not reflected in results at the moment.

UPDATE:

We have restored our post and tag search results. Link (reactions) results are catching up. We expect the system to be fully restored late this evening.

Fiddling with Acquisitions While Indexing Burns

Richard Jalinchandra said in his Technorati Acquires Blogcritics and Welcomes the Blogcritics Community post of 8/26/2008, in the middle of this mess:

Why did we [acquire Blogcritics]? It just made sense – as we’ve stated more times than you probably care to hear, our mission is to help bloggers and the people who read blogs. Blogcritics shares this mission, executed in their own unique way by providing a large stage for bloggers to express themselves while giving readers a great array of high quality blog content. [Emphasis added.]

Technorati currently rates a FAIL on its “mission,” and needs to put its house in order before adding more advertising real estate. As I mentioned in my earlier post on this topic:

IMO, Technorati needs to focus more energy and resource on it’s core competency as a technical blog search facilitator and ranking service. Its first priority must be to fix its indexing service.

Technorati’s second priority must be to improve the responsiveness of its technical support.

Sunday, September 07, 2008

LINQ and Entity Framework Posts for 9/2/2008+

Note: This post is updated daily or more frequently, depending on the availability of new articles.

•••• Updated 9/6/2008 5:00 PM PDT
••• Updated 9/5/2008 2:00 PM PDT
•• Updated 9/4/2008 12:40 PM PDT
• Updated 9/3/2008 11:40 AM PDT

Entity Framework and Entity Data Model (EF/EDM)

••• David Sceppa says in his SQLite's ADO.NET Provider Supports the ADO.NET Entity Framework! post of 9/6/2008:

[T]he initial build of the SQLite provider that supported the RTM version of the Entity Framework was available the same day that the Entity Framework released.

According to the PhxSoftware site, SQLite for ADO.NET 2.0 v3.6.2 of 8/30/2008 (build 1.0.58.0 on SourceForge.Net):

System.Data.SQLite is the original SQLite database engine and a complete ADO.NET 2.0 provider all rolled into a single mixed mode assembly.  It is a complete drop-in replacement for the original sqlite3.dll (you can even rename it to sqlite3.dll).  Unlike normal mixed assemblies, it has no linker dependency on the .NET runtime so it can be distributed independently of .NET.

However, the site offers the following caveat about EF:

Support for the ADO.NET 3.5 Entity Framework
SQLite's EF provider is still in beta for now, but go ahead and kick the tires!

PhxSoftware should confirm support for EF RTM, not a beta version.

Note: SQLite is the local database engine for Google Gears and several other technologies. According to Robert Accettura’s The Winner For Most Embedded Is: SQLite post of 2/27/2008:

What is interesting is that SQLite really dominates [the embedded database market] right now. Adobe Air, Mozilla Prism, Google Gears, Android, iPhone SDK (likely through Core Data API), Symbian, Ruby On Rails (default DB in 2.0), PHP 5 (bundled but disabled in PHP.ini by default).

I question whether a lightweight database engine (redistributable = 600 KB) justifies a heavyweight data layer, such as EF.

For more information on the SQLite database engine, go to http://www.sqlite.org/.

•••• Kathleen Dollard explains how to Customize Code Generation in EF in her “Ask Kathleen” column for Visual Studio Magazine’s September 2008 issue. She shows how to customize the EF team’s SampleEdmxCodeGenerator to remove the default DataMember attribute to specific properties of EF EntityObjects so the DataContractSerializer ignores them. The process is by no means a walk in the park and is a tribute to Kathleen’s analytical and coding prowess.

••• David Sceppa announces in his Devart's New Providers Support the ADO.NET Entity Framework! post of 9/5/2008 that Devart (formerly Core Laboratories) is the first third-party Entity Framework data provider to support the VS 2008 SP1 RTM implementation. For more information see Devart’s New Versions of ADO.NET Data Providers Available! post for:

•• Diego Vega updated the ADO.NET Entity Framework & LINQ to Relational Data wiki on 9/4/2008 to note that all Entity Framework Toolkits & Extensions have been updated to VS 2008 SP1 RTM except Danny Simmons’ Perseus (EntityBag) project.

So far, there’s no word from Danny about his intention to update the project.

Andrew Peters will be a developer on the Entity Framework team, according to his Joining Microsoft post of 9/2/2008. Andrew is a cofounder of Mindscape, a software solutions provider in Wellington, NZ, and the initial force behind the LightSpeed object/relational management (O/RM) tool.

Andrew will be working with fellow Kiwi, Alex James, EF’s Metadata program manager, but from the Microsoft Canada Developer Center in Vancouver, BC, because he missed this year’s H1B visa cutoff. (Damien Guard, a member of the LINQ to SQL team, also has temporary duty in Vancouver.)

Kristofer Andersson’s Tools - Part 5 - Add-ins - Documentation features in Entity Framework vs Linq-to-SQL of 9/2/2008 praises the EF team for including documentation for classes and their property. However, he faults the group for not using the entity’s Summary description for EntitySets and/or enabling editing it in the designer. I agree with Kris that the default “There are no comments for [name] in the schema” is “redundant and waste of screen real estate.”

See the related entry in the “LINQ to SQL” category.

Muhammad Mosa’s LINQ to Entities, Workarounds on what is not supported post of 9/2/2008 handles the EF features he found missing in his earlier LINQ to Entities, what is not supported? post of 8/24/2008 by:

  • Using Business objects as Wrappers for Entity objects
  • Converting to client evaluation, LINQ to Objects way

LINQ to SQL

Scott Guthrie resumes posting about ASP.NET MVC with LINQ to SQL as the data source in his very lengthy ASP.NET MVC Preview 5 and Form Posting Scenarios of 9/2/2008. I estimate the blog to be at least 42 screens long (i.e., classic Guthrie detail).

Kristofer Andersson describes the Huagati DBML Tools add-in’s new documentation feature for LINQ to SQL in his Tools - Part 5 - Add-ins - Documentation features in Entity Framework vs Linq-to-SQL post of 9/2/2008.

The add-in provides a new “Update Linq-to-SQL documentation from database” menu choice that imports the Description property of tables and columns as “summary xml comments and description attributes for all entities/classes, members/properties and data context entity accessor properties.”

Daniel Crenna has reached part four of his series that demonstrates using LINQ to SQL as the data transfer layer for a WCF service consumed by Silverlight following are links to the current and three previous members:

Dan’s From ASP.NET to Silverlight in Five Leaps of 7/25/2008 describes the five major differences between developing in ASP.NET and Silverlight.

LINQ to Objects, LINQ to XML, et al.

•••• Eric White’s Announcing the First CTP of Open XML SDK V2 reports the availability of the new OOXML SDK that includes the following new features:

  • Strongly typed document object model (DOM).

  • Tool to compare two Open XML files.

  • Class explorer that helps you understand the markup and determine which classes to use in the strongly typed DOM.

  • Document reflector that can write a lot of your code for generating documents or content.

Eric explains the benefits of the strongly typed DOM with LINQ to XML:

The gist of the strongly typed DOM is that the SDK defines classes for elements in the markup. When you access the contents of a part, you access via these class. For example, instead of retrieving a collection of System.Xml.Linq.XElement objects for the paragraph (w:p) elements, you retrieve a collection of DocumentFormat.OpenXml.Wordprocessing.Paragraph objects.

and provides small examples that compare the weakly and strongly typed with LINQ to XML.

•• Diego Lopez Ruiz suggests using additional XML technologies with LINQ to XML in his LINQ to XML, XmlReader, XmlWriter - more than meets the eye tidbit of 9/5/2008.

•• LinqMaster’s Using LINQ ElementAt and LINQ ElementAtOrDefault post of 9/4/2008 explains the syntax of these two LINQ extension methods.

•• Lisa Feigenbaum has just returned from an around-the-world tour giving VB presentations. She’s posted descriptions and materials for these two LINQ-related sessions she gave at Tech*Ed SouthEast Asia 2008:

in her Visual Basic at TechEd SouthEast Asia (Lisa Feigenbaum) post of 9/3/2008.

Amanda Silver, Lino Tadros, Steve Lasker, Erick Thompson, and Charlie Calvert discuss LINQ in the UI Layer with Carl Franklin in this panel interview. Here’s the description:

LINQ is commonly known as a great way to query data from external sources (databases, Web services, XML, SharePoint, etc). However, there are numerous other places where LINQ can make the developer's life much easier when working on the end user interface, especially when you incorporate DataSet into the mix. This panel will talk about these approaches and the possible pitfalls of using them.

Bart De Smet offers translation of LINQ expression syntax to LINQ method calls in his C# 3.0 Query Expression Translation Cheat Sheet post of 8/30/2008.

ADO.NET Data Services (Astoria)

•••• Mike Flasko reports in his 0 to 60 With ADO.NET Data Services post of 9/5/2008 that he’s updated his “Using Microsoft ADO.NET Data Services” white paper for VS 2008 SP1. Following are a few of the more important topics of the whitepaper:

  • Creating a Data Service using the ADO.NET Entity Framework
  • Creating a data service from any data source (from a CLR object graph)
  • Trying an ADO.NET Data Service (in the browser)
  • Finding and Pointing to Data: URLs in Data Services
  • Expression Syntax
  • Options for Data Representation (AtomPub, JSON)
  • Changing Data in ADO.NET Data Services
  • Optimistic concurrency
  • Custom Behaviors on Data Services
  • AJAX Applications
  • Language Integrated Query (LINQ to ADO.NET Data Services)
  • Using the client library from Microsoft Silverlight 2
  • Controlling Data Service Policies

Unsurprisingly, there’s no mention of LINQ to SQL as an Astoria data source in this white paper.

••• Shawn Wildermuth’s My Silverlight 2 Data Services Article Code Updated post of 9/4/2008 announces the availability of updated code for his Silverlight 2 MSDN Magazine article in the September 2008 issue. He also includes links to these three updated versions on his new Silverlight Data site:

  • Simple Example: Single page, three-table schema example that reads and writes data via ADO.NET Data Services and Entity Framework.
  • NHibernate Example: Single page, three-table schema example that reads and writes data via ADO.NET Data Services and NHibernate's new NHibernate.LINQ provider.
  • AG Games (Down for Maintenance): A more complex example using a richer Entity Framework model with complex mapping, data templates, multiple entity read/writing.

• Phani Raj announces an Interim Release: Making SL2 Beta 2 Clients Work With .NET Fx 3.5 SP1 RTM Servers on 9/2/2008. The new release solves the interoperability problem between Astoria RTM in VS 2008 SP1 and Silverlight 2 Beta 2 that Shawn reported in his post below.

• Rick Strahl warns about JSON UTC date encoding issues that might affect Astoria users in his Watch out for Date Kind in JSON Deserialization post of 9/3/2008.

• Roger Jennings: Out-of-band update 9/3/2008 4:45 PM PDT.

Shawn’s sample code works fine with VS 2008 SP1 RTM, and Silverlight 2 Beta 2 runtime, SDK, and VS 2008 Silverlight Tools when you replace the SL2 Beta 2 version of System.Data.Services.Client.dll with the interim release from today’s Astoria Project post.

Two or three fixes required:

  1. Replace opResponse.HasErrors with opResponse.Error !=null in ProductList.cs line 121 (and similar for VB)
  2. Replace EntitySetRights.WriteUpdate with EntitySetRights.WriteReplace in Products.svc line 20 (and similar for VB)
  3. If you’re using SQL Server Express, replace DataSource=.; with Data Source=.\SQLEXPRESS; in Web.config

Shawn Wildermuth warns readers of his “Create Data-Centric Web Applications With Silverlight 2” article for the MSDN Magazine’s September 2008 issue that his code examples require VS 2008 SP1 Beta and Silverlight 2 Beta 2 in “Caveats About My Silverlight 2 Data Services Article.” VS 2008 SP1 RTM won’t work.

He promises to update the sample code, which uses ADO.NET Data Services as its WCF-enabled data source, when Silverlight RTM becomes available.

ASP.NET Dynamic Data (DD)

•••• Matt Berseth shows you how to customize the default confirmation message box for deleting an entity instance with details about the item you’re deleting in his Dynamic Data - Customizing the Delete Confirmation Dialog post of 9/7/2008. Here’s a sample (courtesy of Matt):

•••• Steve Naughton posts the code for all seven parts of his FieldTemplate Septet (with apologies to Lawrence Durrell):

  1. The Anatomy of a FieldTemplate.
  2. Your First FieldTemplate.
  3. An Advanced FieldTemplate.
  4. A Second Advanced FieldTemplate.
  5. An Advanced FieldTemplate with a GridView.
  6. An Advanced FieldTemplate with a DetailsView.
  7. An Advanced FieldTemplate with a GridView/DetailsView Project.

in preceding link #7’s page of 9/6/2008.

••• Steve Naughton discovers in his Dynamic Data Futures – Part 2 - AnyColumn Filter post of 9/5/2008 that creating the AnyColumn filter from the Dynamic Data Futures Integer filter just requires you to “add the filter attribute Integer to the property you want filtered,” which make for a much shorter than usual article.

•• Steve Naughton explains how to display and edit multiple fields in a custom FieldTemplate in his Dynamic Data Compound Column post of 9/4/2008. He uses a compound Point(x, y) type as a Coordinate property for his tutorial. Steve says:

At a later date I would like to try this with Point being a User Def[in]ed Type in SQL Server 2005/2008, this would get rid of the need for the compound property and would mean only a new FieldTemplate was required.

• Steve Naughton, true to his word, posted part 1 of Dynamic Data Futures - Advanced Filters, Getting Dynamic Data Futures filters working in File Based Website, on 9/3/2008. The post is a lavishly illustrated, step-by-step tutorial that covers these topics:

  1. Adding Dynamic Data Futures to your Website
  2. Adding a Reference to Dynamic Data Futures and AjaxToolkit
  3. Adding the new Filter User Controls to the Website
  4. Converting Web Application files to work in a file based Website
  5. Making Necessary Changes to allow Advanced Filter to Work
  6. Testing the AdvancedFilterRepeater and new Filters

I wouldn’t try installing Dynamic Data Futures to a file-based Web site without this article.

Steve Naughton reports that he’s back from vacation  in Normal Service Resumed of 9/2/2008. However, he worked on the following new episodes in his series of DD improvements and will publish them shortly:

  • How to get the new Advanced Filters component of DD Futures working in a file based website.
  • Making an Any Column Filter (Works on any column not just FK columns)
  • Adding Insert facility to my GridView FieldTemplate.
  • A Time entry control and FieldTemplate.

SQL Server Data Services (SSDS)

••• Roger Jennings’ Microsoft Introduces Data Minining “Cloud Services” post of 9/4/2005 says the new online Table Analysis Tools for data mining appear to be a conventional Web service or Software as a Service (SaaS) application, not a “cloud service.”

However, hooking SSDS as the data service for the tools might qualify them for “cloud computing” status.

Ryan Dunn posted PhluffyFotos v2 Released on 9/4/2008. According to Ryan:

This sample application is a ASP.NET MVC and Windows Mobile application showing how to build a photo tagging and sharing site using our cloud data service, SSDS.

Following are abbreviated descriptions of v2’s new features:

  • Updated to MVC Preview 4
  • Updated to add thumbnail support
  • Updated to use the SSDS blob support 
  • Updated to use the latest SSDS REST library

Ryan adds:

The sample is available for download at CodePlex, and a live version is available to play with at PhluffyFotos.com.  I am opening this one up to the public to upload photos.  Maybe I am playing with fire here, so we will see how well it goes.

Ryan Dunn announces in his SSDS REST Library v2 Released post of 9/4/2008 that the new REST-based library for SSDS available from the MSDN Code Gallery’s SSDS REST Library offers the following new features:

  • Concurrency support via Etags and If-Match, If-None-Match headers
  • Blob support
  • Parallelization support via extension methods
  • Bug fixes
  • Better test coverage

See Ryan’s post for more details on the added features.

Roger JenningsHow To Get a List of Your SSDS Account’s Authorities post of 9/4/2008 answers a question that Mike Amundsen and I asked in the How do I get a list of my defined Authorities? thread of the SQL Server Data Services (SSDS) - Getting Started forum.

Pat Helland analyzes Amazon S3’s recent outage and suggests what’s required for cloud-based data reliability in his lengthy Confidence in the Cloud post of 9/1/2008. Topics include:

  • Some Observations about Reliable Process Pairs
  • Less Is More
  • N-Version Programming
  • Availability Over Consistency
  • Eventual Consistency
  • Front-Ending the Cloud
  • It's Going To Be a Fun Ride!

He concludes:

It is my opinion that we will be designing systems to support eventual consistency.  Part of this trend will be to back away from our traditional separation of storage (e.g. database) from applications.

The SSDS team touts immediate (ACID, transactional) consistency as one of the primary selling points of SQL Server Data Services.

(Pat left his job as a data architect at Microsoft to join Amazon and returned to Microsoft in March 2007 and ultimately joined the SQL Server data programmability group.)

Note: If you haven’t been to downtown Chicago for a few years (like me), check out Pat’s photographs in A Wonderful Few Days at a Wedding in Chicago of the same date.

SQL Server Compact (SSCE) 3.5 and Sync Services

• Aaron Greene, Andrei Maksimenka and Christian Liensberger “dig into the details of the Sync Framework and explore the complexities of sync, generally” in Channel9’s one-hour Synchronizing Data: Inside the Microsoft Sync Framework video segment. The description starts with:

The Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline scenarios for applications, services and devices. It supports any kind of data type and any kind of data store. The framework was designed to be transfer protocol independent and to allow the developers to map any kind of network topology.

Visual Studio 2008 Service Pack 1 (General)

No new posts as of 9/2/2008 2:00 PM PDT 

Miscellaneous (WPF, WCF, Silverlight, etc.)

•• Beth Massi demonstrates how to incorporate a Windows-form DataGridView control in a WPF form by using the WindowsFormHost control in her Editing Tabular Data in WPF Using the Winforms DataGridView post of 9/4/2008.

• Rob Conery is updating his MVC Storefront project to Preview 5, as noted in MVC Storefront: Intermission 2 of 9/3/2008.

Roger Jennings decries Google Chrome’s draconian end-user license agreement in Chrome’s Evil Terms of [Software as a] Service of 9/3/2008. Other sources (ReadWriteWeb, The Register) cite mandatory copyright licensing, but there’s much more to fear when you read all the fine print. (Chrome is uninstalled here.)

• Derik Whittaker’s Upgrading Dimecasts.Net from MVC Preview 4 to Preview 5 post of 9/3/2008 expands on Casey Charlton’s post below.

Casey Charlton describes seven Problems Upgrading ASP.NET MVC to Preview 5 in this post of 9/2/2008.

Roger Jennings gripes about Technorati’s missing entries for the OakLeaf Blog’s new posts in his Technorati Fails to Index OakLeaf Systems Blog Posts complaint of 9/2/2008

WebSlice Content for Internet Explorer 8 Beta 2

OakLeaf LINQ and Entity Framework Links

Last Updated: 9/4/2008 12:40 PM PDT

  • Entity Framework Additions
  • LINQ to Objects, XML, etc. Additions
  • ADO.NET Data Services Additions
  • ASP.NET Dynamic Data Additions
  • SSDS REST Library V2

Friday, September 05, 2008

Microsoft Introduces Data Minining “Cloud Services”

The SQL Server team recently made a stealth release of a Table Analysis Tools for the Cloud technology preview during the 14th ACM SIGKDD International Conference on Knowledge Discover and and Data Mining (KDD08) held in Las Vegas from August 24 to 27, 2008.

The preview takes your data in the form of an Excel worksheet or a .csv file, uploads it to SQL Server 2008 Table Analysis Tools running as a Web service, and adds it to the original or a second worksheet or thin client (browser) window. This description indicates to me that the application is better classified as a traditional Web service or Software as a Service (SaaS) application, rather than a true Cloud Computing candidate.

Here’s a promotional sample of the Excel 2007 add-in displaying a forecast in a chart:

Following are feature descriptions by Microsoft senior software engineer Bogdan Crivat from his Data Mining for the Cloud (or how I spent my summer) post of August 29, 2008:

  • Analyze Key Influencers — detects the columns that impact your target column. It presents a report of those values in other columns that correlate strongly with values in your target column.
  • Detect Categories (clustering, for data miners) — identifies groups of table rows that share similar characteristics. A categories report is generated, which details the characteristics of each category
  • Fill From Example — to some extent, similar to Excel’s Autofill feature: it learns from a few examples and extends the learned patterns to the remaining rows in the table
  • Forecasting — analyzes vertical series of numeric data, detects periodicity, trends and correlations between series and produces a forecast for those series
  • Highlight Exceptions — finds the interesting (or unusual, or out-of-ordinary) rows in your table
  • Scenario Analysis — What-If and Goal-Seek tools based on a probabilistic model built on top of your data.
  • Prediction Calculator — a tool for generating prediction scorecards
  • Market Basket Analysis — analyzes transaction tables to identify groups of items that appear together in transactions

The thin-client (browser) version doesn’t implement all the preceding features yet.

There’s more about the development of the tools and KDD08 in Jamie MacLennan’s KDD 2008 and Incredibly Awesome SQL 2008 Data Mining Demos post of 8/25/2008.

Brent Ozar’s SQL Server Data Mining in the Cloud post of 8/27/2008 has a detailed and fully illustrated tutorial for the Excel version using sample data from PerfMon. Brent describes the tools as “Incredibly Awesome.”

SSDS is an obvious candidate for a future data source for Data Mining Cloud Services, but it will take considerable cooperative effort between the SSDS and Data Mining teams to enable direct data transfer from SSDS to the table tool via today’s plain old XML (POX) or the future AtomPub or JSON wire formats. However, hooking up with SSDS might qualify the Web service as a true Cloud Service.

Note: Thanks to C. C. Chai for the heads-up on this new service.

Thursday, September 04, 2008

How To Get a List of Your SSDS Account’s Authorities

It might seem obvious, but it wasn’t to either me or SSDS guru Mike Amundsen. The syntax to query for a list of SQL Server Data Services (SSDS) authorities for your account is the default address

https://data.beta.mssds.com/v1/

followed by the default Query

from e in entities select e

which translates to

GET https://data.beta.mssds.com/v1/?q='from e in entities select e'
HTTP/1.1

Here’s SSDS showing the request (Address and lower text boxes) and the response (upper text box) for the current OakLeaf authority oakleaf1:

(Microsoft limits SSDS beta testers to a single authority.) See comment by the SSDS team’s Stan Kitsis of 9/17/2008.

The inability to obtain a list authorities with

https://data.beta.mssds.com/v1/?q=

is due to a bug, according to a post by Stan Kitsis in the same thread.

Here’s a list of the containers uploaded to the oakleaf1 authority by the latest version of my updated SSDS Test Harness:

You can obtain a list of containers with a pseudo-LINQ query (above) or by executing

https://oakleaf1.data.beta.mssds.com/v1/?q=

(Click either image for the full-size capture.)

Note: Help for SSDS Explorer is at http://msdn.microsoft.com/en-us/library/cc752965.aspx.

Wednesday, September 03, 2008

Chrome’s Evil Terms of [Software as a] Service

The Chrome browser’s Terms of Service (TOS) prove that Google definitely is not an ordinary software publisher, but is distributing Chrome in the form of Software as a Service that has draconian licensing terms. To wit:

• The Terms of Service apply to Chrome: “These Terms of Service apply to the executable code version of Google Chrome.” (TOS preface, line 1)

• Children can’t use Chrome: You must be “of legal age to form a binding contract with Google.” (TOS ¶2.3)

Google can cap your usage of Chrome: “[F]ixed upper limits [on the number of transmissions you may send or receive through the Services may be set by Google at any time, at Google’s discretion.” (TOS ¶4.5)

You might need to register Chrome: “[Y]ou may be required to provide information about yourself (such as identification or contact details) as part of the registration process for the Service, or as part of your continued use of the Services. (TOS ¶5.1)

You might need Chrome to use other Google Services: “You agree not to access (or attempt to access) any of the Services by any means other than through the interface that is provided by Google, unless you have been specifically allowed to do so in a separate agreement with Google.” (TOS ¶5.3)

• Chrome is not open source software. “You acknowledge and agree that Google (or Google’s licensors) own all legal right, title and interest in and to the Services, including any intellectual property rights which subsist in the Services (whether those rights happen to be registered or not, and wherever in the world those rights may exist). You further acknowledge that the Services may contain information which is designated confidential by Google and that you shall not disclose such information without Google’s prior written consent. (TOS ¶9.1)

You give Google a copyright license on content you display in Chrome: “By submitting, posting or displaying the content you give Google a perpetual, irrevocable, worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display and distribute any Content which you submit, post or display on or through, the Services.” (TOS ¶11.1. See also TOS ¶11.2 and 11.3)

And even content you don’t own: “You confirm and warrant to Google that you have all the rights, power and authority necessary to grant the above licence.” (TOS ¶11.4)

Updating Chrome is mandatory: “[U]pdates are designed to improve, enhance and further develop the Services and may take the form of bug fixes, enhanced functions, new software modules and completely new versions. You agree to receive such updates (and permit Google to deliver these to you) as part of your use of the Services.” (TOS ¶12.1)

According to the Google Chrome Privacy Notice:

Your copy of Google Chrome includes one or more unique application numbers. These numbers and information about your installation of the browser (e.g., version number, language) will be sent to Google when you first install and use it and when Google Chrome automatically checks for updates. [Emphsis added.]

Note: If Google can update your software at will and has it’s ID number, it undoubtedly can associate the ID number with your Google account (allowed by TOS ¶5.1) and, within the TOS, delete Chrome from your machine.

Google may install advertisements in Chrome: “In consideration for Google granting you access to and use of the Services, you agree that Google may place such advertising on the Services.” (TOS ¶12.1)

Google’s are the most draconian software licensing terms for a browser that I’ve seen to date and are clearly evil.

Disclaimer: I am not an attorney.

Update 9/3/2008 11:00 AM PDT: Added first point (explicit applicability of TOS to Chrome.)

Update 9/3/2008 1:00 PM PDT: Ironic message box that appeared during Chrome uninstall process:

and invasive questionnaire asking why the user chose to uninstall it:

Update 9/3/2008 2:00 PM PDT: Google Intends to Change Section 11

According to Ars Technica’s Nate Anderson in his Google on Chrome EULA controversy: our bad, we'll change it post of 12:00 PDT:

Google's Rebecca Ward, Senior Product Counsel for Google Chrome, now tells Ars Technica that the company tries to reuse these licenses as much as possible, "in order to keep things simple for our users." Ward admits that sometimes "this means that the legal terms for a specific product may include terms that don't apply well to the use of that product" and says that Google is "working quickly to remove language from Section 11 of the current Google Chrome terms of service. This change will apply retroactively to all users who have downloaded Google Chrome."

I don’t believe that Google releases any “service” without a prior thorough review of the applicable terms and services by the company’s legal staff. I don’t buy the “oversight” excuse. I believe Google’s legal eagles decided to float a trial balloon, which got shot down.

However, simply “remov[ing] language from Section 11 of the current Google Chrome terms of service” clearly won’t solve the problem. They’ve got plenty else to remove, too.

Tuesday, September 02, 2008

Technorati Fails to Index OakLeaf Systems Blog Posts

Commencing about two years ago, Technorati began periodically ceasing to index this blog, even after manually pinging http://oakleafblog.blogspot.com. Initially, indexing would stop about every six months but would be reinstated immediately after sending a message to tech service.

Recently, the indexing drops increased to about two-week intervals. Again, messages to tech service restored indexing. However, Technorati’s last automated mail acknowledgment included the following paragraphs:

Thank you so much for taking the time to drop us a line. Please check our Support FAQs located at http://support.technorati.com/ which may answer some of your questions. Please also review our Blog Quality Guidelines at http://support.technorati.com/guidelines/ which we've compiled to help you understand what criteria we use for indexing blogs.

Note that in the past, simply pinging Technorati initiated an indexing of a site. This open door policy meant a lot of splogs and non-blogs would enter the system and masquerade as blogs. In order to better filter out spam as well as inadvertent pings to Technorati, we have implemented review measures to evaluate a site prior to indexing it as a blog.

It occurred to me that Technorati might be using an automated “review measure” to determine whether the OakLeaf blog conforms to their requirements, to wit:

  • Publish feeds that are discoverable by using feed discovery
  • Publish full content (not summaries or excerpts) in an Atom 1.0 feed
  • Sign in and ping Technorati directly with your claimed blog URL
  • Write posts with original content. One of the biggest differences between blogs and websites is that blogging is about being part of the online conversation. We’d like to hear your opinions and comments in your blog posts.
  • Write often. The more you write, the more you are a part of the conversation.
  • Cite your sources. Provide attribution by quoting and linking to the source.

It appears to me that all OakLeaf blog posts meet the preceding requirements. Further, the blog’s Technorati Authority rating is 76, and varies between about 72 and 79. An authority rating of 76 gives a rank of 85,203 in a universe of more than 2,000,000 blogs followed by Technorati. The site includes a number of Technorati widgets.

Note: The Blogs / OakLeaf Systems page shows my most recent post to be LINQ and Entity Framework Posts for 8/4/2008+, while the Entity Framework tag topic show my Comparison of Code and T-SQL Queries for LINQ to SQL and Entity Framework Databound Forms of 8/4/2008 as the most recent entry.)

Technorati is attempting to expand it’s reach by becoming a content producer (Technorati Acquires BlogCritics, Gets Into Content Game), launching an advertising network (Technorati Launches Blog Ad Network, Technorati Media) and adding a business focus (Technorati Confirms New Financing; New Business Focus Coming).

IMO, Technorati needs to focus more energy and resource on it’s core competency as a technical blog search facilitator and ranking service. Its first priority must be to fix its indexing service.

Update 9/5/2008: It’s been 48 hours since Technorati sent it’s automated message that contained the following paragraph:

If you are reporting a problem you may be having you will be contacted by a support technician once we have had a chance to review your message. Note: We've been experiencing a backlog in support and are working hard to address everyone. [Emphasis added.]

Technorati’s second priority must be to improve the responsiveness of its technical support.

 

Technorati tags: , ,