Sunday, December 17, 2006

Swivel - Youtube for Data?

Swivel Co-founders Dmitry Dimov and Brian Mulloy start off by describing their company as “YouTube for Data.” That’s a good start for someone trying to understand it, because the site allows users to upload data - any data - and display it to other users visually. The number of page views your website generates. Or a stock price over time. Weather data. Commodity prices. The number of Bald Eagles in Washington state. Whatever. Uploaded data can be rated, commented and bookmared by other users, helping to sort the interesting (and accurate) wheat from the chaff. And graphs of data can be embedded into websites. So it is in fact a bit like a YouTube for Data.

-- from TechCrunch

Friday, December 01, 2006

Best Open Source Project?

http://www.grupthink.com/topic/821

What is the absolute best that the open source model has to offer? The term is usually applied to software specifically, but I'd like to use it here to refer to any community developed project whose collaborative efforts are freely available to all to use and/or modify in any not-for-profit manner; This could include content, health, politics, religion, media, etc..

Guy Kawasaki interviewing Woz

http://www.tuaw.com/2006/11/29/guy-kawasaki-interviewing-woz/

Friday, November 03, 2006

Wednesday, October 25, 2006

Environment Variables - Path parser

Here's a quick way to display a Windows system search path. The %PATH% environment variable contains a list of folders. When a command is issued at the CMD prompt, the operating system will first look for an executable file in the current folder, if not found it will scan %PATH% to find it.
This script iterates over the path statement, splitting out the individual folders and presents each on a single line.

Use the PATH command to display or change the list of folders stored in the %PATH% environment variable.

To use this, create a new text document and paste the following code.  Save the file as viewpath.cmd and presto!, you can list the contents of your system by doubl-clicking the file:

::viewpath.cmd
@echo off
::echo the path one line at a time
for %%G in ("%path:;=" "%") do @echo %%G
pause

Tuesday, October 03, 2006

Microsoft Product Support throws a non-friendly exception

http://support.microsoft.com/oas/default.aspx?&c1=505&gprid=10274&f=25&MSPPError=-2147197912

Server Error in '/OAS' Application.
--------------------------------------------------------------------------------

Unhandled Execution Error
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException:

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[COMException (0x8004922f)]
Microsoft.Passport.RPS.Native.IRPSHttpAuth.AuthenticateRawHttp(String siteName, String httpVerb, String path, String QS, String httpVersion, Boolean bHTTPs, String httpHeaders, String httpBody, Object pAuthResultsBag) +0
Microsoft.Passport.RPS.RPSHttpAuth.Authenticate(String siteName, HttpRequest request, RPSPropBag propBag) +478
Microsoft.MSCOM.MemberServices.Passport.PassportTicket.GetTicket(HttpRequest request, String site, TicketState& ticketState, String& responseHeaders) +100

[PassportException: The PassportTicket.GetTicket() failed to initialize Passport Ticket. [(Error=0x8004922F) Passport 'f' error (f=25, MSPPError=0x80045C28) is encountered in the query string. Check Application event log for details.]]
Microsoft.MSCOM.MemberServices.Passport.PassportTicket.GetTicket(HttpRequest request, String site, TicketState& ticketState, String& responseHeaders) +407
Microsoft.MSCOM.MemberServices.Passport.PassportTicket.GetTicket(HttpRequest request, TicketState& ticketState, String& responseHeaders) +62
Microsoft.MSCOM.MemberServices.Passport.PassportAuthenticationModule.AuthenticateRequestHandler(Object sender, EventArgs e) +219

[PassportAuthenticationModuleException: The PassportTicket.GetTicket() failed to initialize Passport Ticket. [(Error=0x8004922F) Passport 'f' error (f=25, MSPPError=0x80045C28) is encountered in the query string. Check Application event log for details.]]
Microsoft.MSCOM.MemberServices.Passport.PassportAuthenticationModule.AuthenticateRequestHandler(Object sender, EventArgs e) +1004
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42

Thursday, May 25, 2006

Key columns and dimension attributes

add key to hierarchy & create duplicate key attribute -

When you need to see the key of a dimension within an attribute or hierarchy, add a duplicate attribute for the key, and use this duplicate attribute rather than the existing key attribute.  This will increase aggregations and (supposedly) improve query performance.

Thursday, April 20, 2006

Symmetry Corporate Solutions: Performance Reporting Framework, PROOF

Symmetry Corporate Solutions: Performance Reporting Framework, PROOF: " It's about time someone packaged BI Best practices into an OLAP model generator like PROOF. Symmetry's long experience in BI applications shows, and makes it much easier and faster for non-experts to build and, more importantly, maintain sophisticated multidimensional business models.”

Nigel Pendse, Author
The OLAP Report and The OLAP Survey

PROOF is like having an expert BI developer permanently on staff. PROOF makes the hard part of developing performance management applications easy. By managing metrics in a central repository, it guarantees a single version of the truth and significantly reduces development time, redundant programming, and maintenance.”

Claudia Imhoff,
President and Founder
Intelligent Solutions"

Monday, April 17, 2006

Reporting Services with Relational Data and MDX

One common problem in reporting and BI solutions is how to incorporate data from both an OLAP cube and relational tables. The UDM in SQL 2005 attempts to solve this, however it really means you still need to build the information into your cubes and dimension attributes.

What if you don't want to or can't?

Reporting Services provides a Custom Code tab within the Report Properties page. You can access various VB.NET objects and system assemblies, and reference external assemblies. One of the internal assemblies is the Dictionary object.

Steps to lookup values from a reference table in SQL:

Drag a list onto the report.
Drag a textbox into the list, or a field from the relational dataset. Modify the textbox to contain =Code.setValue(Fields!KeyField.Value, Fields!ValueField.Value)

Create another list below. Drag another textbox into the list. Modify the textbox expression to hard-code the key for now. =Code.getValue("MyKey")

In the Code Properties window, try the following:

public dict as new System.Collections.Generics.Dictionary(Of System, System)

function setValue(value as object, value2 as object) as object
dict.Add(value,value2)
return value
end function

function getValue(value as object) as object
return dict(value)
end function

This is untested code and needs further work, but it should provide an idea of how to accomplish the task.

If you have properly bound a table to the first list control, you should be able to lookup results in the second table.

This can be applied in many scenarios, including adding relational reference data to MDX results, and creating a relationship between two separate datasets.

I'd be interested to know if anyone uses this. It seems to have many different applications. One could possibly involve showing two sets of information, for things like variances or budget vs. actual data. If a value doesn't exist in the dictionary, the original field could be returned. If it does exist, the adjustment could be returned.

Project Management 101: Creating the Right Ripple

Simple Talk » Blog Archive » Project Management 101: "Joint Application Development

Essentially, I implemented a Joint Application Development (JAD) methodology. Everyone, from testers to junior developers and interns, participated in every meeting with the client. There was no endless communication string; everyone got their knowledge first hand. The entire development team, the client and anyone who had discrete business knowledge of the problem space, assembled in a room. The goal of these meetings was to:

* Define the problem/s that the solution is expected to solve
* Define each process –think use case – in the system in exact detail
* Define screen layouts
* Walk through each process with screen shots, roll play if necessary – people will often seeing missing steps when this is done repeatedly. If a new step is added start over again
* Define a complete and specific requirements document that the solution will be based on
* Get the client and the whole team to sign-off on the requirements document

By walking through each process and clarifying every detail with the client, and the entire team, we effectively killed scope creep. The client was confident that we understood their needs. In place of vague statements such as “we need a page to create customers”, we had we had sign-off on a clear, concise requirements document of the following form:

The system will maintain a list of customers. A customer record with be defined as:
# Customer ID – System Generated
# First Name
# Last Name
# Full Address (2 address fields, city state and postal code)
# Phone Number
# Email address

Each field with the exception of Customer ID will be fully editable. A drop-down list will be used to select a state. Validations include:
# First Name – required
# Last Name – required
# Postal Code- Required, must be 5 or 9 numbers only
# Phone Number – 9 numbers only
# Email Address – valid format, no anonymous accounts (Yahoo, Hotmail, GMail etc)

You will reach the customer edit page thought a search engine that allows you to search for customers on any combination of the following fields.
# First Name
# Last Name
# Postal Code

…And so on…

Sunday, April 16, 2006

Adding Relational Lookups to Reporting Services

Have not tested this in a production scenario yet, however this looks to be one way to use the results of 1 data set as a lookup for another data set.

1. Create a Reporting Services Report with 2 lists - 1 for lookups & 1 for results.
2. In the lookup list, add a textbox with this code. =Code.setValue(Fields!FirstName.Value, Fields!LastName.Value)
3. In the results list, add a textbox with this code = Code.getValue(Fields!FirstName.Value)

4. Add code:
public openWith as new System.Collections.Generic.Dictionary(Of String, String)

Function setValue(value as object, value2 as object) as object
openWith.Add(value, value2)
return 0
end function

Function getValue(value as object) as object
return openWith(value)
end function


The result should be that you can now lookup unique keys in the dictionary. This would be useful for scenarios involving relational data and MDX results. It could also be used for replacing system application values with their 'friendly-name' reporting equivalents.

Tuesday, April 11, 2006

MCITP: Business Intelligence Developer

MCITP: Business Intelligence Developer: "How to Earn Your MCITP: Business Intelligence Developer

MCITP candidates must first complete the requirements for the MCTS: SQL Server 2005 certification (one exam). After achieving this Technology Specialist certification, candidates earn their MCITP: Business Intelligence Developer by passing two required exams. The following table provides a complete list of exams and related training resources. For exam dates and specific areas of focus, see individual Exam Preparation Guides as the exams become available."

Thursday, March 30, 2006

Using Expression Variables in SSIS

Here's a way to use Expression Variables in SQL Server Integration Services to dynamically create a connection string:

1. Create a new variable "SS_DST_Server"
2. Create a new variable "SS_DST_Database"
3. Create a new variable "SS_DST_Conn"
4. Set 'Use as Expression' property on SS_DST_Conn to true.
5. Under the expression, type in the connection string and append " + @[User::SS_DST_SERVER] + ";" where the server goes, and " + @[User::SS_DST_Database] + ";" where the database goes. Note it should start with =" and end with "

for example:
"Provider=SQLNCLI;Server=" + @[User::SS_DST_SERVER] +";Database=" + @[User::SS_DST_DATABASE] + ";UID=sa;PWD=asdasd;"

Now, instead of having to configure the connection string in a config file, you can store it in the package, and pass in the database and server name as a parameter.

There are other useful things you can do with this procedure.

Create a variable called "DATE_FILTER" and an expression variable "SQL_LOAD" with the expression "Select * from MyTable where mydate = '" + @[User::DATE_FILTER] + "'"

Dynamic SQL in your SSIS package.

Note variables are case-sensitive, so upper case is good practice.

Here's some sample connection strings...

www.connectionstrings.com

Monday, March 27, 2006

Swapping partitions in SSAS 2005 - MSDN Forums

Swapping partitions in SSAS 2005 - MSDN Forums: "You should be able to use the new database synchronization feature of AS 2005:

http://msdn2.microsoft.com/en-us/library/ms174928(SQL.90).aspx

>>
Synchronizing Analysis Services Databases

The Synchronize Database Wizard synchronizes two Microsoft SQL Server 2005 Analysis Services (SSAS) databases by copying the data and metadata from a database on a source server to a database on a destination server. You can also use this wizard to deploy a database from a staging server onto a production server, or to synchronize a database on a production server with the changes made to the data and metadata in a database on a staging server.

While the wizard synchronizes the data between the two databases, users can continue to query the destination database. After synchronization finishes,, Analysis Services automatically switches the users to the newly copied data and metadata, and drops the old data from the destination database."

Friday, March 24, 2006

Integration Services - Powerful and painful

In my opinion, one of the more idiotic things about SQL Server 2005 is Integration Services. Not the product itself, which is actually quite powerful, and since I would not touch DTS with a ten-foot pole picking it up was relatively easy for me. It is fun to work with, didn't crash on me a whole lot (unlike Visual Studio 2005 which is like watching Houdini, since it disappears randomly) and was fairly intuitive once I got the basics down.

What stinks is the methods of execution of these packages in a production environment.

Two main problems for me are package security and remote execution.

1. Password Encryption: What's with all of the options for package security? User Keys, Certificates, Package Passwords. How about abstracting this stuff right out of the package itself and into another tool, like a code obfuscator. It's wonderful to have, but sometimes, like a door, you don't always need a lock on it. Why do I have to type in a package password for EVERY PACKAGE everytime I hit Build? That's like typing in a password for every file when I type DIR in DOS. Also, what's with passing the /DECRYPT password in every time I have to run from a command-line? Can't we stick this in an encrypted config file somewhere?

2. Remote Execution - This is where I got burned. SQL Agent is the recommended means of executing packages on the SQL Server from a remote PC. So how do you pass in passwords and other parameters to the command line? I ended up creating two command-line tasks with sqlcmd, one to edit the job task step sp_update_job_step and another to run the job sp_start_job. Of course, when you run sp_start_job it immediately comes back. This could cause a problem for jobs that have to wait for others to run before starting, so you need to grab another custom script that checks every 10 seconds to see if it's running.

Other things that bug me about SSIS - not knocking the developers who put tons of effort into this - but just stuff that bugs me.

- The 5-10 second delay executing packages from command line.
- Clicking the play button in Visual Studio doesn't play the package selected. It could do many things, depending on what mood it's in.
- The script editor. Sorta reminds me of Excel VBA but without the ability to tab back and forth between the package and the script.
- Passing parameters from a command line. %8 %9 %10 %11 just doesn't cut it for me.
- No encrypted parameters in config files.

Deployment question: SQLDB - SSIS on different boxes with SQL Agent for scheduling - MSDN Forums: "SQL Agent is my preferred scheduler, and maybe yours too, but many organisations have their own standards. Many houses use IBM/Tivoli for example, and SQLAgent is not required for SSIS. If you would prefer to use it, then yes you are stuck. I think buyng SQL Server for SQLAgent is an overkill, but if you look at that SQL Instance in the same way as you look at MSDE, then it is no big deal. There are plenty of proucts our there that install DB engines. I saw a report that said Informix (I think that was the one) was one of the most widely deployed DBs, and that is because CA shoved it under the covers of ArcServe backup, probably for the scheduling :) "

Yes, my client does prefer to use a Unix-based scheduler, and apparently this means we're stuck using SQL Agent, called from another scheduler.

Thursday, March 16, 2006

Part 1: Automating the XML Data Mapping Process in Excel 2003

Part 1: Automating the XML Data Mapping Process in Excel 2003: "Conclusion
The sample code in this article is generic and can be used for most scenarios requiring support of flexible XML mapping with little or no modification. Currently we use this code in a project called 'The Rhythm of the Business 2.0,' which supports a flexible and constantly changing Excel template used by more than 1,000 Microsoft employees to assess the entire company's performance on a monthly basis. In our project we also needed to harvest the unaltered data-point descriptions for use in a reporting application. We did this by adding meta tags, using square brackets for marking up the description positions. (This article does not include the code that retrieves the description values.) We encountered another reporting issue related to the Excel formulas. In a future article, we will describe how to take advantage of the grid structure to programmatically extract and store Excel formulas in a Microsoft SQL Server database and replicate the UI-side calculations using dynamic SQL."

Saturday, March 04, 2006

dotProject Demo :: dotproject - Open Source Software :: Open Source Project and Task Management Software

dotProject Demo :: dotproject - Open Source Software :: Open Source Project and Task Management Software: "Thank you for your interest in our web-based project management tool.

dotProject is built using free open-source applications and is produced and maintained by a small, but dedicated group of volunteers. dotProject is programmed in PHP, and utilises MySQL for a backend database (although other databases such as Postgres could also be used).
Our recommended server platform includes Apache 1.3.27, PHP 4.2+, and MySQL. In the spirit of free, peer-reviewed, open source application development, we would also encourage you to use an operating system such as Linux, FreeBSD, or OpenBSD. However, additional operating systems such as Windows, Mac, and other flavours of *nix are also supported. "

Tuesday, February 07, 2006

71-528 Study Group Transcript - 2005-11-02

71-528 Study Group Transcript - 2005-11-02

It's law to include on goverment sites things like ALT tags etc for accessibility I do believe

AndrewCoates says:

Certainly is in the US

AndrewCoates says:

There's an accessability checker in the IDE that tells you whether you've complied

AndrewCoates says:

the rules are different in the US from Europe

michaelmileos says:

thats cool

AndrewCoates says:

In the US it's called something like "Section 508"

tathamoddie says:

localization: http://www.dotnetjunkies.com/WebLog/anoras/archive/2005/02/13/54271.aspx

tathamoddie says:

Globalization is a process of identifying all the parts of your application that need to be different for respective languages and separate them from the core application.

tathamoddie says:

Localization

tathamoddie says:

Localization is process of creating and configuring your application for a specific language.

Study Group for 71-528. 31 October 2005

Study Group for 71-528. 31 October 2005

Deadeye (~dead_eye_@218.214.2.XXX) has joined the conversation.

mikemileos says:

hi dan

Deadeye says:

hey

Deadeye says:

what have i missed?

mikemileos says:

we were just wrapping it up

Deadeye says:

:(

mikemileos grins

mikemileos says:

nah, we just started

Sunday, February 05, 2006

I need more exams?!?

Vishal Joshi's Tangent: "MCDBA Upgrade to MCITP Database Administrator
In the new family to become MCITP Database Administrator it is required to achieve MCTS SQL Server 2005 Credential by taking Exam 70-431 and then by passing two PRO exams 70-443 and 70-444.
For folks who are already MCDBA this three exam path becomes two exam path...
An MCDBA will have to achieve MCTS SQL Server 2005 credential by passing Exam 70-431 and then can take & pass an upgrade exam 70-447... So basically instead of passing the two exam 70-443 and 70-444, MCDBAs will have to pass just one exam.

This was a quick snapshot of SQL Server 2005 credential upgrade... Now lets talk about Visual Studio 2005 credential upgrades..."

Configuration API Improvements in ASP.NET 2.0

Configuration API Improvements in ASP.NET 2.0: " AQA------------ FnvpHa1iy4Oww= "

Encrypting connection strings in the web.config

Exam 70-536 - Wikibooks, collection of open-content textbooks

Exam 70-536 - Wikibooks, collection of open-content textbooks

Prepare for the 70-536 Certification Exam: Microsoft .NET Framework 2.0 - Application Development Foundation

Prepare for the 70-536 Certification Exam: Microsoft .NET Framework 2.0 - Application Development Foundation

What you need to know to pass the 70-536 certification exam:

Visit the following links for resources to their individual topics and study them completely and thoroughly until you're confident you've mastered them! The best way to accomplish this is by actually building Visual Studio .Net 2005 solutions and projects and incorporating the topics listed below into them accordingly. There's no better way to study for an exam than by actually doing it in real-world scenarios. You can get Visual Studio .Net 2005 by clicking on this link.

Andrew Coates ::: MSFT : Studying for another Beta Exam (71-536)

Andrew Coates ::: MSFT : Studying for another Beta Exam (71-536)

Looks like Mitch is studying for 71–536 as well. I’m signed up to do it AFTER the Ready Launch – on Dec 20. For 71–528, we had a study group chat. Mitch has taken a different tack, doing individual blog posts on each of the skills being measured as he looks at them.

So far he’s done:

Value types and nullable types
Reference types
Attributes
Generic types
Exception classes
Boxing and Unboxing
Forwarding types? and
ArrayList class
This looks like a great approach. Leave comments on Mitch’s individual posts if you’ve got stuff to add and get ready to get certified!

Eric Gunnerson's C# Compendium : Nullable types in C#

Eric Gunnerson's C# Compendium : Nullable types in C#

Right off the bat, on the first thing I study in .NET 2.0, there is something that looks fundamentally wrong to me - nullable types and boolean.

Skills measured by exam 70-551
Section 1
Developing applications that use system types and collections
Manage data in a .NET Framework application by using .NET Framework 2.0 system types. (Refer System namespace)

Value types
Nullable type

Syntax:
bool? nullBool = null;

- Nullable, hasvalue property,boolean now has 3 values! return (int?) cmd.ExecuteScalar(); Null coalescing operator (x ?? Y) - default x to Y if null

G. Shaw said:
I hope you and the other language designers know what you are doing for the long run. The current C# language is thing of beauty with very few warts. By adding the Big Four plus this new feature I worried that you are starting to move the language from a simpiler easier to use language more into the realm of C++ hell. I've worked with C# for years now (since beta 1) and find the language has been perfect. The language is so explicity about what it is doing, adding new funky operators makes the language more confusing as it isn't immediately obvious what is being down.

Please do a lot of usability testing with the syntax of this feature. I can see a need but I really think it should be done as a keyword and not an operato. For example,

nullable int a;
nullable int b;
nullable int c = a+ b;

Is immediately obvious what we are doing. The int? syntax is alien and is painful to read/understand. Since this is a feature that isn't going to be used all the time people are going to have look it up to understand how it works when the encounter it.

How can a bool have three values! It can't, that's why you need a new type: nullable bool. In fact I'd keep it as Nullable but provide operator overloading so that the operators work correctly to return null types.


What's next... Reference types and attributes... Hmm. Only 450 or so items to cover in 2 weeks.

January 23, 2006 - MSDN Flash - Training Resources

MSDN Flash

New developer and database exams coming fast and furious

New developer and database exams coming fast and furious

More codes - The rest of them

MSBLOG

What's the monetary value of Microsoft certification?

What's the monetary value of Microsoft certification?: "It's pretty clear that the MSDN2 material was consulted when the Exam 70-526 objective were drafted. For example, the objective �Use the Windows Forms Designer to create default event handlers.� maps directly to the topic How to: Create Default Event Handlers on the Windows Forms Designer. Need a resource for the exam objective �Connect multiple events to a single event handler�? Check out the MSDN2 topic How to: Connect Multiple Events to a Single Event Handler in Windows Forms. Objective 'Set page details for printing by using the PageSetupDialog component.' maps to PageSetupDialog Component (Windows Forms). There's not a one-to-one mapping of all objectives, but there are a lot of direct mappings. It's just hard not to learn when you use this approach, and it makes it easier to find related information in the future because it drills the content structure into your head."

What's the monetary value of Microsoft certification?

What's the monetary value of Microsoft certification?: "The technique I use is this: I create an Excel spreadsheet with all the objectives listed, and I create a column listing resources (usually hyperlinks) for each objective. For Exam 70-526, I've found this to be easy. Better yet, in the process of searching for resources, I'm definitely getting a much better grasp at the wealth of material and organization of material posted on MSDN2 (http://msdn2.microsoft.com). It's really impressive - kudos to the VS 2005 product teams and documentation team. "

What did you learn today? - MS Upgrade Study Guides

What did you learn today?

Lots of great study guides here.

Upgrade Microsoft Certifications + Promo Codes

Microsoft News

Until March 14, there are some promo codes for these.

MCAD Exam 71-551 (Promo code UPG551) MCAD Web
MCAD Exam 71-552 (promo code 552BTA) MCAD Windows
MCSD Exam 71-553 (promo code BTA553) MCSD #1/2
MCSD Exam 71-554 (promo code UPG554) MCSD #2/2

You also get 1 free exam per pass. So if you pass 3 exams you'll get $375USD worth of vouchers, on top of the $375USD you already saved, + you won't write all 7 of the new exams.

Something tells me these won't be easy....

Sunday, January 29, 2006

Expressions in SSIS

So they are rather convoluted in my opinion, but very powerful.

Expressions in SSIS. The key to making dynamic packages is to use variables and expressions. Go to the variables window and create a new string variable, say DATE. (Use upper case for variables - they're case sensitive and this will save you headaches.) Then create another variable, let's call it SQL_QUERY. Make sure they're both string. Set the default date to 20050112 and the default sql to select * from mytable where date = '20051112'.

Here's where it gets interesting.

Go to the Package tab, then browse to the variables collection. Click on the SQL_QUERY variable and view the properties. Turn on Use as Expression. I use notepad to type in the expression, since they didn't put any ... window in there yet. (SP1??) And the expression is...

"Select * from mytable where date = '" + @[User::DATE] + '"

Your query should show up in the variable value property with the correct date at the end.

Voila. This should remove a bunch of useless script from your code. (See Project REAL where they were passing around the XML/A variable to the Analysis Services command task)

I can think of a few other places this would work (connection strings in variables maybe?).

Next goal is to try and figure out why it takes 5-15 seconds just to load a package from DTRUN.

Generating Test Data with Integration Services

Generating Test Data with Integration Services

The holy grail of SQL 2005.

How to measure the rate at which rows pass through a particular data flow task in a SQL Server 2005 Integration Services (SSIS) package

How to measure the rate at which rows pass through a particular data flow task in a SQL Server 2005 Integration Services (SSIS) package

SQL Server 2005 articles

SQL Server 2005 articles: "Generating Test Data" + Everything else you ever wanted to know about SSIS

Sunday, January 22, 2006

Presentation Zen: Gates, Jobs, & the Zen aesthetic

Presentation Zen: Gates, Jobs, & the Zen aesthetic

Presentation Zen is a very clean web site with some great links on powerpoint presentations.

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

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.