July 2004 - Posts

Source Control Options

I'm on a development team of 1, so source control isn't a huge or pressing issue for me. The biggest advantages of having source control is for rolling back to earlier versions, and using a diff tool to see what I've changed. It also means I follow some better practices than just developing away, heedless of key files I might overwrite, or changes I might make that break a system.

About a year ago I set up CVS, which worked pretty well. It took a lot of fiddling to get working just right, but when I figured out the securities and settings, Visual Studio.NET played along pretty nicely with it (using Jalindi Igloo). I would give either of those two products a hearty recomendation to anyone interested in CVS source control on Windows.

Then the Windows 2000 server I had CVS working on started playing up - it had very little memory, I was asking a lot of it, and I had a whole bunch of demo and beta software on it that meant it needed a rebuild. Eventually we got a new server instead of rebuilding the old one, and eventually that new server got repaved after a power blackout (long story).

So now I feel I'm back at square one. I've downloaded Vault and Subversion (thanks to Steve Eichert for an interesting & informative post on Subversion) and I'm poised, ready to pull the trigger and go with one of them. I'll have to try them both out, of course. Leaning towards Subversion as it's open source and that means that others can come on board without having to cough up dough for licenses. Alternatively, I've expressed interest in a project out of hours that uses Vault, so maybe getting to learn that would be good. Vault has the fact that it's a mature and supported product going in its favour.

Add to this the new Team System on the horizon, and it makes for a lot of source control options!

C# to Visual Basic Translation Tool

August's MSDN Magazine has a C# to Visual Basic Translation Tool which will take a whole C# project and convert it to a VB.NET project.

I have used the resources that the author John Robbins mentions for small snippets of C# (ConvertCSharp2VB and C# to VB.NET Translator), but the ability to convert a whole project sounds pretty good.

Roy's Visual Studio.NET Add-In Contest

I haven't had time to download any of them yet, but the submissions for Roy Osherove's Add-In Contest for Visual Studio.NET look good. Something to get back to later, I guess...

'Favorite' Tip from IE Blog

The IE blog at MSDN has a quick tip for IE, where giving an IE Favorite a one-word name allows you to type that one word into your address bar to go to the Favorite URL.

That's interesting for me, I probably still prefer two mouse clicks. But, even more interesting than this, check the stats on the IE blog:

posts - 9, comments - 825

That has to be the highest comment to post ratio ever!

 

 

Pivot Tables/Horizontal Tables With Reporting Services

Chris Hays shows step-by-step how to do “horizonal tables” (fixed rows, variable columns) with Reporting Services. I'm bookmarking this to have a look at later.

Chris uses the matrix which is an interesting Reporting Services control. I've used this in the past to take advantage of the multi-level drill-down which I reckon is slightly easier to use than a table control. The subtotals are easier than tables too, but there's a trade-off because with the table you have very tight control over what gets displayed, and how, compared to the matrix.

Melbourne SQL Server SIG review for July - SQL Server 2005: What's new in the relational and storage engines

Tony Bain (from Red Rock SQL Services), a Microsoft SQL Server MVP, spoke at Wednesday night's SQL Server SIG at the Microsoft offices in Melbourne. His primary topic was improvements in the core technology of SQL Server over the 2000 version. Tony has been using the software for the last 12 months - since the first beta - and had lots of insights to show for it.

Tony started off explaining that this was a "What's New"-type session, which meant a brief overview of the improvements without any real advice on how to implement them in the real world. Left out of the night's discussion were .NET integration, Reporting Services, Analysis Services, XQuery, and more (which Tony labelled as the "cool" parts of Yukon), and the focus was on the sort of improvements that a DBA is going to spend time in, namely the relational and storage engines and the changes there. Tony discussed (this is not an exhaustive list):

  • replacements for TEXT, NTEXT and IMAGE (BLOB) datatypes: VARCHAR(MAX), NVARCHAR(MAX) and VARBINARY(MAX) which can be searched in WHERE clauses
  • the ability to take a read-only snapshot of a database at a particular point in time and run queries against them (he admitted one of the shortcomings of these snapshots were that they could not be backed up)
  • referring to queries as variables (Tony called these run-time views), although I didn't see much difference from the current TABLE datatype except that declaration and population can be done at the same time
  • recursive queries, with the afore-mentioned run-time views...I liked the sound of this!
  • inbuilt function to see how often your indexes were being used
  • ability to include columns in an index, that are not part of the actual index but are stored with the index to save the query going back to the table to get the field
  • triggers on Data Definition Language (DDL) statements, e.g. every time a table was added to your database, a trigger could fire
  • more consistent DDL statements - basically a CREATE, ALTER and DROP for almost any object you can think of - to reconcile DBCC commands, extended stored procedures and normal DDL statements
  • function to return the SPID, Transaction name and running time of currently open transactions
  • TRY...CATCH blocks - Tony explained that they currently only caught one type of exception, a transaction fail exception
  • select a random number of rows from a table (very fast)

There was more, but I honestly can't remember all the new things. Suffice to say there is a lot to learn!

I was amazed at how many changes and improvements Microsoft had worked into SQL Server 2005, even given the limited range that Tony covered. Greg Linwood from the user group mentioned that last night's event was the first of a series of Yukon presentations, with the August SQL SIG in Melbourne titled Changes to Backup and Recovery in SQL Server 2005. Looking forward to it...

Realisations

Jeff reflects on 3 years of experiences and priorities, thinking he was happy (but realising he was actually miserable) and doing something about it. He writes about the need for support (and sounds like he's very grateful that he got that from his wife), self-esteem, balance and ability to take risks (and a lot of other stuff that you'll have to read for yourself).

His post made me think of a time when I felt down in general and I felt bad about my job and future prospects, and I realised something: it's OK to feel bad. I'm learning from that and I still spend a lot of time trying to make myself feel better or avoid bad feelings entirely rather than accept the fact that I'm not always going to feel great, and just get on with things.

Jeff's post also highlights for me a need to be able to take risks:

Finally, the inability to take risks will keep you forever stuck in the same place.

Something to work on!

Ordering Task Bar Buttons, and Removing "Use the Web Service to find the appropriate program" Dialog

Omer wants ordering of task bar buttons, and I agree. It sounds trivial but I find that every day I order my buttons (from left to right) Outlook, MyIE web browser, Windows Explorer, the rest. I reckon I save 10 minutes a day just by knowing where my browser window is when I'm switching between programs.

On the other hand, Alt-Tab is probably faster than the mouse.

Next, Kevin posts a 5-second registry tip to get rid of the useless “Use the Web Service to find the appropriate program” dialog that comes up when you try to open a file with an unknown extension in XP. Thanks Kevin!

The Web Service link is still available at the bottom of the “Open With” dialog, so you get the best of both worlds.

UPDATE: Mis-spelt Omer's name - thanks Omer for the notification. Sorry for the inconvenience!

Printing a Form in VB.NET

I don't have a need for it right now, but I know one day that Mathias Schiffer's PrintForm replacement for Visual Basic .NET code will come in handy for allowing users to print what they see.

My current solution is “official“, pre-baked reporting via Reporting Services, and I'm using the ComponentOne FlexGrid for on-screen data displays (I wonder if it has a Print method?)

URLScan, FlexWiki and Reporting Services

Here's hoping that someone will find this information useful when working with the IIS Lockdown Tool, FlexWiki and Reporting Services. If the URLScan filter is set to a fairly restrictive level, neither Reporting Services or FlexWiki will work (returning constant 404 errors). I found helpful advice at the following pages:

Philip Su Shows Me The Money

Philip has a great post on when he worked on the Money team at MS - funny, insightful, and memorable.