Tuesday, February 27, 2007

Microsoft Live Clipboard

A simple concept and relatively new idea... cut-paste directly into a web page.

http://rayozzie.spaces.live.com/editorial/rayozzie/demo/liveclip/liveclipsample/clipboardexample.html

A few things to try:

  • Right-click -> copy on the orange icon next to one of the initial five contacts. Right-click > Paste on the bottom orange icon without contact data to paste the contact there.
  • Single left-click one of the orange icons so that its contact is highlighted. Type control-c or edit -> copy to copy the contact, and control-v or edit -> paste to paste it in one of the other two icons to replace their existing contacts.
  • Load the page in IE and Firefox side-by-side. Copy / Paste contacts between the two browsers.

miniajax.com - web 2.0 revisited

A showroom of nice looking simple downloadable DHTML and AJAX scripts

http://www.miniajax.com/

Why 260 characters is too long........................................................................................................................................................................................................

 

Are your .NET apps breaking?  Using Enterprise blocks?  See this post.

http://blogs.msdn.com/tomholl/archive/2007/02/04/enterprise-library-and-the-curse-of-max-path.aspx

Monday, February 19, 2007

IsNull != Coalesce

One of the lesser used Sql functions is Coalesce.  Coalesce replaces any given value with another given value if the first value is null.

IsNull does something similar, however there is a bit of differences.

  • IsNull performs a tad better.
  • IsNull will truncate values.
  • Coalesce looks cleaner in scripts. (if the developer knows what coalesce does)
  • Coalesce is more reliable because it doesn't truncate values.

One scenario for using Coalesce is to toggle between selecting all values and a single value in a query.

For example

WHERE COALESCE(@ProductID,ProductID) = ProductID

would select all products if @ProductID is null.

So what happens with this statement if the Product Name column is 50 characters and the @ProductName variable is 25?

WHERE IsNull(@ProductName, ProductName) = ProductName

If you have a product with 26 characters or more, it will not be returned using IsNull.

For multi-value parameters, one option is to use a split utility to parse comma-delimited parameters and use the following statement:

WHERE (@ProductIDs is null or ProductID in in (dbo.fn_utilsplit(@ProductIDs,'''))

Saturday, February 17, 2007

TaporRecipes < Main < WikiTADA

 

This page describes common or interesting sequences of actions, or recipes, for the TAPoR portal. They are organized according to the objective of the recipe. Recipes fall into the three categories of location and identification of ideas, themes or specific terms; analysis of textual devices or themes; or the construction of new entities or corpus. There are also a set of three tutorial recipes included to introduce three common and specific tasks using TAPoR Tools.

Source: TaporRecipes < Main < WikiTADA

 

What is TaPoR?

 

Text Analysis Developers Alliance.

 

If you're developing anything to do with words or text analysis, this is the place to go.

Thursday, February 15, 2007

Davide Mauri - SQL Server & .NET Specialist

 

SQL Scripts
Here you can find some SQL Scripts that I find useful in my everyday work and that may also be helpful to you. Enjoy!
Please note that for SQL Server 2005 scripts, all my objects are created in the sys2 schema. I use this schema to reference all my "system" objects.
If you want to do the same, you have to create the sys2 schema before. You can do it simply using the CREATE SCHEMA sys2 statements.

sys2.indexes
A UDF that shows all indexes present on a table. For any index shows of which column it's made.
Usage: SELECT * FROM sys2.indexes('<schema>.<table>')
Note: If you pass a NULL value as parameter, you'll get all the indexes in ALL tables.

sys2.indexes_size
A UDF that shows how much big your indexes are. For any index shows the size in kb and mb.
Usage: SELECT * FROM sys2.indexes_size('<schema>.<table>')
Note: If you pass a NULL value as parameter, you'll get all the indexes in ALL tables.

sys2.indexes_stats
A simple wrapper around dm_db_index_physical_stats that beside index fragmentation statistics also shows index names. Usage: SELECT * FROM sys2.indexes_stats('<schema>.<table>')
Note: If you pass a NULL value as parameter, you'll get all the indexes in ALL tables.

sys2.indexes_usage
This UDF shows how (and if) indexes are used by SQL Server.
Usage: SELECT * FROM sys2.indexes_usage('<schema>.<table>')
Note: If you pass a NULL value as parameter, you'll get all the indexes in ALL tables.

Source: Davide Mauri - SQL Server & .NET Specialist

Wednesday, February 14, 2007

Phidgets Inc. :: Unique and Easy to Use USB Interfaces

I used to work for a company that created fibreglass flagpoles using a few thousand lines of Basic code and a CNC lathe.

WPF, USB and Phidgets seem like they are going to make things a lot easier in the future.

What Are Phidgets?

Phidgets are an easy to use set of building blocks for low cost sensing and control from your PC. Using the Universal Serial Bus (USB) as the basis for all Phidgets, the complexity is managed behind an easy to use and robust Application Programming Interface (API). Applications can be developed quickly in Visual Basic, VBA (Microsoft Access and Excel), LabView, Java, Delphi, C and C++.

Source: Phidgets Inc. :: Unique and Easy to Use USB Interfaces

theWPFblog » Examples

 

In the couple of days that I’ve been experimenting with WPF/E, I have finally come to terms with how it all works and what you need to create a new project. Microsoft has released a template for Visual Studio but I think that it does more harm than good. Plus it only currently works in the full version of VS and not in the express editions. In this post I will explain the basic building blocks that make up a WPF/E application. I’ll use the typical Hello World scenario.

HelloWorld.xaml
Your XAML file is the heart of the WPF/E application. Much like in WPF, XAML defines all of the visual interface and animations. You can create the XAML code in Blend, Visual Studio, or in Notepad. Visual Studio gives you Intellisense code completion but since XAML is XML-based, any XML editor will speed things up. Using Blend is great for visually laying out your graphics, but it spits out WPF XAML not WPF/E XAML so you will have strip down the resulting code to make everything Canvas-based.

To create a compliant XAML file you need to use a Canvas as your root element with the two namespace declarations seen below. Then to add the Hello World text I’m simply adding a TextBlock control to the Canvas.

Source: theWPFblog » Examples

Bryant Likes's Blog : WPF/E Matrix Reloaded

 

WPF/E Matrix Reloaded

Last week Chad posted his Matrix style text animation which I thought was very cool. I wanted to experiment a little with keyboard events and using Glyphs. The result is the Matrix Reloaded:

Source: Bryant Likes's Blog : WPF/E Matrix Reloaded

Friday, February 09, 2007

Armadillo Systems: Books

These guys designed the British Library WPF application. 

Armadillo Systems is probably the foremost provider of interactive solutions for books, documents and manuscripts in the world.

We specialise in producing unique applications that provide access and interpretation for items that would otherwise remain under glass and we understand the tension that exists between the need for conservation and the requirement of access. We have been working with libraries and museums since 1997 and developed the award-winning Turning the Pages TM technology with the British Library.

We have developed a methodology of approaching bibliographic projects that encompasses thinking about the book in 5 ways:

  • the book as object
  • the book as content
  • the book as icon
  • the book as window into the past
  • the book as gateway to future learning

Source: Armadillo Systems: Books

Lance's Whiteboard : Troubleshooting Sql Reporting Services custom assemblies (extensions &amp; what not)

 

Troubleshooting Sql Reporting Services custom assemblies (extensions &amp; what not)

I dont have time for a lengthy post, so here is some link-love for some great articles that have helped me lately with some data extensions and other custom code I am writing for Sql Server 2005 Reporting Services:

Source: Lance's Whiteboard : Troubleshooting Sql Reporting Services custom assemblies (extensions & what not)

WINDOWS VISTA AVALON WPF WEB3D GAMES

A bit of background on Web 3D and where Microsoft is going with it. 

INTRODUCTION

IMPORTANT: We are using, at this tutorials serie, the beta version Dec CTP. Some sintax is different for the last WPF version!!!

Web3D has a 10 years history of big disasters. Since the days of the launch of VRML until the phaseouting of the ADOBE web3D product:"Atmosphere" at 2005 , nothing works.

It's important to say that Web3D IS NOT Internet3D. We are talking about a 3D application having a "webpage dependence", not about things like: ActiveWorlds, SecondLife or internet multiplayers games.

One of the last available products for web3D is Shokwave3D, part of Macromedia/ADOBE Director. But it's frozen! We (DMU) have a tutorials serie about Shockwave3D that you can read here. But who knows if the product will be phaseouted soon by ADOBE , like they did with Atmosphere...

Now Microsoft is launching its Web3D. It's part of the new Windows Presentation Foundation (codename:Avalon). It's in Beta phase now. It has a new architecture for the launching of the application: ClickOnce that can be "page dependent". We talk about how to publish WPF applications at our "WPF PROGRAMMING - BASICS" tutorials that you can find at our site (go to this link. ).

At this tutorials serie we will work creating generic applications but you can publish them using Visual Studio, any version.

Source: WINDOWS VISTA AVALON WPF WEB3D GAMES

Wednesday, February 07, 2007

Download details: Visual Studio Code Name "Orcas" January 2007 CTP

 

Microsoft Pre-release Software Visual Studio Code Name "Orcas" - January 2007 Community Technology Preview (CTP)

Source: Download details: Visual Studio Code Name "Orcas" January 2007 CTP

Package Configurations not so portable? - MSDN Forums

 

The best way we've found is to:

  1. Edit the package and create an XML configuration file with the properties you need.
  2. Save the file to a known location
  3. Create a system variable
  4. Populate the variable with the full path and file name of the above XML file
  5. Edit the package and remove the package configuration for the XML file.
  6. Create a new configuration of type Environment variable and type in the name of the system variable
  7. The new package configuration should show with "Indirect XML configuration file" once the above has been done.

This can obviously be tuned to take keeping packages in the dark into account etc. etc.

Source: Package Configurations not so portable? - MSDN Forums

 

 

Everyone seems to be trying to solve the issue of the XML file path being stored in the configuration organizer and that in turn requiring all file system environments having the same structure.  If you are storing the package in a file system as opposed to MSDB, there is a very easy solution  .... remove the path and leave just the XML file name.  The XML config file will then need to be in the same folder as the package, but it then becomes file structure independent.

Further, the tool (SSIS) should not dictate whether it is a good idea or not to maintain similar file structures across environments.  Whether it is a good idea (personally I believe it is) the tool should support a reasonable solution.

»Rape me, my friend...

Gates “dares anybody” to exploit Vista | The Apple Core | ZDNet.com

February 6th, 2007
Gates “dares anybody” to exploit Vista

Source: » Gates “dares anybody” to exploit Vista | The Apple Core | ZDNet.com

Getting Real

Want to build a successful web app? Then it's time to Get Real. Getting Real is a smaller, faster, better way to build software.

Getting Real

Here are the 16 chapters and 91 essays that make up the book.

Source: Getting Real