Sunday, January 22, 2006

8 mistakes when creating PowerPoint presentations

8 mistakes when creating PowerPoint presentations

Here's one they missed: hide reminders/desktop alerts so you don't get a message like "refill herpes meds" etc during your presentation:

Powerpoint > Tools > Options. > Preferences tab > E-mail Options > Advanced E-mail Options.
Under When new items arrive in my Inbox, clear the Display a New Mail Desktop Alert (default Inbox only) check box.

thermometer for powerpoint - powerpoint, presentations

thermometer for powerpoint - powerpoint, presentations

Thursday, January 12, 2006

Sunday, January 08, 2006

Sorting SQL Project Files in SQL Server Management Studio

Sorting SQL Project Files in SQL Server Management Studio

Download details: PSS Service Center Labs - 2005

Download details: PSS Service Center Labs - 2005

Overview
Do you want to know how Microsoft SQL Product Support Services (PSS) engineers break down problems? Originally designed as an opportunity for customers to work with Microsoft SQL Server Escalation Engineers at the SQL PASS 2005 Conference, these labs can be used for self-paced troubleshooting training on SQL Server 2005.

All labs are documented so that users can work through different scenarios in a self-study environment. These labs cover popular topics such as blocking, performance, memory, and debugging, and data recovery.


My way of hacking myself out of problems with software is usually Sysinternals Filemon & Regmon. There should be some interesting tips from above.

Microsoft Analysis Services - Wikipedia, the free encyclopedia

Microsoft Analysis Services - Wikipedia, the free encyclopedia: "History
Microsoft's foray into OLAP Server business began in 1996 with acqusition of OLAP technology from Israeli company Panorama. In 1998 Microsoft released the first version, named OLAP Services, part of SQL Server 7. OLAP Services supported MOLAP, ROLAP, HOLAP and Hybrid OLAP architectures, used OLEDB for OLAP as the client access API and MDX as a query language. It could work in the client server mode or in offline mode with local cube files. In 2000 Microsoft released the next version, named Analysis Services 2000. The rename from OLAP Services happened because of the inclusion of Data Mining services, so the product wasn't just about OLAP anymore. Analysis Services 2000 was an evolutionary release, it was built on the same architecture as OLAP Services and was backward compatible with it. The major improvements included more flexibility in dimension design, by supporting parent child dimensions, changing dimensions, virtual dimensions etc. Another major area of improvements was much enhanced calculation engine with support for unary operators, custom rollups and cell calculations. Other new features were dimension security, distinct count, connectivity over HTTP, session cubes, grouping levels etc. In 2005 Microsoft released the next generation of OLAP and Data Mining technology as Analysis Services 2005. Unlike previous released, Analysis Services 2005 was a revolutionaly release. It maintained backward compatibility on the API level, i.e. applications written with OLEDB for OLAP and MDX continue to work, but the architecture of the product was completely different. The major change came to the model in the form of UDM - Unified Dimensional Model."

Propagating Stimula: Setting Up a SQL Server Stress Test Environment in 8 Steps

Propagating Stimula: Setting Up a SQL Server Stress Test Environment in 8 Steps: "Setting Up a SQL Server Stress Test Environment in 8 Steps"

Great article, even for general requirements gathering and analysis.

Managing Analysis Services Partitions with Table-Valued Functions (table UDFs)

Managing Analysis Services Partitions with Table-Valued Functions (table UDFs): "Here's an Adventure Works cube example:

1.) Create the following function in the AdventureWorksDW database:
----------------------
CREATE FUNCTION dbo.udf_FactInternetSales_Date_Range
(@Start_OrderDateKey INT, @End_OrderDateKey INT)
RETURNS table
AS
RETURN
(
SELECT *
FROM dbo.FactInternetSales
WHERE OrderDateKey >= @Start_OrderDateKey
AND OrderDateKey <= @End_OrderDateKey
)
----------------------

2.) Open up BIDS and the Adventure Work cubes and browse to the Partitions tab.

3.) Under the 'Internet Sales' measure group partitions, change the Internet_Sales_2004 source query to:

SELECT * FROM dbo.udf_FactInternetSales_Date_Range(915,1280)

4.) Do the same for the other partitions, except change the input OrderDateKey ranges passed into the UDF."

Friday, January 06, 2006

Geek Noise

Geek Noise: "$size = new-object System.Management.Automation.Host.Size [int] $width = 132 [int] $height = 45 switch( $args.Length ) { 2 { $width = $args[0] $length = $args[1] } 1 { $width = [int] $args[0] $height = [int] ($width / 3) } 0 { 'No args...' | out-host } } 'Setting to $width x $height' | out-host $bufferWidth = $host.UI.RawUI.BufferSize.Width if( $bufferWidth -lt $width ) { $size = $host.UI.RawUI.BufferSize $size.Width = $width $host.UI.RawUI.BufferSize = $size $size.Width = $width $size.Height = $height $host.UI.RawUI.WindowSize = $size } else { $size.Width = $width $size.Height = $height $host.UI.RawUI.WindowSize = $size $size = $host.UI.RawUI.BufferSize $size.Width = $width $host.UI.RawUI.BufferSize = $size } "

Time to download Monad.

Friday, December 23, 2005

Brian Knight, SQL Server MVP

Speeding up the VS/SQL User Interface Load Time

One of the frustrating things about the new Visual Studio interface is the load speed. This applies to SQL Server 2005 as well. I have a very new computer which is quite speedy and the splash screen still takes 5-10 seconds to load. On my old machine, this is more like 10-15 seconds while the splash screen is loaded before SQL Server Management Studio would show the login dialog box. A remedy I stumbled across was to add the -nosplash switch at the end of the executables call in the shortcut. After killing the splash screen from displaying, my load time on my good machine was down to 1-2 seconds before being prompted for a login screen. I come in an out of tools so much, that this is quite useful.

To do this, right-click on the shortcut in the start menu for your tool like Business Intelligence Development Studio or SQL Management Studio and click Properties. In the target text box change the shortcut to point to the following for SQL Management Studio:

"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\SqlWb.exe" -nosplash

For Business Intellgience Managment Studio, the same logic applies:

"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe" -nosplash

Also, this works for the Visual Studio environment in general. I personally hop in and out of these tools all day long and this solved a lot of frustration.

Thursday, December 22, 2005

Slowly Changing Dimensions

Thomas Pagel BI Blog :: "One of the very nice enhancements of SQL Server 2005 Integration Services (SSIS) compared to DTS is the introduction of the wizard for slowly changing dimensions (SCD). It makes it easy to create dimension tables storing changing data and tracking these changes. There are some blogs about that, i.e. Jamie has a nice example for a package using the wizard? http://blogs.conchango.com/jamiethomson/archive/2005/06/06/1543.aspx"

Task Parameters

Task Parameters

OLEDB ?
Ado.net @param
ADO ?
ODBC ?

Thomas Pagel BI Blog :

Thomas Pagel BI Blog :: "So we?re getting closer and closer to RTM and we all hope that Microsoft will deliver a perfect product after such a long time of Betas (sorry, IDWs and CTPs). But you can be sure that this will not be a 100% finished product, just as Windows 2003 and other releases were not perfect on day one. I?m not one of guys telling you ?wait for Service Pack 1?, SQL 2005 is a too good product to spend more time without it. But I?m sure you have to expect some issues mostly related to performance.

One issue we got aware of is a performance flaw when you use NON EMPTY with ?non trivial? calculated members (well, this seams to be starting with already quite trivial calculations?). We had queries running for minutes and asked Microsoft why they take so long. They suggested exchanging the calculated member with the formula behind it. We had this with just a ParallelPeriod function we used in a calculated member. When we changed the query to use the base measure and put the ParallelPeriod in the query the performance was very good (some seconds for a quite complex MDX).

Remember that NON EMPTY is used very often, i.e. Reporting Service?s query designer uses it by default. So it?s quite likely that you get in touch with this issue.

It?s confirmed that this flaw will NOT be fixed in RTM.
And there are others I?m not aware of, yet?"

Thursday, December 15, 2005

Sequence number in Reporting Services

Want a running total like Excel's row numbering?


RunningValue(1, Sum, Nothing) gives you a sequence number

Wednesday, December 14, 2005

Visual Studio Magazine ? Build Client-Side Reports Easily

Visual Studio Magazine ? Build Client-Side Reports Easily

Office Business Scorecard Manager 2005

Office Business Scorecard Manager 2005: "SharePoint Lists as Data Sources in Business Scorecard Manager
posted Wednesday, December 07, 2005 1:42 PM by Patrick Husting
SharePoint runs on SQL, SQL supports ODBC so of course it makes sense to be able to use SharePoint lists as data sources in Business Scorecard Manager as soon as you have ramped up on the SharePoint schema.

Here's an example connection string:

Driver={SQL Server};Server=localhost;Database=STS_MACHINENAME_1;Trusted_Connection=yes;

Here's a sample query that does a count:

select count(*)
from userdata
inner join lists on lists.tp_id = userdata.tp_listid
and lists.tp_title = 'SOME_LIST_TITLE' where nvarchar3 = 'SOME_COLUMN_HEADER_1' and nvarchar2 = 'SOME_COLUMN_HEADER_2'

Here's one that does a ratio:

declare @nApples decimal
declare @nOranges decimal
declare @ratio decimal

set @nApples = (
SELECT count(*)
FROM userdata
inner join lists on lists.tp_id = userdata.tp_listid
and lists.tp_title = 'Fruit'
and nvarchar2='FruitBasket'
and nvarchar1 <> 'UNRIPE'
and ((nvarchar3 = 'RED') or(nvarchar3='REDISH')))

set @nOranges = (
SELECT count(*)
FROM userdata
inner join lists on lists.tp_id = userdata.tp_listid
and lists.tp_title = 'Fruit'
and nvarchar2='FruitBasket'
and nvarchar1 <> 'UNRIPE'
and ((nvarchar3 = 'ORANGE') or(nvarchar3= 'ORANGEISH')))
"

Office Business Scorecard Manager 2005 : BSM05 Sample Project Plan

Office Business Scorecard Manager 2005 : BSM05 Sample Project Plan

64 Advantage

64 Advantage

Here's training for the future of 64-bit computing.

Visual Studio Magazine ? Build Client-Side Reports Easily

Visual Studio Magazine ? Build Client-Side Reports Easily

PromptSQL: SQL Intellisense for MS Query Analyzer, VS.NET 2003, Management Studio and VS 2005

Autocomplete for SQL

Friday, December 09, 2005

daclark's WebLog

daclark's WebLog: "Comparing machines in SMS
Here's a query for comparing Services on two machines. Just Clone the 'Compare software inventory on two computers' report and replace the SQL with below.

select (case when inv1.Name0 is not null then @name1 else @name2 end) as Netbios_Name0,
(case when inv1.Name0 is not null then inv1.DisplayName0 else inv2.DisplayName0 end) as DisplayName0,
(case when inv1.Name0 is not null then inv1.Name0 else inv2.Name0 end) as Name0,
(case when inv1.Name0 is not null then inv1.StartMode0 else inv2.StartMode0 end) as StartMode0,
(case when inv1.Name0 is not null then inv1.StartName0 else inv2.StartName0 end) as StartName0

from ( select s.ResourceID, s.DisplayName0, s.Name0, s.PathName0, s.StartMode0, s.StartName0
from v_GS_Service s join v_R_System sys on s.ResourceID=sys.ResourceID where sys.Netbios_Name0 = @name1 ) as inv1

full outer join ( select s.ResourceID, s.DisplayName0, s.Name0, s.PathName0, s.StartMode0, s.StartName0
from v_GS_Service s join v_R_System sys on s.ResourceID=sys.ResourceID where sys.Netbios_Name0 = @name2 ) as inv2

on inv1.Name0=inv2.Name0 and inv1.StartMode0=inv2.StartMode0
where (inv1.Name0 is NULL) or (inv2.Name0 is NULL) order by DisplayName0, Name0, Netbios_Name0


Here's a query for comparing AddR"

Friday, December 02, 2005

Creating Outlook Add-ins with Visual Studio 2005 Tools for Office

Creating add ins for Office with new tools.

calculated sum - MSDN

calculated sum - MSDN: "Not sure if this solution will work for you, but you can add a Calculated Field to the Data Set, say: 'FilteredQty', defined as (assuming Quantity is an integer):

CInt(iif(Fields!Country.Value = 'USA', Fields!Quantity.Value, 0))

Then in your report you can use this expression:

Sum(Fields!FilteredQty.Value), wich should return 4 rather than 10

To make it dynamic, 'USA' can be replaced by a report parameter."

Thursday, December 01, 2005

Download details: Microsoft KPIUtil.exe tool for Microsoft Office Business Scorecard Manager 2005

Download details: Microsoft KPIUtil.exe tool for Microsoft Office Business Scorecard Manager 2005: "Microsoft KPIUtil.exe tool for Microsoft Office Business Scorecard Manager 2005
Download files belowQuick InfoVersion:1.0
Date Published:11/28/2005
Language:English
Download Size:38 KB - 216 KB*
*Download size depends on selected download components. "

Tuesday, November 29, 2005

Empty Address Lines - MSDN

Empty Address Lines - MSDN: "I have not tried this but you can try using a formula for the LINE HEIGHT property of the the address lines - Under Properties/Format

=iif(Fields!AddressLine2.Value= '','0pt','9pt')

This hopeful will set it's line height to 0 if its empty OR 9pts if not."

Monday, November 21, 2005

DCOM Configuration Utility Introduction

Link

Helpful for troubleshooting permission issues when registering COM+ components.

Wednesday, November 16, 2005

Bob's SQL Reporting Services Blog

Link
How to create an inline bar chart

Here's a neat trick a co-worker and I discovered this afternoon for creating an inline bar chart (an inline data visualization in a table or other data region).

1. Add an embedded image to your report that will serve as the "bar" (a simple horizontal gradient usually looks nice)

2. Add a column to your table, and place an Image report item in the detail row cell.

3. Select the embedded image from step 1 as the source for the Image report item.

4. Set the padding on the Image report item to adjust the size and position of the bar within the cell

5. [Here's the kicker] Create an expression for the right (or left) padding that divides a field value by some maximum value, clamps it to a given range if necessary using Math.Min/Max, and then multiplies by the total size of the bar.

Example: image1.Padding.Right=((1.0-(Math.Min(Math.Max(Fields!TotalSales.Value,0),100000)/100000))*72) & "pt"">Bob's SQL Reporting Services Blog: "How to create an inline bar chart

Here's a neat trick a co-worker and I discovered this afternoon for creating an inline bar chart (an inline data visualization in a table or other data region).

1. Add an embedded image to your report that will serve as the 'bar' (a simple horizontal gradient usually looks nice)

2. Add a column to your table, and place an Image report item in the detail row cell.

3. Select the embedded image from step 1 as the source for the Image report item.

4. Set the padding on the Image report item to adjust the size and position of the bar within the cell

5. [Here's the kicker] Create an expression for the right (or left) padding that divides a field value by some maximum value, clamps it to a given range if necessary using Math.Min/Max, and then multiplies by the total size of the bar.

Example: image1.Padding.Right=((1.0-(Math.Min(Math.Max(Fields!TotalSales.Value,0),100000)/100000))*72) & 'pt'"

Friday, November 11, 2005

Production Debugging for .NET Framework Applications

Production Debugging for .NET Framework Applications

Debugging Memory problems

Writing High-Performance Managed Applications : A Primer

.NET General

Writing High-Performance Managed Applications : A Primer


Gregor Noriskin
Microsoft CLR Performance Team

June 2003

Applies to:
Microsoft� .NET Framework

Summary: Learn about the .NET Framework's Common Language Runtime from a performance perspective. Learn how to identify managed code performance best practices and how to measure the performance of your managed application. (19 printed pages)

Web Test Tools

Web Site Test Tools and Site Management Tools
More than 290 tools listed in 12 categories

Building managed code using Common Language Runtime (CLR) Integration in SQL Server 2005 - The Code Project - C

using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;

public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void sp_GetEmployeeInfo()
{
SqlConnection connection =
new SqlConnection("context connection=true");
try
{
connection.Open();
SqlCommand sqlCommand =
new SqlCommand("SELECT EMPID,EMAIL FROM EMPLOYEE",
connection);
SqlDataReader sqlReader = sqlCommand.ExecuteReader();
SqlContext.Pipe.Send(sqlReader);
}
catch(Exception ex)
{
throw ex;
}
finally
{
if (connection != null)
connection.Close();
}

}
};

Visual C - Linq

101 LinqSamples

MSDN .NET Framework Developer Center: The LINQ Project

MSDN .NET Framework Developer Center: The LINQ Project: "The LINQ Project

The LINQ Project is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities."

GotDotNet User Sample: Building managed code using Common Language Runtime (CLR) Integration in SQL Server 2005

GotDotNet User Sample: Building managed code using Common Language Runtime (CLR) Integration in SQL Server 2005

Michael Rys : The light at the end of the tunnel is bright sunshine!

Michael Rys : The light at the end of the tunnel is bright sunshine!: "Enterprise Readiness:

* Multi-platform support: X32, X64 (WoW and native), IA64 Native, Numa Aware
* Multi-instance support with 7.0, 2000 and of course 2005
* Mobile, Tablet, Express (free), Workgroup, Standard and Enterprise ? If we don?t have it, you don?t need it?
* Table Partitioning ? partition by key easily ? drop a partition and add a new one, no need to delete millions of rows
* Upgrade Advisor ? (scan your existing 7.0 and 2000 servers and SP?s and get ready for an easy upgrade)
* SQL Server Management Studio ? built in the VS IDE and able to manage all services from one UI
* Enhanced Full Text Search ? Integrated backup/restore, thesaurus support, 100x faster for index build
* ONLINE: index build, page/file restore, concurrent log and db backup, memory add, fast recovery (online during rollback) ? all operations on-line?
* Column level encryption
* Off-by-default ? reduced attack space
* Code signing
* Vastly improved diagnostics ? Watson dumps allow us to fix 80% of customer issues ? NO CUSTOMER REPRO -, Dedicated admin thread, Dynamic Management"

Don Kiely's Technical Blatherings : SQL Server 2005: Foundation of Service-Oriented Data Architecture

Link

The original paper is by Microsoft?s David Campbell, ?Service Oriented Database Architecture: App Server-Lite?," which he presented at the 2005 ACM SIGMOD International Conference on Management of Data and is a part of its Proceedings. The basic idea of the paper is that a database engine is a logical place to implement features that allow it to function as a full-fledge service program in an application based on SOA. There are three major functions that a service program has to implement to fulfill such a role:

* It has to support Web services (and other types of endpoints, but this is the most important and most common) so that it can process request and response messages with other components in the system.
* It needs the ability to process service requests, meaning that it has to be able to read and parse messages, which are most commonly XML. It also has to participate in complex dialogs and conversations, in the terminology of SOA.
* It has to host service logic, the ability to implement complex business logic.

This isn?t an exhaustive list by any means, of course, but provides the foundation for a database in an SOA environment, what Microsoft is calling a Service-Oriented Data Architecture. It turns out that this is a fascinating way to look at databases in distributed applications, and I had a good time exploring the possibilities in my whitepaper. It finally made sense why Microsoft put so much effort into implementing some of the features in SQL Server 2005, such as:

* Native Web Service Access. Combined with Windows Server 2003?s kernel mode http.sys driver that eliminates the need for IIS as a middleperson, SQL Server has a very efficient way to receive and send SOA messages.
* Service Broker, the new transactional middleware that supports massively scalable services. This is the best example of the synergy of implementing such a feature in SQL Server itself?and the database engine?rather than merely integrating with other technologies such as Microsoft?s own MSMQ. After all, messages are ?interesting data.?
* Notification Services, the SQL Server name for what other platforms call database change notifications. Unlike client-server and n-tier applications that use a highly centralized data store, SOA applications are likely to have data all over the place, some of which is cached from various sources. Those caches need an efficient way of knowing when to refresh themselves, and notifications provide that way. Notification Services isn?t just for sending messages to a PDA anymore, and I?m intrigued by the possibilities.
* SQLCLR, the linchpin that makes it all possible. To be a viable service program requires complex business logic, and T-SQL, extended stored procedures, and OLE automation (COM) just don?t cut the mustard. Hosting the .NET Common Language Runtime in SQL Server is simply a stroke of genius.

Tuesday, November 08, 2005

Sara Ford's WebLog : How to recursively copy files using the Task in MSBuild

Sara Ford's WebLog : How to recursively copy files using the Task in MSBuild: "posted on Tuesday, November 08, 2005 10:21 AM by saraford
How to recursively copy files using the Task in MSBuild

From the MSBuild Team Blog...

Have you ever run into a situation where you had to recursively copy files from one folder into another as a part of your build process? We certainly have run into it a few times, and I thought I'd share with you a neat trick that involves the use of metadata and the Copy task.

Before you can copy a set of files, you need to be able to recursively add those files to an item list. Here's how you do that when declaring items.





The ** wildcard is used in item includes to indicate recursive includes.

So, once you have an item declared as such, you can rely on a piece of standard meta-data that goes with all items (i.e. RecursiveDir) to accomplish your recursive copy. The RecursiveDir metadata when used will return the evaluated value of the ** metadata for each item - and you can use that value to preserve the folder structure for each file when performing the copy. Here's how you invoke the task using this piece of metadata to copy recursively.

Differences between Visual Studio 2005 Standard and Professional Editions

Link



With the whoops I mentioned here comes the discussion of exactly what is the difference between the two version of the Visual Studio 2005 (standard and professional). First of all, here are the differences that Microsoft has made public in their feature chart. Before you spent too much time with the scorecard, let me summarize the major differences:

Standard:

* User Experience: Streamlined
* Deployment Tools: Click Once
* Extensibility: Consume Extensions
* Reporting: SQL Server Reporting Services
* Debugging: Local
* 64-bit CPU support, Server Explorer, SQL Server 2005 integration: No

Professional:

* User Experience: Full
* Deployment Tools: Yes
* Extensibility: Full
* Reporting: SQL Server Reporting Services and Crystal Reports
* Debugging: Local and remote
* 64-bit CPU support, Server Explorer, SQL Server 2005 integration: Yes

Most of the differences are fairly straightforward. That leaves the question between deployment tools, extensibility, and "user experience". Here is what I know on the first two.

“Consume Extensions“ means the you can use an existing Visual Studio Add-in. All, on that note, means there is IDE support for creating new Add-ins. Fair enough.

“Deployment, One-Click” means there is a mechanism to deploy a product through the IDE, but not create setup projects that produce a .MSI file.

So, what about user experience? There has been some talk here, here, and here about what it means, but it all is fairly vague. I do not have a clear-cut answer but I have a theory:

I was at a presentation earlier this year where the presenter was typing code. It looked like the presenter was using Resharper at a user group presentation! I was told that was not the case, but an extra set of new features built into the IDE. Maybe the folks at Microsoft sent the Resharper folks a nice check and incorporated that technology into the Professional Edition (and above)! That would mean

For standard, User Experience: Streamlined == Intellisense

For professional, User Experienced: Full == Intellisense + Resharper-like functionality

Again, just my theory. But thanks are in order to Geoff Snowman who provided me with a lot of this information and continues to check out our future “experiences“.

One thing is for certain, the Standard edition of Visual Studio 2005 is no wimp. In the past, Standard editions were basically a compiler + a text editor slightly better than notepad. Such is not the case. For learning, hobbyists, or those needing a bit more than the Express versions offer, it appears to be sized just right.

However, for those of us who continue to make a living in the .NET world, its the Professional version and above.

Edit: Just received this note indirectly from Prashant Sridharan, the Visual Studio Project Manager:

Standard is basically the union of the Express SKUs with mobile and remote data support added. It doesn't have support for remote debugging or server-side development, it doesn't have SQLCLR support, and it doesn't have the deeper data tools in Pro.

Friday, November 04, 2005

Office Developer Center: Redesigning an Excel VBA Solution for .NET Using Visual Studio 2005 Tools for Office

Link

Summary: Learn about redesigning an Excel VBA solution to take full advantage of Visual Studio 2005 Tools for Office and the .NET Framework. This article looks at the rearchitecture of the Trey Research Internet Information Services (IIS) Log Analyzer solution. (22 printed pages)