Friday, December 28, 2007

640K Is Enough For Anyone, 64 Cores is Enough For Anyone, Windows Cannot Handle More Than 64 Cores At The Moment

It is déjà vu all over again, someone decided that 64 cores is enough for everyone and Windows currently cannot handle the 80 core Intel CPUs when they come out.

To carry out multitasking, Microsoft Windows 2000 and Windows Server 2003 sometimes move process threads among different processors. Although efficient from an operating system point of view as each processor cache is repeatedly reloaded with data.
Assigning processors to specific threads can improve performance under these conditions by eliminating processor reloads and reducing thread migration across processors (thereby reducing context switching); such an association between a thread and a processor is called processor affinity.

I guess your Data Parallel Haskell or Parallel LINQ(PLINQ) will have to wait for another version of Windows to take advantage of 80 cores :-(

Ping A Server In C# and .NET 2.0

The code below shows how to ping a server from .NET 2.0 (Also works in .NET 3.5)
It is a console app but you can modify the code to use in your class


using System;
using System.Net;
using System.Net.NetworkInformation;

namespace PingProc
{
class Program
{
static void Main(string[] args)
{
Ping("127.0.0.1");
//Ping("cnn.com");
}


public static int Ping(string hostname)
{
Ping ping = new Ping();

PingReply reply = ping.Send(hostname);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Address: {0}", reply.Address);
Console.WriteLine("RoundTrip Time: {0}", reply.RoundtripTime);
Console.WriteLine("Time To Live: {0}", reply.Options.Ttl);
Console.WriteLine("Don't Fragment: {0}", reply.Options.DontFragment);
Console.WriteLine("Buffer Size: {0}", reply.Buffer.Length);
Console.WriteLine("Status: {0}", reply.Status);

Console.ReadLine();
return (0);
}
else
{
Console.WriteLine("Error");
Console.WriteLine("Status: {0}", reply.Status);
Console.ReadLine();
return (1);
}
}
}
}

The Best Geek Story Ever Told

Go to DotNetRocks, download show number 300, fast forward to 57:45 and start listening. It is the funniest geek story I have ever heard. You will not regret it



Here is the link to the show: http://www.dotnetrocks.com/default.aspx?showNum=300


BTW the whole podcast is very interesting in terms of computer history, I highly recommend listening to it.

A year in review, The 22 best blog posts on SQLBlog.com

There is a post on sqlblog.com which lists the 22 best posts of 2007. Check it out below
A year in review, The 21 + 1 best blog posts on SQLBlog

Thursday, December 27, 2007

Who the hell is Orion Karl Daley and why is he spamming me?

Got this in my inbox

Dear Friends:

The other day, I saw an advertisement about the 'Laura Bush Christmas in the Whitehouse'. It made me think of the movie 'Its a Wonderful Life' .

The movie touches me each year, where lavish indulgence in the Whitehouse at taxpayer cost can't.

I know Washington DC from some time ago, and like in many cities, poverty and its burden is placed on most there.

I thought this would be the right time to setup large circus tents across the lawns surrounding the White House and heat them. Then, provide large warm meals, supplies to take home, and clothing; and then social service agencies to connect with the people in DC.

In the Movie, the town came to the aid of saving what principles stood for!

The President in setting the same kind of example in DC, would call upon every Governor, every Mayor, and every Place of Worship to do the same in every state and city.

In this manner, for this Holiday, our principles could be preserved. In this manner, the government both Federal , State and City could demonstrate what plans it had for the future for our nation in serving the people.

I truly do not believe that anyone actually likes handouts, and charity can be an affront.

But people of this nation are owed the opportunity to stand on their own two feet, and our government should be able to provide an environment for them to do so.

In the meantime, its about time our government demonstrated their sole purpose: to serve the people.

In ignoring our people is the true exploitation that we need to be held accountable for.

Christmas is a good time for a lot of us to remember this when we speak of good will towards all.

In terms of our Nation, I see Agape in action to be stated: 'Let not this Country be without You!'

Respectfully,

Orion Karl Daley

--
Orion Karl Daley
Presidential Candidate for 2008
Author - The New Deal ISBN: 1419670948
for the Strategic Future of our nation
Balanced Party http://unity2008.org
New York, NY, USA - 917-297-0763


And why does he use this email orion@system1.tradingsystems.net?

A quick Google search reveals this email address has been used here


[Fwd: cvs commit: jakarta-jetspeed-2/portal/src/webapp/WEB-INF web ...
system1.tradingsystems.net). Date:, 01/25/2005 01:18:40 PM. List:, org.apache.portals.jetspeed-dev. Additional -. Please see the enclosed. ...markmail.org/message/xddlhdhn33fdkwvi - 8k - Cached - Similar pages - Note this

TRADING SYSTEMS NETWORK - WSDEX - Tel-A-Dex - TelaDex ...
orion@system1.tradingsystems.net Link to Web Site. Category: TRADING SYSTEMS Trading Systems. Comments & Reviews. December 07, 2007 - 16:02:57 - No ...www.wallstreetdex.com/1000/p100379.shtml - 6k - Cached - Similar pages - Note this

Red Gate SQL Data Generator 1.0 Beta Available For Download

Red Gate have released beta 1.0 of SQL Data Generator

From the site:

This tool is aimed at generating test data for SQL Server databases. It can either generate data from scratch or import from existing sources of data.(Like SQL tables or CSV files.)
Features:
- Full SQL Server 2000 and 2005 support
- All data types supported except CLR types
- Pre & Post Scripts execution
- Command-line access version
- Import data from CSV or SQL tables
- Customizable generator settings that allow configuring the amount of nulls, unique values, minimum and maximum values, etc..
- Diverse range of inbuilt generators
The product is not yet complete, and we are looking for user feedback about what features and or functionality you would like in the final product.
*The beta version is set to work until 11 Apr 2008. "

This is a free open beta with the application due to expire on 11 April 2008 with a planned final released sometime before then.

What we really want now is for everyone to use the software and provide us with feedback for the final version. Please let us know on the forums what you like and don't like about the software and what we could do to solve all of your data generation problems!

Visit http://www.red-gate.com/MessageBoard/viewtopic.php?t=6140 for the announcement and download URL

Forums: http://www.red-gate.com/MessageBoard/viewforum.php?f=76

Adobe Reader Lite: A blazing fast version of Adobe Reader 8

Downloadsquad has an article about Adobe Reader Lite

Basically the Adobe Reader Lite application is based on Adobe Reader 8, but several plugins and features have been removed, including:

Removed license agreement popups
Removed autorun and desktop shortcuts
Removed several plugins


You can read the article here: http://www.downloadsquad.com/2007/12/26/adobe-reader-lite-blazing-fast-version-of-adobe-reader-8/

Wednesday, December 26, 2007

help hisham to set up an online business, aka begging on the web

Posted here at the microsoft.public.sqlserver.programming forum

Hello world.
I had some problems with my business.
My name is Noor Hisham Bin Ahmad.
I,m from Malaysia.
I need some funds to support my blog because I want set up an online
business.

this is my account number.
Bank Simpanan Nasional
0210029816898886


via western union


How pathetic is that, maybe it should be called Begging 2.0

Tuesday, December 25, 2007

Screencast: SQL Server 2008 Change data capture

CDC or Change data capture is a new feature in SQL Server 2008, which is an ability to record changes to table data into another table without writing triggers or some other mechanism, Change data capture records the changes like insert, update, and delete to a table in SQL server thus making the details of the changes available in relational format.

Find more information on the Topic
http://www.microsoft.com/sql/2008/prodinfo/download.mspx https://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=5507

Watch the screencast(SWF)
Watch the screencast(WMV)

Monday, December 24, 2007

SharePoint and SQL Server Reporting Services Posts

blah!bLaH!BLOG has a couple of posts about SharePoint and SQL Server Reporting Services


SharePoint and Reporting Services - Introduction
SharePoint and Reporting Services - Installation and Setup.
SharePoint and Reporting Services - Setup your database.
SharePoint and Reporting Services - Authoring a simple report.
SharePoint and Reporting Services - Enabling end users - the report model.

If you are doing any SharePoint and SQL Server Reporting Services development then do yourself a favor and visit the links above

Kids Might Become Overwhelmed Tomorrow

My wife let each of the kids open one present already because they might become overwhelmed tomorrow/
This is the biggest nonsense I have ever heard, she just wanted to see their reaction when opening the toys. Oh well
Maybe I should open one of my presents also.

Thursday, December 20, 2007

Microsoft ASP.NET 2.0 AJAX Templates for Visual Studio 2008 Released

Microsoft ASP.NET 2.0 AJAX Templates for Visual Studio 2008 Released.


This release contains project templates for using Visual Studio 2008 or Visual Web Developer 2008 to create new web sites and web applications with ASP.NET 2.0 AJAX Extensions 1.0 features. The project templates contain specific references to assemblies in .NET Framework 2.0 and ASP.NET 2.0 AJAX Extensions 1.0.

Download it here: http://www.microsoft.com/downloads/details.aspx?FamilyID=5c7df430-1c34-40d2-b6ec-81353b5fcf2e&displaylang=en

German Ingenuity With Painted Trucks

Here are 7 pictures of (German) semi-trucks whose trailers are decorated to look like the sides are missing and the products they are hauling are painted on the sides and back.

The first one is of a bottle of beer and looks so real, like it is coming out the side of the trailer.


The second is of canvas tote bag. Frietag is a bag company. Backpacks, bookbags, etc.


The third is of Pepsi cases and they are all stacked on the ceiling, and the bottom of the trailer is empty.


The fourth is of another truck with the windshield facing the back and there has been a driver painted in the driver's seat looking back over his shoulder to appear like he is driving backwards. The sign says, Are you going the wrong way?



The fifth one is of an aquarium with fish swimming in it.


The sixth one is of a bookshelf with books lined up in it and a post-it-note with an advertisement on it that says, Advance farther, call the academy at:


The last one is for Pringles-Hot & Spicy. The "inside" of the trailer has the appearance of having been through a fire.

Wednesday, December 19, 2007

Stop The Press, Internet Explorer 8 Passes ACID 2 Test, Britney Spear's Sister Is Pregnant

Stop the press,

Internet Explorer 8 Passes ACID 2 Test
Britney Spear's sister is pregnant
Aliens seen crossing the border, these are not illegal and have green skin
Elvis spotted in Greenland
Duke Nukem Forever Teaser Released

So only 3 of these are real. Internet Explorer 8 finally passes the ACID 2 test. Of course some bonehead will say that this is because the Opera suit. Yeah right, they fixed all their stuff in one week.

Channel 9 has a video on their site with two people from the IE team.
The IE team has been very hard at work on IE 8 for the past several months and they hit a huge milestone last Friday evening. The IE dev team checked in a bunch of code that included several new features implemented in the core rendering engine that enable IE to pass the ACID 2 test! This is great news for web developers: IE 8 is going to be our most standards compliant browser to date. Passing ACID 2 is really a combined side effect of all the new features that have been developed for IE 8.

Listen to the podcast(MP3)
Listen to the podcast(WMA)
Download the Video
Watch the Video

Monday, December 17, 2007

Interview With Joe Celko About The Forthcoming Book Thinking In Sets

I noticed that Joe Celko has a new book coming out soon: Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL. I decided to send Joe an email to see if he would be willing to answer some questions I had about the book and SQL in general. To my surprise Joe was more than willing to accommodate my request. The question-and-answer session with Joe that follows was conducted via email.

Is the book geared towards a beginner/intermediate level user or do you have to be an advanced user to really utilize the information in this book?
I would say intermediate level. You need to know enough SQL to do some programming in the language and be experienced enough to see that DDL is as important as DML.

What are the most important things a person can do to master SQL?
The most important thing is to make the leap from procedural programming to declarative programming, from sequential files to sets. The only declarative language that most programmers have seen is spreadsheets. They are nothing like SQL!

I assume you wrote this book because people when they first use a database tend to do the same thing they do in Java, C# or other procedural languages; get a bunch of rows and manipulate them one by one. Is this the number one mistake beginners do?
That is right up there in the top five, for sure! But I think that the classic error is in not knowing how to design the schema in the first place. A bad schema -- denormalized, bad data element names, no constraints, no proper keys, no referential integrity -- leads to trying to correct the flaws in DDL in the DML. If you have a good schema, then the queries, inserts, updates, and deletes are usually fairly easy. All of the "hard work" should be hidden in the database and not spread over the application code and DML.

What is so bad about attribute splitting (somehow these three tables come to mind: Squids, Automobiles and Britney Spears)?
NO, no, no! I coined the phrase a "Squids, Automobiles and Britney Spears" table or column to refer to a table or column which has more than one kind of entity or more than one kind of attribute in it. What makes that phrase so fun is that there is a web page which compared photos of a giant squid and Britney Spears after she cut off her hair. If you actually gave such tables or columns a meaningful name, then you would see that it is not a proper table or column. These nightmares would have names like "hat_or_shoe_size_depending_on_column_five" Attribute splitting is when you take an attribute and make it into two or more tables, columns or rows. The table example is the most common one. How often have you seen a table for each location (split on geography) or a table for each month (temporal split)? This mimics a tape file system, so newbies feel comfortable. When you ask them if they would split a Personnel table into MalePersonnel and FemalePersonnel (split on gender), they immediately see the fallacy. Unfortunately, splits need all kinds of code if they want any data integrity. This code usually re-assembles the data elements back to what they should have been in the first place.

In chapter two of your new book you talk about the new advances in hardware. I have noticed that somehow the amount of data I have to store out paces the advance in hardware and the queries don't run any faster. Will Solid-State Disks finally change that?
I have great hopes for solid state devices. Any solid thing that has to physically move is by definition slower than electricity or light. We are looking at nano-tech, better lasers and a ton of new technology almost every month.

I see you have a whole chapter on auxiliary tables, I am a big fan of those tables myself and I use them to create dates on the fly or split comma delimited strings. In your opinion what percentage of developers does not use them and why should you use them?
Not enough. SQL is a language meant to handle data and not to do computations. Auxiliary tables can be shared among sessions and accessed in parallel. Imagine a complicated but deterministic formula. In a procedural computational model, you hang in a loop and re-do the work for each record in a sequential file. Let me give you a real-world example of that. Corky's BBQ does a huge mail-order business at Christmas time. The pick lists need to include the size of the boxes to be used, so part-time help can do their jobs. When I got this problem, they had discovered that using weights was not right way to go. The approach being attempted was to play "3-D Tetris" with the products. Since that kind of thing is a bitch to program, they were getting nowhere. My approach was to look over a few years of shipping history and find out how many different orders they had shipped and what the smallest box use for each of those orders was. There were only about 5000 configurations and the majority were standard gift packages. Do a relational division and a table look-up to handle 99.98% of the cases and print the phrase "Hand pick this order" on the pick list for the exceptions! In the SQL model, you join an auxiliary table which has the parameters and the result value in each row. You can do this simple multi-column equi-join once in parallel. Wait until the multi-core chips make parallelism the only way to design a computer; then auxiliary table are going to really fly.

I noticed you have a big chapter on VIEWs; do you feel that VIEWs are not utilized enough by developers?
They are used either not enough or too much.

Why do you think we should not use bit or Boolean flags in SQL?
In SQL, to be a data type it must allow NULLs. What is the fundamental nature of a BIT? It is one or zero; there is no NULL concept here! This was a problem for SQL Server, when they made their BIT data type into a numeric that could be NULL-able. The change scrambled a lot of data when it was ported from one release to the next. Bits are low-level, hardware dependent concepts. Are you high end or low end hardware? Do you have 4, 8, 16, 32 or 64 bit machine words? You have use proprietary operators. This defeats the idea of machine independence. Finally, bit flags are used to destroy First Normal Form (1NF) and thus destroy data integrity. As an example, recently in as newsgroup someone wanted to use a 4-bit column to store all the possible colors for a product (red, green, blue, yellow) and get them out with a bit mask (his hardware has a nibble!). But how do you add purple? How do you set up a constraint that no item can be mad with both red and green options? In RDBMS, we discover the state of our data with predicates and not by setting flags at the hardware level.

I have your puzzles book and noticed that you have a paragraph on Sudoku and one on Bin Packing in the last chapter of this book. You have procedural solutions and SQL solutions for most of the material in the chapter; is the SQL solution faster?
There is a funny story on the Sudoku problem. Richard Romley is a retired DBA from Smith-Barney and he decided to play with Sudoku for recreation. He used SQL Server on his home machine and coded a solver in one SELECT statement. The procedure takes 81 parameters (the starting grid) and does an 81-way self-join. It produces ALL the valid answers -- bet you did not know that many published puzzles have multiple solutions! The code is straight forward and depends on the optimizer to handle the search condition logic. Even longer problems with tens of answers run in well under one second. The procedural solvers vary, but I have seen some that stop when they get to the first valid grid. If there is only one solution, they are very fast. But is the right answer actually the *set* of valid grids? Since I am an SQL person, I think so. The procedural solvers can get hung up by backtracking to the starting position when there are a few hundred answers and become very slow. I also strongly recommend getting the Japanese or Chinese editions if you read either language. My two translators cleaned up some old code and added new solutions as we went along.

Should having good naming conventions such as 11179-5 be included in database courses?
Drop them in as soon as you start. If you grow up with good conventions, you will start doing it without thinking about it. When I teach RDBMS, I start with scales and measurement theory so that my students know what data is all about -- whether it is in a database or not.

When can we expect your new book to show up in bookstores?
It was supposed to be out in 2008 February, but we lucked up and it will be out in 2008 January. Production was faster than planned. I guess after seven books, and working with the same people, we have it down pretty well!

A bunch of questions not related to the book

Why do you write technical books?
I have no talent for fiction. I cannot get a plot or characters onto paper to save my life and my dialogues are awful chains of "he said-she said" stiff sentences. My grandfather wrote children's poems in Slovak, and I have even less talent for poetry. I have a number of friends who write detective novels, Science Fiction and Fantasy. They don't consider me a real author because I don't do fiction. I think about trying my hand at YA (Young Adult) books -- Danica McKellar (Winnie from the WONDER YEARS television show) just did a math book for girls, so maybe I could do "A Child's Garden of Normal Forms" or a juvenile detective series called "The Hardware Boys", then go on to a television show called "Query Eye for the Database Guy" or something.

Which of your books was the hardest to write and why?
First edition of SQL FOR SMARTIES! It was my first book and I thought that having written a few hundred magazine columns would make it easy. I was dead wrong -- completely different skill set. I was a year late in delivering the manuscript. After that, I had a system in place.

What is coming down the line? Any new books or updates to current ones?
I am trying to do at least one book per year -- more if I am unemployed and need the advances. My current thoughts are a book on the use of Standards in a database, and one on programming tricks with OLAP functions, CTEs, and other new features in the SQL-2003 Standards. My Morgan-Kaufmann books tend to follow a five year cycle, just like the ANSI/ISO Standards. I also get asked by vendors to do product specific books. I might self-publish something completely off-topic. I have a book on domino games based on my postings and I teach Texas-42 on Royal Carri bean Cruises -- it is a domino game only played in Texas. I also have a book on Pai Gow (a gambling game played with Chinese dominoes) which might sell 10 copies. I will also be doing some video classes, but I don't have details yet.

Which of all the SQL books that you wrote is your favorite?
DATA & DATABASES, which never got the sales of the others. It is more philosophical and concerned with the nature of data instead of programming.

What SQL Server books are on your bookshelf?
Anything I can get by Henderson, Machanic, Moreau, Ben Gan and Delaney. The SQL Server experts are pretty well-known and they publish. This is not true for other products, especially the open-source RDBMS products.

Why do you participate in newsgroups and do you think it is a good idea for beginners to ask questions in newsgroups?
To do some shameless self-promotion, of course :) Newsgroups are a good source of SQL problems and some clever answers that I can use in books and when I am consulting. I also have a pedantic streak I did to get out. And if I am available on a newsgroup, people don't fill up my mailbox at home. And, yes, beginners should use newsgroups for help. But not to have someone else do their job or their homework for them. I like to see the mindset of people who are just learning SQL. It is not enough to see that someone is making a mistake; you want to figure out what lead to that particular mistake. Remember Chernobyl? Everyone did just what they were supposed to do, but there were a few critical assumptions that lead to an event cascade.

What are Cowboy Coders and id-iots?
The term "cowboy coder" is an old one. It means someone who starts coding without any design phase, without any overview to the system as a whole, without any research for industry standards or a company data dictionary. They usually love dialect code and tricks that trade immediate performance for maintainability. The heavy dialect code also gives them job security, since they usually only know one product. An "ID-iot" is a newbie who has no RDBMS education and wants to have the comfort of a sequential file system. So he puts an IDENTITY column on every table as the PRIMARY KEY. Never mind that it is proprietary and non-relational; it is the familiar record number from a file system which can use to mimic pointer chains. He does not understand that rows are not records, tables are not files, columns are not fields and references are constraints and not pointers.

I have been working with Sybase IQ for a little bit; what is your opinion on columnar databases?
Sybase IQ is not the only game in town. I consulted with SAND (nee Marcus, nee Nucleus) years ago. It was one of the first such products. Later I ran into WX2 (nee White Cross) and I am looking at Stonebreaker's Verticia now. Their advantages in parallelism and compressing large amounts of data make them the best choice for Data Warehouses. I would also look at Teradata, which uses hashing. That will become more important as the research on minimal perfect hashing functions gets out of the lab and into products.

Where can we expect to see you in 2008? Any conferences, seminars, trade shows or classrooms perhaps?
I will hopefully be doing some more "SQL Saturdays!" on my weekends. I want to do more webcasts, but I am not sure if I am ready for YouTube. My other travel goal for 2008 is to get to Australia or Japan; I have never gone past Hawaii.

Some of Joe Celko's Books:
SQL for Smarties
SQL Programming Style
Trees and Hierarchies in SQL
SQL Puzzles and Answers
Data and Databases

Use XACT_STATE() To Check For Doomed Transactions

Let's say you have the following transaction

BEGIN TRANSACTION TranA
BEGIN TRY
DECLARE @cond INT;
SET @cond = 1
END TRY
BEGIN CATCH
PRINT 'a'
END CATCH;
COMMIT TRAN TranA

This first transaction runs without a problem


Now change value of @cond from 1 to 'A' and run this code below.
BEGIN TRANSACTION TranA
BEGIN TRY
DECLARE @cond INT;
SET @cond = 'A';
END TRY
BEGIN CATCH
PRINT 'a'
END CATCH;
COMMIT TRAN TranA



This transaction will blow up with the following message
Server: Msg 3930, Level 16, State 1, Line 15
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
Server: Msg 3998, Level 16, State 1, Line 1
Uncommittable transaction is detected at the end of the batch. The transaction is rolled back.


We can use XACT_STATE() to check if we need to rollback or not without blowing up. I also used the ERROR_MESSAGE() function to print the error

BEGIN TRANSACTION TranA
BEGIN TRY
DECLARE @cond INT;
SET @cond = 'A';
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE();
END CATCH;
IF XACT_STATE() =0
BEGIN
COMMIT TRAN TranA
END
ELSE
BEGIN
ROLLBACK TRAN TranA
END


After running that we can see that the following message was printed

Conversion failed when converting the varchar value 'A' to data type int.

We trapped the error, rolled back the transaction and the transaction did not blow up

Sunday, December 16, 2007

EXISTS or COUNT(*) Which Do You Use To Check How Many Rows There Are?

Do you use this

IF (SELECT COUNT(*) FROM SomeTable
WHERE SomeColumn = SomeValue ) > 0

Or do you use this

IF EXISTS (SELECT * FROM SomeTable WHERE SomeColumn = SomeValue )

If you answered COUNT(*) then maybe you should take a look these two articles

Andrew Kelly has a nice post on SQLBlog
http://sqlblog.com/blogs/andrew_kelly/archive/2007/12/15/exists-vs-count-the-battle-never-ends.aspx

Matija Lah has a good post on his snaps & snippets blog
http://milambda.blogspot.com/2006/10/exists-or-not-exists-that-is-question.html

Volta: What is Microsoft Volta Video

Channel 9 has two videos about Volta.
From the site:

"Erik Meijer and a small team of very sharp developers (including Brian Beckman) have cooked up an intriguing toolset for building multi-tier distributed applications: Volta.

When the Volta CTP release announcement hit the wire last week, the press declared Volta as a Java killer, etc. In reality, Volta is primarily, and most importantly, a tier splitting system where the details of the tiers aren't of primary importance.

So, the most obvious case is Silverlight 2.0 as the client tier and a web server as the server tier... This is a great scenario since Volta can split IL to IL without having to resort to IL translation to, say, JavaScript (which has gotten too much attention). Further, execution contexts such as XNA, WinForms, DHTML, SVG, VML, even SQL are realistic client targets (tiers) for Volta. Then there's the notion of a local "distributed" system (think of applications running on a single client as the tiers) where Volta also makes sense as a means of easily composing the system.

Too much has been made of the IL to Javascript translation capabilities, so much so that people are apparently not seeing the forest for the trees. Well, have no fear. Over the coming days you are going to learn more about Volta than you can imagine and the people who'll you learn from also happen to be the people who thought up and implemented Volta.

The most important thing here, technically, is that Volta provides an intuitive and elegant toolset for composing concurrent distributed muti-tiered applications.

Think of Volta as a technology that facilitates communication between distributed execution contexts (a tier is just an execution context in this model). Using Volta in an client-web server scenario is only one approach. Volta could be used in many more interesting contexts (XNA, WinForms, WPF, even Singularity – use your imagination…).

In this episode (or part 1, if you will) we meet the team and learn the basics. Since it's a room full of devs there is whiteboarding and lots of techincal talk, just the way we like it here on C9.

You will be seeing much more of this great team over the coming days and Volta will make more sense with each epsiode, culminating in an Expert to Expert Going Deep where we a great deal of how Volta's tier splitting capabilities are implemented and get a clear picture of what a tier actually can be.

It's all about tier splitting and a tier is simply an execution context. Volta is much more than a web technology..."



Part1
Listen to the podcast(MP3)
Listen to the podcast(WMA)
Download the Video
Watch the Video

Part2
Listen to the podcast(MP3)
Listen to the podcast(WMA)
Download the Video
Watch the Video

GNET: Even Google Screws Up By Showing A Bunch Of MySQL Messages

When I visited http://www.gnet.com/ today I got greeted by the following error messages. These messages should never be seen by users. What about a friendly message instead? Anyway the mess is below.


Warning: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Warning: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Warning: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Warning: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/gnet/public_html.v2/libs/adodb/drivers/adodb-mysql.inc.php on line 359

Friday, December 14, 2007

Would You Put Your Database In The Cloud?

Amazon launched a database in the cloud.


Amazon SimpleDB is a web service for running queries on structured data in real time. This service works in close conjunction with Amazon Simple Storage Service (Amazon S3) and Amazon Elastic Compute Cloud (Amazon EC2), collectively providing the ability to store, process and query data sets in the cloud. These services are designed to make web-scale computing easier and more cost-effective for developers.


Traditionally, this type of functionality has been accomplished with a clustered relational database that requires a sizable upfront investment, brings more complexity than is typically needed, and often requires a DBA to maintain and administer. In contrast, Amazon SimpleDB is easy to use and provides the core functionality of a database - real-time lookup and simple querying of structured data - without the operational complexity. Amazon SimpleDB requires no schema, automatically indexes your data and provides a simple API for storage and access. This eliminates the administrative burden of data modeling, index maintenance, and performance tuning. Developers gain access to this functionality within Amazon's proven computing environment, are able to scale instantly, and pay only for what they use.


Amazon Simple Storage Service is a pretty nice service they provide. But would you move your database to Amazon?

You can read more about Amazon SimpleDB here: http://www.amazon.com/b/ref=sc_fe_c_1_3435361_1?ie=UTF8&node=342335011&no=3435361&me=A36L942TSJ2AJA

They also have a developer guide, getting started guide, FAQs and pricing.

What do you think?

Thursday, December 13, 2007

SQL Server Business Intelligence Screencasts

Channel 9 has posted a lot of Business Intelligence screencasts. In case you are bored below is the list. Strangely enough they skip numbers

Business Intelligence #01a: Introduction to Microsoft BI
This screencast provides an overview of Business Intelligence including basic database design concepts, ETL, reporting and analytics.


Business Intelligence #01b: Introduction to SQL Server 2005 Tools and Sample Databases
This screencast introduces the tools within the Microsoft Business Intelligence platform as well as a look at the Adventure Works OLTP and OLAP databases.


Business Intelligence #03a: Loading and Integrating Data from Multiple Sources
This screencast introduces the concept of Data Flow within SQL Server Integration Services (SSIS) including the use of Merge Join and Derived columns.

Business Intelligence #04a: Identifying and Importing New Customers by Using Fuzzy Lookup
This screencast introduces the concept of fuzzy lookup and highlights SQL Server Integration Services (SSIS) support within a Data Flow for performing these tasks.

Business Intelligence #04b: Implementing Slowly Changing Dimensions in the Data Flow
This screencast covers one of the most common scenarios when building a data warehouse. It introduces the concept of Slowly Changing Dimensions (SCD) and how to solve that challenge with SQL Server Integration Services (SSIS).

Business Intelligence #04c: Advanced Package Design
This screencast quickly covers some of the more advanced concepts such as Event Handlers, Logging and Package Configurations using SQL Server Integration Services (SSIS).

Business Intelligence #05a: Designing a Basic Report
This screencast covers the basics of using SQL Server Reporting Services (SSRS) including configuration of data sources and building basic reports. A few small tip, tricks and best practices are also covered.

Business Intelligence #05b: Adding Interactivity to a Report
This screencast shows the viewer how to add parameters and drill through to reports developed using SQL Server Reporting Services (SSRS).

Business Intelligence #06a: Developing a Report Model and Designing a Report Builder Report
This screencast cover building a Report Model in Business Intelligence Development Studio and show how to connect a report using SQL Server Reporting Services (SSRS).

Business Intelligence #07a: Deploying and Accessing Reports
This screencast shows how to embed and deploy SQL Server Reporting Services (SSRS) reports into your applications.


Business Intelligence #09a: Designing Dimensions
This screencast covers building dimensions on a cube built using SQL Server Analysis Services (SSAS).

Business Intelligence #09b: Advanced Dimension Design
This screencast covers optimization of the dimensions built in the previous screencast using SQL Server Analysis Services (SSAS).

Business Intelligence #09c: Using the Cube Wizard
This screencast covers the use of the Cube Wizard including some tips and tricks in SQL Server Analysis Services (SSAS).


Business Intelligence #09d: Introducing Cube Calculations
His screencast adds to the three previous screencasts by adding calculations to an SQL Server Analysis Services (SSAS) cube.


Business Intelligence #10a: Designing Reports on the UDM
This screencast covers optimization of the dimensions built in the previous screencast using SQL Server Analysis Services (SSAS).

Business Intelligence #10b: Exploring Analysis Features of Microsoft Excel 2007
This screencast covers the use of Excel as a tool for viewing data within a cube built with SQL Server Analysis Services (SSAS).

Business Intelligence #11a: More Analysis with Microsoft Excel 2007
This screencast covers using Excel as a powerful tool drill deeper into your information.


Business Intelligence #12a: Introducing Data Mining
This screencast covers general Data Mining techniques using SQL Server Analysis Services (SSAS).

Business Intelligence #12b: Introducing the Table Analysis Tool for Excel 2007
This screencast cover the use of Data Mining Add-Ins for Office using SQL Server Analysis Services (SSAS) as the data mining engine on table data within Excel.

Business Intelligence #14a: Building a PerformancePoint Scorecard
This screencast covers building and publishing scorecards with PerformancePoint.

The Strange Case OF Nulls And Case

Okay it is not Dr. Jekyll and Mr. Hyde but I had to come up with a title. This was a question someone asked yesterday in the sql programming group


http://groups.google.com/group/microsoft.public.sqlserver.programming/browse_thread/thread/126735827b7ae667#

This person had a case statement like this

SELECT
CASE
WHEN COL1 IS NULL THEN 'UNK'
WHEN COL1 = 'SUGAR' THEN 'SGR'
WHEN COL1 = 'SALT' THEN 'SAL'
WHEN COL1 = 'PEPPER' THEN 'PEP'
END AS items
FROM #INV_ITEMS

This still returned NULLS. Can you spot the flaw? there is no else statement, if there is a value which is not sugar, salt or pepper then a NULL will be returned. let's take a look.

Create this table

CREATE TABLE #INV_ITEMS (COL1 varchar(23))
INSERT #INV_ITEMS VALUES('SUGAR')
INSERT #INV_ITEMS VALUES('SALT')
INSERT #INV_ITEMS VALUES('PEPPER')
INSERT #INV_ITEMS VALUES('WASABI')

Now run this
SELECT
CASE
WHEN COL1 IS NULL THEN 'UNK'
WHEN COL1 = 'SUGAR' THEN 'SGR'
WHEN COL1 = 'SALT' THEN 'SAL'
WHEN COL1 = 'PEPPER' THEN 'PEP'
END AS items
FROM #INV_ITEMS

Output
--------
SGR
SAL
PEP
NULL


So we get a NULL, but which row is that? We just add the column to find out


SELECT Col1,
CASE
WHEN COL1 IS NULL THEN 'UNK'
WHEN COL1 = 'SUGAR' THEN 'SGR'
WHEN COL1 = 'SALT' THEN 'SAL'
WHEN COL1 = 'PEPPER' THEN 'PEP'
END AS items
FROM #INV_ITEMS


Output
--------
SUGAR SGR
SALT SAL
PEPPER PEP
WASABI NULL

Aha, it is the wasabi.

Let's try again by including an ELSE


SELECT Col1,
CASE
WHEN COL1 IS NULL THEN 'UNK'
WHEN COL1 = 'SUGAR' THEN 'SGR'
WHEN COL1 = 'SALT' THEN 'SAL'
WHEN COL1 = 'PEPPER' THEN 'PEP'
ELSE 'UNK'
END AS items
FROM #INV_ITEMS

Output
--------
SUGAR SGR
SALT SAL
PEPPER PEP
WASABI UNK

There we go, it is correct now.

Now let's make it more interesting by inserting a blank, a space and a NULL


INSERT #INV_ITEMS VALUES('')
INSERT #INV_ITEMS VALUES(' ')
INSERT #INV_ITEMS VALUES(NULL)

We can use a combination of NULLIF and RTRIM to filter out blanks, spaces and NULLS

SELECT Col1,
CASE
WHEN COL1 IS NULL THEN 'UNK'
WHEN COL1 = 'SUGAR' THEN 'SGR'
WHEN COL1 = 'SALT' THEN 'SAL'
WHEN COL1 = 'PEPPER' THEN 'PEP'
ELSE 'UNK'
END AS items
FROM #INV_ITEMS

Output
--------
SUGAR SGR
SALT SAL
PEPPER PEP
WASABI UNK
NullOrBlank
NullOrBlank
NULL NullOrBlank

And there it is

DROP TABLE #INV_ITEMS

Pro LINQ: Language Integrated Query in C# 2008

Apress has published their latest .NET book: Pro LINQ: Language Integrated Query in C# 2008
Author: Joseph C. Rattz, Jr.
ISBN10: 1-59059-789-3
ISBN13: 978-1-59059-789-7
600 pp.
Published on Nov 2007


LINQ is the project name for a set of extensions to the .NET Framework that provide a generic approach to querying data from different data sources. LINQ will premier in Visual Studio 2008, and will become the next must–have skill for .NET developers. For more information about LINQ, you can check out the author’s portal at www.linqdev.com.

Pro LINQ: Language Integrated Query in C# 2008 is all about code.

Literally, this book starts with code and ends with code. In most books, the author shows the simplest example demonstrating how to use a method, but they so rarely show how to use the more complex prototypes. Pro LINQ: Language Integrated Query in C# 2008 is different. Demonstrating the overwhelming majority of LINQ operators and protoypes, it is a veritable treasury of LINQ examples.

Rather than obscure the relevant LINQ principles in code examples by focusing on a demonstration application you have no interest in writing, Pro LINQ: Language Integrated Query in C# 2008 cuts right to the chase of each LINQ operator, method, or class. However, where complexity is necessary to truly demonstrate an issue, the examples are right there in the thick of it. For example, code samples demonstrating how to handle concurrency conflicts actually create concurrency conflicts so you can step through the code and see them unfold.

Most books tell you about the simple stuff, while few books warn you of the pitfalls. Where Pro LINQ: Language Integrated Query in C# 2008 returns your investment is in the hours, and sometimes days, spent by the author determining why something may not work as expected. Sometimes this results in an innocent looking paragraph that may take you a minute to read and understand, but took days to research and explain.

Table of contents:

PART 1 Pro LINQ: Language Integrated Query in C# 2008
CHAPTER 1 Hello LINQ
A Paradigm Shift
Query XML
Query a SQL Server Database
Introduction
LINQ Is About Data Queries
Components
How to Obtain LINQ
LINQ Is Not Just for Queries
Tips to Get You Started
Use the var Keyword When Confused
Use the Cast or OfType Operators for Legacy Collections
Prefer the OfType Operator to the Cast Operator
Don’t Assume a Query Is Bug-Free
Take Advantage of Deferred Queries
Use the DataContext Log
Use the LINQ Forum
Summary

CHAPTER 2 C# 3.0 Language Enhancements for LINQ
New C# 3.0 Language Additions
Lambda Expressions
Expression Trees
Keyword var, Object Initialization, and Anonymous Types
Extension Methods
Partial Methods
Query Expressions
Summary

PART 2 LINQ to Objects
CHAPTER 3 LINQ to Objects Introduction
LINQ to Objects Overview
IEnumerablelt;Tgt, Sequences, and the Standard Query Operators
Returning IEnumerablelt;Tgt;, Yielding, and Deferred Queries
Func Delegates
The Standard Query Operators Alphabetical Cross-Reference
Summary

CHAPTER 4 Deferred Operators
Referenced Namespaces
Referenced Assemblies
Common Classes
The Deferred Operators by Purpose
Restriction
Projection
Partitioning
Concatenation
Ordering
Join
Grouping
Set
Conversion
Element
Generation
Summary

CHAPTER 5 Nondeferred Operators
Referenced Namespaces
Common Classes
The Nondeferred Operators by Purpose
Conversion
Equality
Element
Quantifiers
Aggregate
Summary


PART 3 LINQ to XML
CHAPTER 6 LINQ to XML Introduction
Introduction
Cheating the W3C DOM XML API
Summary

CHAPTER 7 The LINQ to XML API
Referenced Namespaces
Significant API Design Enhancements
XML Tree Construction Simplified with Functional Construction
Document Centricity Eliminated in Favor of Element Centricity
Names, Namespaces, and Prefixes
Node Value Extraction
The LINQ to XML Object Model
Deferred Query Execution, Node Removal, and the Halloween Problem
XML Creation
Creating Elements with XElement
Creating Attributes with XAttribute
Creating Comments with XComment
Creating Containers with XContainer
Creating Declarations with XDeclaration
Creating Document Types with XDocumentType
Creating Documents with XDocument
Creating Names with XName
Creating Namespaces with XNamespace
Creating Nodes with XNode
Creating Processing Instructions with XProcessingInstruction
Creating Streaming Elements with XStreamingElement
Creating Text with XText
Creating CData with XCData
XML Output
Saving with XDocument.Save()
Saving with XElement.Save()
XML Input
Loading with XDocument.Load()
Loading with XElement.Load()
Parsing with XDocument.Parse() or XElement.Parse()
XML Traversal
Traversal Properties
Traversal Methods
XML Modification
Adding Nodes
Deleting Nodes
Updating Nodes
XElement.SetElementValue() on Child XElement Objects
XML Attributes
Attribute Creation
Attribute Traversal
Attribute Modification
XML Annotations
Adding Annotations with XObject.AddAnnotation()
Accessing Annotations with XObject.Annotation() or XObject.Annotations()
Removing Annotations with XObject.RemoveAnnotations()
Annotations Example
XML Events
XObject.Changing
XObject.Changed
A Couple of Event Examples
Trick or Treat, or Undefined?
Summary

CHAPTER 8 LINQ to XML Operators
Introduction to LINQ to XML Operators
Ancestors
Prototypes
Examples
AncestorsAndSelf
Prototypes
Examples
Attributes
Prototypes
Examples
DescendantNodes
Prototypes
Examples
DescendantNodesAndSelf
Prototypes
Examples
Descendants
Prototypes
Examples
DescendantsAndSelf
Prototypes
Examples
Elements
Prototypes
Examples
InDocumentOrder
Prototypes
Examples
Nodes
Prototypes
Examples
Remove
Prototypes
Examples
Summary

CHAPTER 9 Additional XML Capabilities
Referenced Namespaces
Queries
No Reaching
A Complex Query
Transformations
Transformations Using XSLT
Transformations Using Functional Construction
Tips
Validation
The Extension Methods
Prototypes
Obtaining an XML Schema
Examples
XPath
Prototypes
Examples
Summary


PART 4 LINQ to DataSet
CHAPTER 10 LINQ to DataSet Operators
Assembly References
Referenced Namespaces
Common Code for the Examples
DataRow Set Operators
Distinct
Except
Intersect
Union
SequenceEqual
DataRow Field Operators
Fieldlt;Tgt;
SetFieldlt;Tgt;
DataTable Operators
AsEnumerable
CopyToDataTablelt;DataRowgt;
Summary

CHAPTER 11 Additional DataSet Capabilities
Required Namespaces
Typed DataSets
Putting It All Together
Summary


PART 5 LINQ to SQL
CHAPTER 12 LINQ to SQL Introduction
Introducing LINQ to SQL
The DataContext
Entity Classes
Associations
Concurrency Conflict Detection
Concurrency Conflict Resolution
Prerequisites for Running the Examples
Obtaining the Appropriate Version of the Northwind Database
Generating the Northwind Entity Classes
Generating the Northwind XML Mapping File
Using the LINQ to SQL API
IQueryablelt;Tgt;
Some Common Methods
GetStringFromDb()
ExecuteStatementInDb()
Summary

CHAPTER 13 LINQ to SQL Tips and Tools
Introduction to LINQ to SQL Tips and Tools
Tips
Use the DataContext.Log Property
Use the GetChangeSet() Method
Consider Using Partial Classes or Mapping Files
Consider Using Partial Methods
Tools
SQLMetal
The Object Relational Designer
Use SQLMetal and the O/R Designer Together
Summary

CHAPTER 14 LINQ to SQL Database Operations
Prerequisites for Running the Examples
Some Common Methods
Using the LINQ to SQL API
Standard Database Operations
Inserts
Queries
Updates
Deletes
Overriding Database Modification Statements
Overriding the Insert Method
Overriding the Update Method
Overriding the Delete Method
Example
Overriding in the Object Relational Designer
Considerations
SQL Translation
Summary

CHAPTER 15 LINQ to SQL Entity Classes
Prerequisites for Running the Examples
Entity Classes
Creating Entity Classes
XML External Mapping File Schema
Projecting into Entity Classes vs. Nonentity Classes
Extending Entity Classes with Partial Methods
Important System.Data.Linq API Classes
EntitySetlt;Tgt;
EntityReflt;Tgt;
Tablelt;Tgt;
IExecuteResult
ISingleResultlt;Tgt;
IMultipleResults
Summary

CHAPTER 16 The DataContext
Prerequisites for Running the Examples
Some Common Methods
Using the LINQ to SQL API
[Your]DataContext Class
The DataContext Class
Primary Purposes
DataContext() and [Your]DataContext()
SubmitChanges()
DatabaseExists()
CreateDatabase()
DeleteDatabase()
CreateMethodCallQuery()
ExecuteQuery()
Translate()
ExecuteCommand()
ExecuteMethodCall()
GetCommand()
GetChangeSet()
GetTable()
Refresh()
Summary

CHAPTER 17 Concurrency Conflicts
Prerequisites for Running the Examples
Some Common Methods
Using the LINQ to SQL API
Concurrency Conflicts
Optimistic Concurrency
Pessimistic Concurrency
An Alternative Approach for Middle Tiers and Servers
Summary

CHAPTER 18 Additional SQL Capabilities
Prerequisites for Running the Examples
Using the LINQ to SQL API
Using the LINQ to XML API
Database Views
Entity Class Inheritance
Transactions
Summary

INDEX


Sample Chapter: Ch. 01 - Hello LINQ
Amazon Link: Pro LINQ: Language Integrated Query in C# 2008

Wednesday, December 12, 2007

Refactoring in Visual Basic with Refactor!

Lisa Feigenbaum, a Program Manager on the Visual Basic Team, she shows us how to use Refactor!, the free add-in for Visual Studio 2005 and 2008 that provides over 30 refactorings for Visual Basic. Lisa walks us through all the new refactorings that were added for the latest version of Visual Basic 2008

Watch the screencast(WMV)

RegExLib Redesign Complete

They've done some design work on the Regular Expression Library, and cleaned up the code base significantly to get rid of some cruft and fix a few bugs and hopefully the new design will make it that much easier for people to search for regular expression examples.

Visit the site here: http://regexlib.com/

Microsoft Acquires Multimap, One of Europe’s Top Online Map Services

Microsoft Corp. has acquired Multimap, one of the United Kingdom’s top 100 technology companies and one of the leading online mapping services in the world. The acquisition gives Microsoft a powerful new location and mapping technology to complement existing offerings such as Virtual Earth, Live Search, Windows Live services, MSN and the aQuantive advertising platform, with future integration potential for a range of other Microsoft products and platforms. Terms of the deal were not disclosed.

“The addition of Multimap enhances Microsoft’s position as a leading provider of mapping and location platform services,” said Sharon Baylay, general manager of the Online Services Group at Microsoft. “This acquisition will play a significant role in the future growth of our search business and presents a huge opportunity to expand our platform business beyond the U.K. and globally. We are thrilled to welcome Multimap onboard.”

One of the best-known online mapping companies worldwide, Multimap provides a publicly available personal mapping service at http://www.multimap.com, as well as a range of integrated business services.

“Partnering with Microsoft gives us a world of new opportunities to build our mapping services into new technologies and applications,” said Jeff Kelisky, CEO of Multimap. “As one of the world’s foremost technology brands, Microsoft is in a position to bring even more value to the Multimap service and give people everywhere new, exciting and fun ways to get from point A to point B.”

Multimap will operate as a wholly owned subsidiary of Microsoft, as part of the Virtual Earth and Search teams in the Online Services Group. The acquisition is the latest in a series of moves as Microsoft seeks to expand its online services to deliver software, services, and premium content and applications to consumers and businesses.

SQLite Consortium Launches With Mozilla And Symbian As Charter Members

The SQLite Consortium, a new membership association dedicated to maintaining SQLite as a fully open and independent product, was formally announced today. Mozilla and Symbian Ltd. have joined the SQLite Consortium as charter members.

SQLite is a compact, high efficiency, high reliability, embeddable SQL database engine. The source code to SQLite is in the public domain and is available with no associated fees. SQLite is the most deployed SQL database engine in the world and is currently used in a wide range of commercial software products and electronic devices from leading manufacturers. SQLite is found today in many mobile phones, MP3 players, set-top boxes, and PCs.

The mission of the SQLite Consortium is to continue developing and enhancing SQLite as a product that anyone may use without paying royalties or licensing fees. Members of the SQLite Consortium provide funding to enable this mission and in return receive enterprise-level technical support. Technical control and direction of SQLite remains entirely with the SQLite developers.

Mozilla, developer of the popular open-source Firefox web browser, and Symbian, the market-leading open operating system for smartphones, both deploy the SQLite database engine in their products. As charter members of the Consortium, Mozilla and Symbian are ensuring the development and support of SQLite as a freely accessible and public domain software asset.

“SQLite has become a popular embedded database because it is lightweight, fast, and open source,” said Michael Schroepfer, Vice President of Engineering, Mozilla. “As a charter member of the SQLite Consortium, Mozilla is excited to help ensure SQLite remains a vibrant and open technology, in line with our mission to promote choice and innovation on the Internet.”

“The SQLite Consortium will help set the standards for database management which are essential in smartphone functionality and will also help create a pool of developers, highly-skilled in SQLite for future mobile phone development,” said Bruce Carney, Director, Developer Programmes & Services, Symbian. "Our involvement with the SQL Consortium demonstrates Symbian's commitment to open standards in the industry and as mobile phones become increasingly powerful and smartphones become increasingly popular, we are focused on ensuring that desktop developers, who move to the mobile space, have the easiest and most productive experience possible."

SQLite is a winner of the 2005 Google/ O'Reilly Open Source Award. Additional information regarding the SQLite Consortium is available at the SQLite website, www.sqlite.org.


About SQLite
SQLite is a software library that implements a self-contained, embeddable, serverless, zero-configuration, transactional SQL database engine. The code for SQLite is in the public domain and is free for any use, commercial or private. SQLite is currently found in countless software titles and electronic devices.

SQLite was originally developed and released 2000 by Dr. D. Richard Hipp. The code continues to be maintained and enhanced by an international team of developers under Hipp's direction.

About Mozilla
Mozilla is a global community dedicated to building free, open source products and technologies that improve the online experience for people everywhere. Mozilla works in the open with a highly disciplined, transparent and cooperative development process, under the umbrella of the non-profit Mozilla Foundation. As a wholly owned subsidiary, the Mozilla Corporation organizes the development and marketing of Mozilla products. This unique structure has enabled Mozilla to financially support and cultivate competitive, viable community innovation. For more information, visit www.mozilla.com.

About Symbian Limited
Symbian is a software licensing company that develops and licenses Symbian OS, the market-leading open operating system for advanced, data-enabled mobile phones known as smartphones.

Symbian licenses Symbian OS to the world's leading handset manufacturers and has built close co-operative business relationships with leading companies across the mobile industry. During Q3 2007, 20.4 million Symbian smartphones were sold worldwide to over 250 major network operators, bringing the total number of Symbian smartphones shipped up to 30 September 2007 to 165 million.

Symbian has its headquarters in London, United Kingdom, with offices in the United States, United Kingdom, Asia (India, P.R. China, and Korea) and Japan. For more information, please visit www.symbian.com.

Retrace : A SQL Profiler Trace Swiss Army Knife

Have you ever needed to find your most expensive queries and quickly grew weary of writing T-SQL against trace tables to try to ferret them out? Have you ever had to wade through gigabytes of trace data just to find one ill-behaving query? Have you ever struggled to decide what performance metrics really matter when analyzing Profiler traces: duration, reads, writes, etc? Ken Henderson's post is about a new tool Bart and Ken wrote to help you do all this and more.

Check it out here: http://blogs.msdn.com/khen1234/archive/2007/12/12/a-sql-profiler-trace-swiss-army-knife.aspx

Tuesday, December 11, 2007

Office 2007 Service Pack 1 Available For Download

Microsoft has just released their first service pack for Microsoft Office 2007, promising lots of bug fixes, performance enhancements, and improved security. The 2007 Microsoft Office suite Service Pack 1 delivers important customer-requested stability and performance improvements, while incorporating further enhancements to user security. This service pack also includes all of the updates released for the 2007 Office suite prior to December of 2007. You can get a more complete description of SP1, including a list of issues that were fixed, in the Microsoft Knowledge Base article 936982: Description of the 2007 Microsoft Office suite Service Pack 1.

Access 2007
For third-party applications that use Data Access Object code to synchronize replicated information in a Microsoft Office Access™ 2007 database, Office Access 2007 no longer returns a run-time error that causes the application to close or time out.

Communicator 2007
Microsoft Office Communicator 2007 now presents more accurate presence information and does so with consistent visual cues.

  • The icons used to display presence are modified so that users who are red-green colorblind can determine people’s presence status.
  • Office Communicator 2007 no longer causes presence icons to flicker when multiple people appear simultaneously.
  • Presence information in Office Communicator 2007 and other Microsoft Office applications is consistent in all scenarios.
  • Microsoft Office Outlook® 2007 no longer starts in the background along with Office Communicator 2007.


Excel 2007
Several stability, general usability, and compatibility improvements have been incorporated into Microsoft Office Excel® 2007.
  • Office Excel 2007 no longer stops responding in some instances when opening a workbook containing calculations.
  • Office Excel 2007 workbooks that are saved in Page Break Preview mode and opened in Microsoft Office Excel 2003 no longer produce an error when switched to Normal view.
  • When inputting calculations that should result in numbers 65,534 through 65,536, Office Excel 2007 no longer returns the display error of 100,001.
  • Office Excel 2007 now retains custom colors on shapes in Excel 2003 worksheets.
  • Office Excel 2007 no longer misplaces or wraps labels in charts when the workbook is reopened.


Groove 2007
For Microsoft Office Groove® 2007, issues surrounding the activation of new and previously retired accounts have been resolved.
  • Office Groove 2007 no longer places a 60-day limit on retired accounts that are stored in backup files.
  • When the auto-activation feature is turned on and invited users open an invitation file (.grv), they are no longer prompted for an activation key or notified of an unconfigured account.
    InfoPath 2007 and InfoPath Forms Server
    Microsoft Office InfoPath® 2007 benefits from a more consistent user experience, especially with online forms.
  • When users input data into an Office InfoPath 2007 form using a Web browser, the saved changes are now retained after closing and reopening the form.
  • Font size no longer increases when pasting from one rich text box in Office InfoPath 2007 to another.


Outlook 2007
Microsoft Office Outlook 2007 benefits from a number of fixes and enhancements that make the popular messaging client more stable and easier to use.
  • Office Outlook 2007 no longer closes unexpectedly when the junk e-mail rule is set to null.
  • Body content in HTML-formatted e-mail messages now appears properly in the preview pane or when the message is opened.
  • Items moved from an offline folder file (.ost) to a personal folder file (.pst) now display properly in the preview pane.
  • In search folders, Office Outlook 2007 now shows the accurate count for unread items that are hidden.
  • When scheduling a resource such as a meeting room in meeting requests, the public free/busy information for the resource is now complete and visible in Office Outlook 2007.
  • When users forward plain-text e-mail messages with attachments, the body text is now retained.
  • If the Mailbox Cleanup wizard starts while the user is dragging a message into a folder, Office Outlook 2007 no longer closes unexpectedly.


PowerPoint 2007
Fixes in Microsoft Office PowerPoint® 2007 make the presentation application even more reliable, especially when used in conjunction with Microsoft Office Outlook Web Access, Web sites that use forms authentication, or event macros.
  • Users who have started an event macro in Office PowerPoint 2007 can now advance slides by right-clicking and then choosing Next or Previous.
  • When users try to open a presentation in Office PowerPoint 2007 from a Web site using forms authentication, the presentation will now appear properly.
  • Users can now open presentations in Office PowerPoint 2007 from e-mail attachments in Office Outlook Web Access.
  • Office PowerPoint 2007 no longer crashes when the user programmatically accesses the parent property of the Hyperlinks Collection Object in the Office PowerPoint 2007 object model.
  • Text formatting now behaves similarly to previous versions of PowerPoint, where new text retains the formatting of the deleted text instead of using the formatting of the character to the left.


Project 2007 and Project Server 2007
The 2007 Office system SP1 eliminates instances when either Microsoft Office Project 2007 or the accompanying Microsoft Office Project Server 2007 crashes due to a software error.
  • Office Project 2007 no longer crashes when users click to view Windows account or Details in the Resources Information dialog box and then perform any other action.
  • Office Project 2007 does not produce an error message when a link from one task accesses a task in a different project stored on Office Project Server 2007. This error only occurred when the linked project was renamed.
  • Microsoft Office Project Web Access now makes task IDs available and allows users to enter a work estimate when creating a new task.


SharePoint Server 2007
Microsoft Office SharePoint® Server 2007 has improved manageability and compatibility.
  • Office SharePoint Server 2007 now has the ability to be installed on Windows Server 2008 providing compatibility and support.
  • ASP.NET AJAX has compatibility and support with Office SharePoint Server 2007 including examples for customer web parts build the AJAX 1.0 Control Toolkit and the AJAX 1.0 Extensions for ASP.NET (KB 941955)
  • New manageability with STSADM commands for consolidating or repartitioning your content databases, renaming host named site collections, and the ability to scope the people picker to a specific active directory organizational unit.
  • Advanced search results now include results with spaces in file names.
  • The View by Modified Date function now works correctly in search results.
  • Office SharePoint Server 2007 is now able to crawl case-sensitive Web content on computers not running the Windows® operating system.
  • Office SharePoint Server 2007 can now index a public folder on a Microsoft Exchange Server with a backslash in the subject.


Visio 2007
Microsoft Office Visio® 2007 now properly redraws shapes when users apply a dynamic connector that is part of a group of shapes in Office Visio 2007.
Word 2007
By taking care of several small stability and usability details, Microsoft Office Word 2007 is a more useful and reliable tool for everyday document creation tasks.
  • With Office Word 2007, users can now open and edit embedded objects that contain other embedded objects.
  • When using smart documents in Office Word 2007, the Document Actions task pane no longer disappears when moving the pointer into the Reviewing pane. Additionally, task panes opened earlier no longer appear unexpectedly.
  • Office Word 2007 properly creates and updates a table of contents in unprotected sections of documents that also contain sections protected for forms.
  • Office Word 2007 no longer prints an extra page when users choose a printer with the duplex option enabled.


Download it here: http://www.microsoft.com/downloads/details.aspx?FamilyId=9EC51594-992C-4165-A997-25DA01F388F5&displaylang=en

Screen Cast: LINQ to DataSet

Assuming you understand how LINQ to objects works and assuming you know how DataSets work, this 18' video shows you how LINQ to DataSet can be used in your projects

Watch the screencast(WMV)

Monday, December 10, 2007

Microsoft Office Live Workspace beta launched

Microsoft Office Live Workspace beta is your online place to save, access, and share documents and files. Use it to group related information for work, school, or personal projects. No downloads are required – just sign up and go.


Anywhere Access
Save 1000+ Microsoft Office documents in one place
Access them from almost any computer with a Web browser
No more flash drives or sending yourself documents via e-mail
Learn more

Share with Others
Invite people to your workspace
You control who can view, comment, and edit your documents
Stop manually merging versions from multiple people
Learn more

Extend the Microsoft Office Experience
Open and save files directly from Word, Excel, and PowerPoint
Synchronize contact, task, and event lists with Outlook
No need to learn a new program
Learn more

Signup for the beta here: http://workspace.officelive.com/

NBA to Use Microsoft Silverlight Applications on NBA.com

The National Basketball Association (NBA) will employ Microsoft Silverlight on NBA.com to further enhance the online video experience for NBA fans around the world. Microsoft Silverlight, a cross-browser, multiplatform plug-in for delivering the next generation of media experiences and rich interactive applications for the Web, will also be utilized on WNBA.com and NBADevelopmentLeague.com.

NBA.com will feature a full-screen NBA photo gallery, offer video highlights and deliver additional interactive applications throughout the site using Microsoft Silverlight. Through the use of Microsoft Corp.’s new application, the NBA will be able to provide further access to its extensive digital video library, integrate the video experience seamlessly into the site, and ultimately provide fans with access to more online video features.

Microsoft Silverlight enables the fast delivery of high-quality video to all major browsers running on the Mac OS or Windows operating system. As a part of its relationship with Microsoft, the NBA will continue to explore additional opportunities to display video and photos throughout the site.

“As NBA.com’s usage continues to soar, Microsoft’s innovative Silverlight will provide our fans with access to more multimedia and video highlights than ever before,” said Steve Grimes, vice president of interactive services for NBA Entertainment. “This will be a great application for us to further showcase both historic and current NBA photos and video on NBA.com.”

“As we enter a new NBA season, we’re thrilled to partner with the NBA to bring that courtside experience through,” said Scott Guthrie, general manager in the Developer Division at Microsoft. “Silverlight is focused on delivering rich media scenarios in a browser that provide a more consistent viewing experience, and because it supports the VC-1 codec, the NBA is able to provide fans with access to hours and hours of archived games. Fans can catch up or relive their favorite moments whenever they want.”

This season, NBA.com is once again providing fans with access to a full season of live NBA game webcasts with NBA LEAGUE PASS Broadband and is offering more broadband highlights than ever before through NBA TV Broadband. In addition, throughout the 2007–08 NBA season the new Download Store on NBA.com will allow fans to download to their computer full NBA game broadcasts shortly after games conclude.

Overall, NBA.com continues to establish new traffic records for video usage on the site. During November — the first month of the 2007–08 NBA season — NBA.com set the all-time monthly record for video streams, with more than 38 million, representing an increase of 95 percent compared with the same month last season. The previous all-time monthly record, of more than 30 million video streams, was established in February 2007.

About the NBA

The NBA, founded in 1946, is a global sports and entertainment brand that features 30 teams in the United States and Canada. During the 2007–08 season, the NBA will distribute games and programming to 215 countries and territories in 41 languages. The league’s worldwide reach can also be seen with 76 international players from 30 countries and territories on NBA rosters. Domestically, the NBA broadcasted 142 games on national television last season on ABC, TNT, ESPN and ESPN2, and eclipsed attendance records for the fourth consecutive season.

NBA TV, launched in 1999 as the first 24-hour television channel created and operated by a professional sports league, is distributed to 80 countries. NBA merchandise is sold in more than 100,000 stores in 100 countries on six continents; NBA.com gets more than half of its visitors from outside the United States.

As fans witness tremendous performances on the court, some of the NBA’s most significant efforts occur off the court. NBA Cares is the league’s social responsibility initiative that builds on the NBA’s long tradition of addressing important social issues in the United States and around the world. During the first year of NBA Cares, teams, current and former players, and the league office contributed 205,000 hours of hands-on volunteer service, raised more than $32 million for charity, and created 109 places where kids and families can live, learn or play. NBA Cares works with internationally recognized youth-serving programs that support education, youth and family development, and health-related causes, including UNICEF, Reading Is Fundamental, Habitat for Humanity, Boys & Girls Clubs of America, Feed the Children, Special Olympics, KaBoom!, Make-A-Wish Foundation and many others.