Rob Gonda's Blog

Improve Your Karma!

Motorola launched today a new noble site called ImproveYourKarma.com. It as site for a good cause, telling the story of Sven Goodsson, a good Karma coach that will teach you how to improve yours.

The site is hilarious and extremely funny, yet, carrying a nice chuck of technology behind it. The site has a few sections, but the Karma monitor is my favorite. It provides a widget that you can embed in your myspace page and it will scan your entire profile, blog, and comments, and will try to gage and quantify your Karma by analyzing the content in your page. I know, some would argue that the method is not scientific, but c'mon, we're talking about Karma here. Another really nice widgets is the Karma photo analyzer; it allows you to upload a photo, and it will analyze your aura, scanning the points of energy expressed by the colors in the photo. After analyzing the aura, it will provide a nice description of the findings.

Overall, this site is clean, attractive, high-tech, and really funny.

Oh yes, if the intro aerobics dance if not funny enough for you, press a few keys to find some easter eggs, which makes it even better.

Remember, this site is for a good cause -- Motorola will contribute portions of the profit to the global fun to fight AIDS in Africa, so enjoy and spread the word.

Ajax presentation for the Scottish CFUG

I'm speaking tomorrow for the Scottish CFUG, nevertheless, free and open to whoever wants to join us. It will be a Adobe Breeze, sorry, Adobe Connect presentation, very similar to the one I did for the Boston CFUG back in September, but I will slow down and explain more this time, since I pretty much have no time restriction.

The _official_ topic for the session is:
Ajax, Web 2.0, RIAs, single-page-applications are just a few buzzwords that every developer needs to know in 2006. Learn the history of Ajax, what it means to you, why you should pay attention, who is using it, what is available, and how to implement it. This session will get you up to speed with Ajax, compare the different existing frameworks, and provide you helpful tips of do's and do not's with Ajax.

However, I will show plenty of examples, use different frameworks, and respond to as many questions as possible.

Time: 8pm (GMT) / 3pm (EST)
URL: http://adobechats.adobe.acrobat.com/r21774523/

Scorpio on Adobe Labs

Scorpio is the code name for the next major release of ColdFusion from Adobe. They just added it to Labs, including brief information on 2007 events, wallpaper downloads, and faqs. Expect to see more there early 2007.

The public beta version is not available yet, but trust me, you will want to jump into it as soon as it's out.

blogs must use Ping-O-Matic

Ping-O-Matic is a service that allows you to ping various arregators. Ping will trigger them to scan your blog and index your content. Nothing extra-ordinary, but, the cool thing is that they provide you a direct link to come back to their site and automatically re-ping your submitted data.... so what can you do? You can set up your own blog to ping that link (simple http get), which will automatically ping all the major aggregators.

With blogCFC, all you have to do is paste that url into the pingurls config setting in the blog.ini file.

SQL Views and Performance

After my last post of SQL, Case sensitivity, and views, Brian Kotek brought up an excellent point, bringing up performance concerns.

It turns out that views are very handy, but not very optimized for performance. Tables are generally indexed. SQL has the ability to index data of particular columns so it doesn't have to deep-scan the data each time you query that table. All primary keys are indexed, but you can create as many additional indexes as you want (when and why for another post).
If you use a view, your columns will not be indexed automatically. With SQL 2000, Microsoft introduced View Indexes; SQL Server View Indexes are dynamic and changes to the data in the base tables are automatically reflected in the indexed view. Your columns will be automatically indexded only if your view complies with certain pre-requisites:

  • Must be created the WITH SCHEMABINDING view option
  • May only refer to base tables in the same database.
  • If there is a GROUP BY clause, the view may not have a HAVING, CUBE, or ROLLUP.
  • May not have an OUTER JOIN clause.
  • May not have a UNION.
  • May not have DISTINCT or TOP clauses
  • May not have full-text predicates such as CONATINSTABLE
  • May not have a ROWSET function such as OPENROWSET
  • May not use derived tables or subqueries.
  • Must be created with ANSI_NULLS ON and QUOTED_IDENTIFIER ON
You can create an index manually like this:

CREATE VIEW OrderDetailsXSB   WITH SCHEMABINDING 
AS
SELECT
OD.OrderID, OD.ProductID, P.ProductName , OD.UnitPrice
, OD.Quantity, OD.Discount
FROM dbo.Products P
INNER JOIN dbo.[Order Details] OD

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON

GO

CREATE UNIQUE CLUSTERED INDEX [IDX_Order_Details_X]
ON OrderDetailsXSB (OrderID, ProductID
, ProductName, Quantity)
GO

ON P.ProductID = OD.ProductID

For more information on Indexed Views, check out Microsoft's official documentation.

This blog is running version 5.9.003. Contact Blog Owner