Powerd by dasBlog RSS 2.0
 Tuesday, July 29, 2008

Late last year I posted briefly on the SQL Publishing Wizard. I haven’t had a need for this since I reformatted and installed Server 2008 64 bit as my main workstation at work, and wouldn’t you know it, it’s not there now.

As usual I headed off to Google and found some posts that pointed to this install path, C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\1.2. Seeing as I am running a 64 bit Windows OS, my path is actually C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Publishing\1.2. Now you could just run SqlPubWiz.exe, or run the VSInt.reg file to add the context menu option in Visual Studio 2008.

Not so fast, the registry file doesn’t seem to work as is on a 74 bit OS due to the new subkey, Wow6432Node. I modified VSInet.reg to include the keys the Wow6432node, and in the end got my Publish to Provider context menu option back.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VWDExpress\9.0\Menus]
"{40d75537-ce10-4311-a7b0-6b164d80405d}"=",1000,1"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Menus]
"{40d75537-ce10-4311-a7b0-6b164d80405d}"=",1000,1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VWDExpress\9.0\Menus]
"{40d75537-ce10-4311-a7b0-6b164d80405d}"=",1000,1"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\Menus]
"{40d75537-ce10-4311-a7b0-6b164d80405d}"=",1000,1"

 
Tuesday, July 29, 2008 4:10:48 PM UTC  #    Comments [0] - Trackback
Sql | Tools
 Friday, July 04, 2008

Once again I need to generate some self signed certs for local development. Installing certificate services in Windows is a bit of an overkill for what I need, however, it would be nice to have a root CA to work with.

After some Googling, I found a site, http://ssl4net.com/ which allows you to create a self signed root CA, and then additional certs signed by the CA you created. It is extremely easy to use and once I got the certs I was able to install them without issue.

My only concern is that the certs do not appear to be encrypted on their server, nor do they use SSL (seems ironic). However, since I will only be using this for internal use, I have no problems with this. I would be a little cautious if I was going to use to verify my identity to other people.

It looks like they might be using open-ssl as the cert creation mechanism, so maybe it’s worth the effort to setting up a VM running linux to generate my own certs in house, but that’s for another day.

Friday, July 04, 2008 4:25:36 AM UTC  #    Comments [0] - Trackback
Programming | Tools
 Tuesday, June 17, 2008

Found some new (and updated) remote help and IT tools today. The first tool, is a new one (to me at least), which I found from an article on Tech Republic, and is called CrossLoop. Cross Loop is a remote desktop/vnc clone that allows you to view the desktop of another PC. It is designed for remote helpdesk scenarios, as it requires a user at the remote computer to initiate a connection.

The second and third tools are Team Viewer and Ultra VNC, both of which I have heard of before, but have been updated. Team Viewer’s free offering has been expanded for non-commercial use, while Ultra VNC has several plug-ins and add-ons which make it suitable for a variety of scenarios.

The add-ons for Ultra VNC that interest me the most are the Repeater and Nat2Nat, both of which allow for connections to be made across firewalls. Digging thru the Ultra VNC forums, I came across several posts talking about a solution (Ultra VNC with various add-ons) that enables remote connections to be made using SSL on port 443 without the need to configure firewalls. The Ultra VNC repeater is licensed under the BSD license, but I’m not sure on the other add-ons. The NatHelper server that is used for the Nat2Nat looks like it might be hosted by Ultra VNC, as I didn’t see any download links for it.

The final tool I came across today, was Spice Works, which was an add displayed on the Ultra VNC sight. SpiceWorks is a free (supported by ads, and not open source) tool for IT professionals looking to manager their network. Here is a review from PC Magazine (which also drops the names of a couple of open source network monitoring tools).

Tuesday, June 17, 2008 3:23:18 PM UTC  #    Comments [0] - Trackback
Review For Future Projects | Tools
 Sunday, April 27, 2008

Last week I ran into an issue where I needed to boot into DOS in order to update some firmware on our servers. Problem was, the servers didn't have a floppy drive, but they did have USB and CD-Rom. I had a bootable CD-Rom in the form of the Ultimate Boot CD (UBCD), which has a batch file included for turning a USB memory stick into a bootable device, complete with the contents for the UBCD.

A USB memory stick is allot easier to carrier around then a CD. In fact, I keep a 2GB USB memory stick on my key chain, and the UBCD only takes up ~120MB. The only downside is the UBCD contents are stored on the root of the USB drive. I keep things clean by creating a folder named _files in the root, which is where I stick all of my files, and this seems to work. I also wanted to add DSL, as it can be booted, or run from inside windows.

Installation - UBCD

Obtain a USB drive/stick. I picked up a 2GB San Disk Cruzer for $17 on sale at best buy. It comes with something called U3, which thankfully you can uninstall by using a program you can download from here. You have to go thru a bunch of marketing screens telling you how cool U3 is.

Next Download the ultimate boot cd and burn it to a CD. You could probably also mount it using a mounting tool but I did not try this. Use the ubcd2usb.bat file located in tools\ubcd2usb to format your usb drive, make it bootable and install the contents of the UBCD to it.

I've run into a couple of problems on this step. First, it seems to fail under Vista, but I only had one USB stick left to format at the time. It works fine on WinXP and Win2k3.

For the SanDisk U3 stick, I formatted it first from the command prompt after removing the U3 software and this seems to have helped it. I think it may have gotten corrupted when I tried using Vista after removing the U3. A co-worker of mine has the exact same USB stick, but I know he used XP and had no problems

Install DSL

The following instructions are based on this forum post which was written for DSL 3.2. My instructions work with the latest version (4.x) and allow you to boot from your USB drive using Qemu, or boot into DSL when your computer boots up.

First download the latest version of DSL. I used this link (Check the DSL download page for a list of current mirrors), which is for the embedded version (zip file, not an .iso). Then I extracted the contents of the .zip file to a temporary folder (c:\temp\dsl) and created a folder on the root of my USB drive called DSL (\DSL).

Copy KNOPPIX to the root of your USB drive, then copy the all of the extracted DSL contents except KNOPPIX to /custom/DSL. Edit the .bat files in /custom/dsl updating the path to KNOPPIX as /KNOPPIX. Finally edit \custom\custom.cfg with a text editor adding a label for choosing DSL. Your custom.cfg might look something like this:

MENU INCLUDE /menus/defaults.cfg
LABEL back
  MENU LABEL ..
  KERNEL menu.c32
  APPEND /menus/main.cfg
LABEL dsl
  MENU LABEL DSL V4.2
  KERNEL /custom/dsl/linux24
  APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=/custom/dsl/minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix

You should now be able to boot DSL from the Qemu emlator by using the bat files in /custom/dsl, or boot DSL from the UBCD menu (Custom Tools\DSL 4.2). I could not figure out how to get DSL to boot thru UBCD with KNOPPIX in the DSL folder, only with it in the root of the USB drive. A minor inconvenience.

 

Final Thoughts 

I decided to remove the autorun.inf and website folder which was installed from UBCD. I was going to remove the tools folder, but then realized that by keeping those on there, I could easily create this same setup on other USB sticks for friends.

A similar utility disk is the Ultimate Boot CD for Windows (UBCD4Win). The application you download from the UBCD4Win takes files from a WinXP (SP2 recommended) disk, and creates a bootable CD with utility applications. However, it sounds like you are limited to booting computers which have a similar version of Windows (XP, Server 2003), especially for the NTFS utilities.

Sunday, April 27, 2008 8:20:00 PM UTC  #    Comments [0] - Trackback
Tools
 Friday, April 18, 2008

I attended the Hero's Happen Here launch event held in Madison, WI yesterday. The event was held at the Westside Marriott, and featured a morning and afternoon session, each with multiple tracks. Future planning note, the local McDonald's was not prepared for the rush between the two sessions ;)

I was registered for the IT Infrastructure track in the morning session (I think), but it didn't really matter. Once you got in, you could float between tracks, and I ended up standing on the back wall for a couple of the presentations so I could move more freely and answer phone calls (my on call week).

I'll start off with the free stuff I got.

  • Microsoft branded lunch cooler - These were given away for the morning session and actually had food in them! They are really nice lunch coolers, with a main compartment with a separated top and bottom (bottom is for your ice pack and really cold stuff).
  • Visual Studio 2008 T-Shirt - I got this from AngelaB because I made a comment while visiting the booth she was at. I said something to the effect that I was looking to learn how to leverage the power of Team Foundation Server to manage the complete application development life cycle.
  • Training DVD's - Also from the VSTS booth, I picked up two training dvd's. One on web deign and development (SilverLight, windows live, etc) and the other one was on WPF. 
  • Software Bundle which included VS 2008 standard edition, Windows Server 2008 enterprise 1 year eval, and SQL Server November CTP. Also included was trial editions of Microsoft Forefront, Microsoft System Center and a Windows Mobile 6 developers resource kit. Finally I picked up my 4th copy of Vista, this being a 32 bit Ultimate version with SP1.

Now onto the actual content. As I mentioned above, I kind of floated between tracks, so my notes jump around a bit.

SQL 2008

  • New built in auditing mechanism
    • No more need to write triggers and manage audit tables
    • Granular auditing
    • Write events to various sources including the event log. The event log source was highlighted because Server 2008 has a new feature where you can gather all event log data from all of your servers and view
  • Peer to Peer replication
    • New visual representation
    • No longer need to start/stop databases (or servers? I missed the last part of this comment).
  • Compression
    • Two types of compression, backup and data.
    • Backup compression enables faster backup and restore times and smaller backup files. A 2x to 7x reduction in backup size was reported, but it varies on your actual data.
    • Data compression allows you to compress the data within your databases (including OLAP) taking up less space on disk, and in memory (allowing you to fit more pages into RAM), at a slight increase in CPU utilization (presenter said 2-3%). While I will need to evaluate this in various environments, it seems like a good tradeoff, as disk IO is usually the biggest bottle neck.
    • SQL Server is still in CTP, and the Presenter was unsure which compression options would be available in which editions of SQL 2008.
  • Resource pools and the Resource Governor
    • Assign users (and it sounds like you can assign or configure this at a stored procedure level as well) to roles and then assign the roles to resource pools. The resource governor will limit, or assign a certain amount of CPU cycles to each pool.
    • A typical usage of this is making sure your production applications get the CPU they need, even when someone is running a resource intensive reporting operation.
  • New OLAP query optimizer
  • Define policies (presenter compared this to GPO, or rather that's where the idea came from) which manage your SQL server, and then apply those policies to all SQL servers in your organization
  • Performance improvements in database mirroring, along with automatic page repair.
  • SQL Management studio now adds intellisense, but it's only for select statements. Several people complained upon hearing the limitation on select statements, but something is better then nothing, and you can always go by Sql Prompt from RedGate.

Follow-up questions

  • What is the differences between clustering, mirroring, log shipping and peer to peer replication?
  • With all this talk about server vitalization, what are best practices for maintaining high performance in a virtualized environment.

Virtualization

  • Next version of Virtual Machine manager for System Center will be able to control virtual machines from MS Virtual Server 2005, Hyper-V and VMWare
  • Hyper-V actually virtualizes the host OS. This is what is meant by the whole Parent partition terminology I guess. The presenter made it a point to show how after he enabled Hyper-V, he no longer had power management options on his laptop. So what does a virtualized host really mean? I'm still able to play games (World of Warcraft, Call of Duty 4) on my Hyper-V enabled Windows Server 2008 workstation, so it's not the same thing as a virtual machine that's for sure.
  • The import/export feature in the Hyper-V manager is for moving VM's between hosts, not for importing VMware from Virtual Server 2005. To do an import from Virtual Server, you just create a new VM in Hyper-V, add the disk file from Virtual Server, and install new drivers.
  • There is a differencing disk option I overlooked on my install, which allows you to setup a master disk, allowing you to save on space.
  • You can setup virtual com ports to talk to the host computer, or remote computers via named pipes. I just setup both com ports on one VM to use the same named pipe, and was able to send data back and forth using two hyper terminal windows. That will come in handy for some testing I have to do. Note, this option is not unique to Hyper-V, but I thought it was worth pointing out.
  • Backups of running VM's are supported (Live Backups)

Two things I wanted to touch on quick concerning Hyper-V, specifically live backups, and mounting VHD's in the host (a feature that has been posted on more then one blog).

To backup a running VM, it takes a little more then just an XCopy. Most people have stated that you have to backup the entire volume in order to backup a running VM properly. I found this post that provides an example of using a script to select the Hyper-V VSS writer and hopefully not have to back up the entire volume, but I haven't tried this yet. Since none of my VM's are 24/7 critical, it might be easier to just shut them down once a week and use the export function.

On the topic of VHD mounting, I found another post which provides a script to add context menu support for mounting VHD's on the host machine. The VHD must be not be in use, otherwise you will get an error.

Server 2008 Security

  • Server and Domain isolation using network access protection
    • Create zones, such as unsecured (customer laptop plugged into your corporate lan), secured (most company desktops and servers), and sensitive (source code servers, production databases), and policies on which computers can access each zone.
    • DHCP and Certificate based, with DHCP easier to setup, but not as secure as Certificate based.
    • You can define policies which classify what zone a computer belongs in. For example, your policy can check for AV, anti-spyware, etc.
  • Rights Management Service, allows you to attach authorization to a document and limit what you can do with it, such as email it to an external email address or use the print screen feature. Of course you could still take a picture of your monitor with an actual camera (as pointed out by the presenter).
  • Granular Active Directory Auditing will allow you to edit very specific details such as when a computer is moved from one OU to another, or a specific field in a users AD record is changed

VS 2008

The CSS support shown in the demo was very nice. The demo had a plain old web page with some basic formatting, to which the presenter did a drag and drop operation of some CSS styles he had download from CSS Zen Garden. The page in the designer was updated automatically and completely transformed the look and feel of the page.  There is a view which shows what styles are applied to what page elements, and how styles are inherited. It really seems like VS 2008 makes CSS a whole lot easier to work with.

There are obviously allot of new features in VS 2008, but I've been using it since beta 2, so the rest of the stuff presented (mostly linq) was review to me and I didn't write it down. The presenter's blog is up at BenkoTips.com and is supposed to have more videos and demos on VS 2008.

Office Development

  • Outlook web forms allow for you to create an application easily within the confines of outlook.
  • Sharepoint workflows are just WF workflows. New features in VS 2008 allow you to deploy directly from VS 2008 making this once painful operation much easier. I am not sure if custom work flows are available in WSS, or just MOSS
  • MOSS has a business data catalog feature which allows you to pull together data from various sources, like ERP, CRM, etc.
Friday, April 18, 2008 10:01:49 PM UTC  #    Comments [0] - Trackback
Technology | Sql | Tools
 Saturday, February 09, 2008

I am adding my name to the list of developers who have not heard about the InternalVisibleTo attribute. I came across this while checking out Derik Whittaker's blog in response to the email I got saying that Derik will be presenting at this month's Milwaukee area .Net Users Group.

The InternalVisibleToAttribute was added in .Net 2.0 and most people seem to be using it in order expose internal methods to external unit test classes. However, there is nothing to prevent you from using it in non-testing situations., although I have not seen a good reason other then unit testing to use it.

The MSDN documentation talks about the special case of applying the attribute to a strong named friend assembly. This is also a C# only attribute.

Saturday, February 09, 2008 7:33:18 PM UTC  #    Comments [0] - Trackback
Programming | Tools
 Tuesday, January 29, 2008

ScottGu's latest blog post talks about the VS 2008 web deployment project and the MS Web Deployment Team blog, which deals with a web deployment tool (not to be confused with the VS 2008 project).

I had to do a little digging, but found this white paper on MSDN which explains the web deployment project for 2005. From the abstract:

Visual Studio 2005 provides deployment support through its Copy Web Site and Publish Web Site features. While these are ideal for many scenarios, there are other, more advanced scenarios where developers need the following capabilities:

  • More control over assembly naming and output.
  • Custom pre-processing and post-processing for the build.
  • The ability to exclude, add, and transform files and directories during builds.
  • The ability to modify the Web.config file to change database connection strings, application settings, or the URLs for Web references, depending on the build configuration. (For example, it might be necessary to use different values for development, test, staging, and release settings).

this white paper describes a solution to these advanced scenarios and introduces a new feature called Web Deployment Projects for Visual Studio 2005.

The web deployment tool on the other hand, is a stand alone tool (currently just a command line utility called msdeply.exe), "that provides support for deploying, synchronizing and migrating IIS 6.0 and 7.0."

It supports moving configuration, content, SSL certificates and other types of data associated with a web server. You can choose to sync a single site or the entire web server. Because we know that one tool can never ‘automagically’ guess what your application relies on, we’ve tried to be pretty flexible and powerful – you can customize exactly what you want to sync using a manifest file. You can also skip sites or other objects, or you can perform regular expression replacements during a sync (like changing the home directory on the destination machine).

 

These two new tools will help make deployment a lot easier and enable a more agile environment. Unfortunately my project assignment at work has changed, so I won't be getting direct exposure to these.

Tuesday, January 29, 2008 10:57:29 PM UTC  #    Comments [0] - Trackback
Programming | Tools
 Monday, January 14, 2008

I needed to change a bunch of project references such that they referenced a different location so that I could provide a solution to a 3rd party for a review. The idea of going thru 20 some projects and removing and re-adding the references was not appealing, so much that I thought about writing an application. I've learned my lesson though, and decided to Google to see if something was already written, and came across Cool Commands.

Cool Commands was written by Gaston Milano of Deklarit. It's a very good plug-in, it just doesn't have much documentation, and since the tool is free, I'm not complaining.

Install

I was unsure how to install the plug-in, as there is no documentation, other then to unzip and run the setup.bat from a VS command prompt.

  1. Download Cool Commands from this Direct download link
  2. UnZip - I unzipped to %MyDocuments%\Visual Studio 2005\AddIns\CoolCommands. I would suggest unzipping to a permenant location, and not a temp folder.
  3. Open up VS 2005 command prompt (you must run this as an administrator)
  4. Navigate to where you unzipped Cool Commands and run Setup.bat.
  5. The step where devenv /setup is run, took about 1 minute to run on my computer, so you should expect this.
  6. Start up VS 2005 and load a project to test it out.
  7. Review this blog post for a good overview.

Summary

While commands does not have a find and replace reference, which is what I exactly needed, the global remove and add reference was close enough. Also, all the extra features more then made of for the lack of an exact solution.

Tempting fate, I decided to try installing Cool Commands for VS 2008. I copied cool commands to by Addins folder under 2008 and ran the setup from a VS 2008 command prompt, which succeeded without error. However, non of the options are available in the context menu, so it looks like it needs to be updated for VS 2008.

References

Monday, January 14, 2008 5:02:14 PM UTC  #    Comments [1] - Trackback
Tools

I was doing some Google searches for more information on Linq and SqlCe 3.5 this morning. While I knew you could use the SqlMetal command line utility to get Linq to Sql Support for SqlCe 3.5, I made an incorrect assumption that Linq to Sql was available on the compact framework. For the love of god, could Microsoft please release a Compact Framework builder, akin to platform builder for Windows CE. For smart phones and other off the shelf devices, keep an official CF release, but for those of us writing applications bundle withed devices, let us determine what we need, and do not need in the compact framework.

Anyway, during my search, I came across Dan Vanderboom's blog. Dave is a Windows Mobile developer and shares some of the same pain that I do. He has alot of good information, and is currently working on a enterprise manager like application for SqlCe running on devices, but will not require active sync.

Thanks to Dave, I found 2 new applications for my smart phone.

  1. Task Manager - The name is somewhat deceiving, as it is allot more then just a task manager. You can view processes, window handles, device drivers, edit the registry, view network stats and more.
  2. WiFiFoFum - War driving application for the Pocket PC.
Monday, January 14, 2008 3:28:52 PM UTC  #    Comments [3] - Trackback
Tools | WinCE
 Tuesday, January 01, 2008

Today's task, a somewhat detailed code analysis of one of our Windows CE projects. In addition to reviewing from a lead architect point of view (design and implementation), I also needed to take a look at general coding practices. For this I turned to the Code Analysis tool in Visual Studio, and NDepend.

I had remembered reading about NDepend on Scott's blog, and went back there to re-read his post. I highly recommend it, as it's a great quick start and introduction to NDepend. Scott also has a pod cast available, and the the NDepend web site has links to several video tutorials showing how to use it.

One thing I found lacking, was there were no support forums on the NDepend web site. I had a couple of issues getting my Compact Framework application to be property recognized by NDepend. The main issue, was NDepend was trying to use the full framework version of System.Data instead of the Compact Framework version. I noticed that there was an option when selecting assemblies to resolved missing ones (well, some it let me, others it didn't), and figured the resolved location was stored in the project configuration file. So I opened it up in note pad and sure enough, there were all the directory paths.

I removed all of the paths that were added by default, and added my own paths to my project. I also added paths to the SQL CE 3.5 directory, as well as the location of the compact framework dlls (See update below). Unfortunately I still had issues with NDpend detecting multiple dlls (System.Data and System.Windows.Forms) with the same name. I decided to remove the path statements for everything except my project. This resulted in warning about not being able to resolve dependencies, but the analysis completed.

There is allot of information presented, almost to the point of information overload. I highly recommend printing out and reviewing the NDepend placemat as a quick reference. I concentrated primarily on the metrics, which use NDepend's Code Query Language to identify possible problems. I found myself viewing all of the queries to figure out what they were looking at. The documentation of the queries is excellent, and each one includes a link to the NDepend web site which defines the metric is pretty good detail.

I am quite impressed with the amount of information that NDepend gave me about my project. There were/are a few usability issues, but they can be overcome. I hope that I can continue to find time to make use of this excellent tool. I spent some time watching the video tutorials, and they were very helpful. I've been trying to get a side project started at home to try out all the tools, techniques, patterns, etc that I don't have time for at work, and this will definitely find it's way onto my to do list. I think it will be very interesting to use this from the beginning and see how the different metrics change as I build out my project.

Update:

  • 1/2/2008 - After watching the videos, I discovered that when you are setting up your project in VisualNDepend, there is a screen that lest you add/remove directories in the application. This is much easier then editing the project file manually like I was initially doing.

Other Links:

Tuesday, January 01, 2008 6:01:14 PM UTC  #    Comments [0] - Trackback
Programming | Review For Future Projects | Tools
 Tuesday, December 18, 2007

Compliments of ScottGu's blog, the World Of Warcraft add-in for Visual Studio is almost enough to make me go back and start playing again. Or, at least install WoW just to try this out.

Tuesday, December 18, 2007 2:12:14 AM UTC  #    Comments [0] - Trackback
Tools
 Thursday, December 13, 2007

I'm using a wiki document library on Share Point as a central repository for design and implementation documentation on a project that I am working on (The selection of the wiki as the documentation repository is the topic for another post). At some point in the future, I know I will be asked to provide a hard copy of my documentation, and I didn't have a really easy way to print the wiki.

My first thought, was that there must be a program out there, that lets you specify a set of URL's, and then it will go print them for you. Maybe I wasn't searching on the correct terms, but I couldn't find anything. I remembered there was a print linked documents function in IE, so I went back to investigate that.

The print links option, is in the options tab of the IE 7 print dialog box. If selected, it will print all 1st level linked documents of the page you are currently on. So, all you really need to do is create a .html file someplace on your computer, and add URL's to it, open in IE, and print it with the print linked documents option. You can create several different .html files each with a different set of URLs. I wish you could specify to print n levels deep, as that way you could build up a hierarchy of .html files. Perhaps this would be worthy of an IE plug-in?

Getting back to the Share Point wiki, I wanted a quick way to get the URLs for the pages I wanted to print. There are the default list views, which list all content in the wiki, which almost work, but there are too many extra hyper links. I decided to create a new view, that only contained the wiki page name (as a hyperlink to the document), as well as various non-linked text fields, like date created, modified and version. I could then copy this to a .html file and print.

So why not just print from that view? Well, there are all the other URLs on the page, such as the side bar, and admin menus, that would also get printed. However, if the pages you want to print are displayed in a grouping (and with the way I name and categorize my wiki pages, this is pretty easy), you can just highlight the rows, and choose the print selection option in the print dialog box (and print linked documents), and then you don't even have to maintain a list of .html files. This meets my needs for the foreseeable future.

I came up with the following list, which outlines what I'd like to see in a standalone application, or IE plug in.

  • Site spider to gather URLs (with options to filter specific links using regex)
  • Drag Drop URLs to organize them into logical groupings for printing
  • Define lists which build form other lists
  • More formatting options for printing
  • Ability to add meta data to the pages referenced by the URL
  • Print a table of all links found in the documents
    • Actually this is an option already in IE, but I'd like to see it print a single list, instead of 1 per page, so there are no duplicate URLs. Then add a footnote to each link on the actual document which can be used to reference the table of links.
Thursday, December 13, 2007 3:21:31 PM UTC  #    Comments [0] - Trackback
Tools
 Friday, December 07, 2007

I finally got nMap working under Vista. I don't know if it was the latest version of nMap I installed (4.23RC3) or winPCap (4.02), or some other change to Vista (update). You do need to run it as an administrator to get access to the network card at the low level required by the tool.

I don't know when they added this, but in the 4.23RC3 the GUI is included and works well. The command line is still there in the background available for the power users. One nice thing about the GUI is that as you make changes, you see the command line that is going to be execute.

Friday, December 07, 2007 1:08:21 AM UTC  #    Comments [0] - Trackback
Tools
 Monday, December 03, 2007

From Dave Northey's blog, comes a link to an Active Directory tool previously only available to MS Premier Support. The tool discovers information about your Active Directory and Exchange infrastructure and exports it to Visio. The tool is available free of charge from Microsoft downloads.

Monday, December 03, 2007 2:40:45 PM UTC  #    Comments [0] - Trackback
Tools
 Thursday, October 25, 2007

I was reading a recent post by Jeff Atwood about how he had a new virtual server for his blog, and how one of his requirements was a 64bit OS. Jeff provided a link to an article from 2005 on the Microsoft Operations blog that makes a case for using 64bit OS’s on servers. I have always thought that conventional wisdom has said that if you do not need more then 4GB of ram, you don’t need a 64bit OS, and the hassles that go along with it. Apparently, the ability to have a larger virtual address pool offers significant improvements to performance for web applications.

 

The article, written in 2005, shows some relative performance comparisons between x86 and x64 measured in responses per second, and response time. The requests per second are pretty close, with one category (static) performing better on x86, but the differences in response time are phenomenal. Aside from raw performance numbers, it was noted that Worker Processes recycled less, which would lead to improved end user experience. It was also noted that asp.net 1.1 is only available in 32bit, but that there was no problems in running it on a 64bit OS, and that the 2.0 version of the framework has a 64 bit version.

 

The biggest issues faced by the operations team (in 2005), was making sure their 3rd party app's like AV and Backup, and any drivers, were 64bit compatible. I'm hoping 2 years later, this is slightly better.

 

We are just starting to get some servers up for our new project and the question of 32 vs 64 bit has come up. Normally I'd be all about the latest and greatest 64bit goodness, but IT is always wanting to take the conservative approach. However they've agreed to go 64bit OS for the DB servers for sure, so I don't know what the difference is between those servers and the web servers, should be the same as far as AV, backup and drivers are concerned. We'll see how it goes.

 

Jeff also provide a link to another Microsoft Operations post about the free log parser provided by Microsoft.

Thursday, October 25, 2007 3:55:36 PM UTC  #    Comments [0] - Trackback
Technology | Tools
 Saturday, October 20, 2007

While looking to download BizTalk 2006 R2 off MSDN, I came across Software Licensing and Protection Online Server (SLP Services), and an offer for MSDN subscribers for free use for 1 year. This was the first time I've heard of SLP Services, so I wanted to check it out, the home page is here: http://www.microsoft.com/SLPS/Default.aspx.

Key features include:

  • Code Protection (Advanced Obfuscation?)
  • License Enforcement thru activation and client side enforcement.
  • 1 code base, "unlimited" configurations. Create trial software, add-on packages, timed demos, etc.

SLP Services is either a Microsoft hosted, or server based product that can be used to protect, license and distribute your software. In the hosted model, Microsoft runs the service, and you pay them a fee. In the server model, you install the server onto your network and host it yourself. It might also be possible to resell SLP services, but I have not read the licensing to know that for sure. This blog post indicates that reselling the SLP Service is an intened use. In addition to the traditional use for licensing, the SLP Services web site also talks about benefits of using the technology in the enterprise, for in house applications, which include monitoring application use, and controller who can use a specific application, or feature. The Downloads page, for information on downloading a trial version of the code protection tool and documentation for online and offline products.

The basic version you get thru MSDN allows you to do the following

  • 1 licensed product
  • 100 Commercial Activations (i.e. Customers who purchase a license)
  • 1000 non-commercial activations (activations that were not purchased)
  • 1 basic permutation, which allows you to "create" 5 products from a single code base.

The more expensive licenses of SLP Services allow for more activations, permutations and you get statistics and an API for license creation. Check out the How to Buy page for details. Regular retail pricing for the basic hosted version (after your free year and for non MSDN subscribers) is $500/yr, which as I already mention, includes 100 commercial activations. Additional activations cost $1000 for 1000.

I really, really like the concept, but once again feel like Microsoft could be doing a better job at making this more accessible to smaller ISV's and independent contractors (in the same way I disagree with some of the pricing for VSTS and TFS). Granted these are retail prices, but but the point of entry for someone hoping to make $9.95 on a product, and who could really benefit from something like this, is a little high. I'd like to see a starter edition that gives you the 1000 non-commercial activations but includes no commercial activations, however, you could purchase them at $1/each. This way you could develop your code using the technology and then once you start selling, start paying for the service. I think that Microsoft is trying to avoid giving away the code protection for free so that they do not directly compete with other companies offering a similar product, which if that is the case, should offer a limited functionality version with the starter edition, again to get people started.

Software Cost Number of Copies to Break Even to cover $500/yr
$9.95 51
$19.95 26
$29.95 17
$39.95 13
$49.95 11
$59.95 9
$69.95 8
$79.95 7
$89.95 6
$99.95 5
   

 

UPDATE: Someone from MS responded to a post I made on the MSDN forums, confirming that, as a MSDN subscriber, as long as you renew each year, you have access to the basic version. This does make this a little more attractive, as a MSDN professional subscription is a good deal IMO.

I fully expect to see new hosted solutions start to popup that are based on SLP Services, that include e-commerce capabilities, and charge per copy based on purchase price.

In addition to the price, which may or may not be a detractor to you, there is one other issue. Since this is a Microsoft product, you are going to have allot of talented individuals looking to crack it. It will be interesting to see if a "universal" crack could be developed, and how MS will respond.

Saturday, October 20, 2007 4:21:58 AM UTC  #    Comments [0] - Trackback
Programming | Review For Future Projects | Tools
 Saturday, October 06, 2007

PolyMon is an open source agentless monitoring application written in the .Net Framework, and available, with source on CodePlex. It is designed as a client/service/server architecture, consisting of a WinForms management application, Windows Service monitoring engine, and uses SQL 2005 for it's data store. I have written about Polymon before in my post about Network Monitoring, so you should check that out for some more details. I will re-iterate the available monitors here.

  • CPU
  • Disk
  • File (Age and Counts)
  • Windows Performance Counters
  • Ping
  • PowerShell Scripting
  • SQL Monitor via Stored Procedures
  • SNMP
  • TCP Port
  • URL
  • Windows Service Monitor
  • WMI Monitor

I set this up at home, with limited success, and at work (to monitor dev and test instances) with better success. The only difference between the 2 installs is I'm using integrated authentication at home, and SQL authentication at work. I've noticed some other issues with domain authentication at home, so I feel that it's an AD issue at this point, and not a problem with Polymon, although there may be the opportunity for more robust error logging in Polymon if this turns out to be the case.

I setup Ping and SQL monitors based on our production monitoring system at work, and only had to monitor the SQL monitors slightly to support Polymon, which requires two output parameters defined in the stored procedures. I wanted to setup the WMI and Powershell monitors in place of some of the custom SQL monitors, but didn't have the time. I've added some links at the bottom to BizTalk Powershell resources for future reference.

Pros:

  • Free and Open Source
  • Actively Developed with a road map that makes sense
  • Extensible without modifying the core application
  • Little need to extend given the excellent coverage provided by the default monitors, especially PowerShell
  • Runs on SQL 2005, so you get all of the benefits of SQL 2005, plus you could write custom reports in Reporting Services and have those emailed.
  • Monitor not just uptime, but other stats as well. For example, response times are logged, and the SQL monitor supports returning

Cons: 

  • Monitoring Engine is not multi-threaded - If you had 61 monitors set to run every minute, and they all took 1 second, you would start to see lag. This is a know limitation and can be worked around by not having that many monitors set to run that often. It is on the development roadmap for the project, and is going to be addressed in two ways. The first is to multi-thread the monitor engine, which will allow scale-up. However, any good developer would know that just multi-threading is not the end all solution, and you could run into additional limitations as a result of running multiple threads. Therefore, the second part is to allow monitoring engines installed on separate computers, to run off the same database, effectively adding scale-out capabilities. Another possible benefit to this, is it would allow you to install the service on the servers you want to monitor and not have to deal with as much security. However, this would be the same as a monitoring application that requires an agent.
  • Database can grow large very quickly, which can also slow performance. You need to use some common sense, set appropriate retention policy, and possibly re-index to meet your individual needs.
  • No web interface. I actually like the WinForm application, but can also see were a web app would have it's advantages. There is a plan to replace the WinForm application with a Web Application. I'd like to see both, but can understand limited resources.
  • No Operator Groups - Operators are defined individually. However, if you have a distribution list setup, it makes it a little easier.
  • Only Email Alerts
  • No email of reports that I can see, however, this could be considered a Pro, as you could use SQL Reporting Services to make your own reports
  • Remote connections for monitors represent administrative and security considerations. For example, you need port 1433 open to make remote sql connections, WMI does not look very administrator friendly for remote connections, and the same would apply to WMI thru power shell. This is a limitation of the technologies themselves, and not Polymon, but worth pointing out.

Links

Saturday, October 06, 2007 10:12:22 PM UTC  #    Comments [0] - Trackback
Review For Future Projects | Tools
 Wednesday, September 12, 2007

Having some problems at work were some of our units in the field are having communication issues. IS says it's an IT problem, IT says it's an IS problem, a vicious cycle indeed ;) In order to help narrow the problem down, I (representing the IS team), and my co-worker Mark (representing the IT Team, although in this case, he's really on my side) have installed some monitoring software on our home PC's to assist in the diagnosis. We needed something that was free and easy to setup for our little test, and Servers Alive fit the bill.

The free/trial version of Servers Alive allows you to monitor up to 10 entries, with an entry being a 1 IP and 1 check. There are a large number of checks available, with the ones being used for our test tonight being, TCP Port Connect, FTP, HTTP URL, and Ping. I pretty much used up all 10 of my free entries, 8 of which were set to monitor stuff at work, and 2 were set to monitor 2 other external web sites (this blog, and msn.com), to serve as a baseline comparison.

Servers Alive has excellent alerting capabilities, as well as a pretty extensible reporting engine, in the form of log files, and HTML generation based on templates. For our test, I'm using a sample template contributed by a member of the Server's Alive community, and then publish it via FTP (included functionality in SA) to my web site. I also have turned on the file logging capability and set it to maximum.

I encourage you to check out Servers Alive, it's Features, and Free add-ons.

After getting Servers Alive up and running, I turned to doing some research on other monitoring software that was available. One of the key requirements I was looking for, was a open source monitoring framework, something I could build my own monitors for and tweak stuff as needed. My Google search led me to a site at Standford that lists a plethora of monitoring and other network administration tools. I quickly scanned thru the list and picked out one commercial one that I had heard of before, and the gem I found in Polymon.

GFI: GFI makes several commercial products, including the linked application, Network server monitor (NSM). NSM has tons of monitoring, reporting and alerting capabilities out of the box. There is support for using SQL as a data store, and you can extend and add your own monitors using VBScript. Pricing is based per IP, which makes it cheaper then MOM. With the SQL data store option, you could easily create a web site, or integrate it into an existing web site/portal. GFI states that no client apps need to be installed on the machines you are monitoring.

Polymon: Polymon is an open source project on CodePlex, that meets my needs in that it is an open source monitoring framework, with a good deal of out of the box functionality, and it's based on the .Net Framework. Just looking at the screen shots, shows the amount of time that has been put into this project so far, and the project roadmap shows the developer has put some thought into this for the future.

Out of the box, there are a good deal of monitors, although not as many as a commercial solution. The monitors in green are the ones required to replace our current commercial monitoring solution (if we choose that route). Even if we don't do it at work, I'll be looking to get this running on my new server.

  • CPU
  • Disk
  • File (Age and Counts)
  • Windows Performance Counters
  • Ping
  • PowerShell Scripting
  • SQL Monitor via Stored Procedures
  • SNMP
  • TCP Port
  • URL
  • Windows Service Monitor
  • WMI Monitor

Polymon is extensible in several different ways, and you should check out some of the samples available. First, you can add performance counters, and WMI information to your applications. This approach allows you to switch to a different monitoring solution down the road, including MOM, as WMI is widely supported. From a SQL server standpoint, anything you can do in a stored procedure, can be monitored and reported on. Third, there is PowerShell, which in case you didn't know, gives you the power of the .Net Framework from a command prompt, so basically, you can write a script to do just about anything you want. Finally, you can make your own monitor by extending from an included interface and adding the assembly to the install folder.

For our current project, I see a definite need f0r the existing monitors we are using (highlighted in green above), add in WMI for BizTalk, and we are a good way thru our monitoring requirements. One thing I see missing, is a email monitor, but this could be added via a PowerShell script, or custom assembly. Another thing missing, is a way to kick off a process (actually something missing from other monitoring software as well). Monitoring is great, but it can't tell you something is wrong if it doesn't know it's supposed to check something.

Something that might be interesting, would be to add a set of wrappers around the BizUnit tasks and turn them into monitors. This would give me more support for BizTalk, add missing support for email, and add support for staring a process for automated tests. I need to look into Polymon more to make sure that there is functionality for manually invoking a monitor, as well as monitoring different things at different intervals. If it doesn't well, it's open source, so I can always add it.

My only concerns are comments people have made about database performance and size. There is an item in the roadmap to help address the size issue, and some work around for performance. I guess I just need to get it installed and see how it runs. Again, it's open source, so changes can be made, ideally, back to the project itself to help foster it's growth.

Wednesday, September 12, 2007 5:11:01 AM UTC  #    Comments [0] - Trackback
Tools
 Monday, September 10, 2007

Following the lead of Scott, here is my list of tools that I use, as well as tools that I have come across, but have not used (but that sound really cool). Tools may be listed twice if they fall into multiple categories.

Legend

  • $ - Costs Money
  • $$ - Costs Money and I have actually purchased (vs. using a free version)
  • % - Have not actually tried yet
  • Free - This product is free.
  • * - Indicates a note about one or more of the above descriptions

 

  • Internet
    • ie7Pro (Free) - Pluging for IE7 that adds things like spell check, ad block, download flash content, etc.
    • Simp Lite (Free) - Seamlessly encrypt your IM conversations using this program. The free version only lets you encrypt one type of IM (i.e, MSN, but not AOL, AOL, but not MSN).
    • Team Viewer (Free *) - Free for non commercial use. This is a remote desktop sharing program. Useful for those times when you play the role of tech support for family and friends.
    • WinSCP (Free) - Free secure FTP program. I use this for connecting to and transferring files to VMWare ESX Server.
    • YouSendIt ($ Free) - Free and Pay versions. I've used the free version to initiate, and receive large file transfers.
  • Pocket PC / Smart Phone
    • PdaNet ($) -  Install on your computer and smart phone to enable your computer to user your smart phone as a modem.
    • PHM Regedit (Free %) - Registry editor for your pocket pc.
  • Programming
    • Xsd.exe (Free) - Just because I have no other place to write this down, included with VS, and probably the .Net SDK, is the XSD.exe command line tool. It generates a class (partial class option) from xml or schema file for use with the xml serializer.
  • Sql
  • Utilities
    • ISO Recorder (Free) - Shell integrated utility for making ISO images. You can make ISO's from existing CD/DVD's, or from a folder on your computer. It also support burning CD's and DVD's (Vista). The latest version supports Vista, and there are 64bit versions available. 
    • SyncBackSE ($$) - Sync, backup, restore files between a source and destination. I use this for keeping files in sync between by laptop and desktop, laptop and external HD, external HD and home computer. I've been using the free version for over a year and love it. I have finally decided to spend the $30 and purchase this product. $30 gives you a license to install on up to 5 computers, now that is a great deal. One of the licensed features I am taking advantage of is the FTP sync option to back up this blog to my local PC.
    • Virtual Clone Drive (Free) - Mount .ISO images (and .img images from MSDN). Works on Vista, and under Win XP as a limited user.
    • WinMerge (Free) - File and Folder diff tool. You can launch this directly from SyncBackSE
  • Expression Media Encoder (Free %) - Encode rich media for Silverlight.
Monday, September 10, 2007 1:31:39 AM UTC  #    Comments [0] - Trackback
Tools
 Sunday, September 02, 2007

A friend of mine recently inquired about how he could gain access to an old Windows server he had running, for forgot the admin password. I pointed him towards this software, which I have successfully used in the past.

There is a new version since the last I checked that now supports Vista, and more disk controllers. I was starting to run into some newer laptops from HP with SATA controllers, which did not have drivers included on the password reset disk. Hopefully this new version will have those drivers.

Sunday, September 02, 2007 6:21:51 PM UTC  #    Comments [0] - Trackback
Tools
 Saturday, September 01, 2007

All I wanted to do was make an ISO of a CD so that I could keep it on my server for use with VMware Server. I didn't think it should be that hard, I have Nero 7 ultra edition, surely that can create a prefect ISO copy. Nope, no go, couldn't find the option to create anything other then a Nero image file.

Onto ISO buster, which I had installed a long time ago. I'm pretty sure I used it to create an ISO before, but it just wasn't working out. I was able to create an iso, but it wasn't bootable like the original. /sigh

Off to Google to search. 4th hit on a search for free iso tool led me to DoISO whish is a GPL ISO Creation utility. A quick download and install, and I was off and running. Creation process was a success, selected it as my image for my VM CD-ROM drive, and, didn't boot.

Back to Google, and found ISO Recorder. Lists support for XP and Vista, and it is free. So far so good, however, looking at the user guide, it struck me, that I already had this installed, I had just forgot about it. Trial #3 for making an ISO was then underway. Success, created the ISO, and it was bootable.

Summary:

ISO Recorder created a perfect ISO copy from a CD. Note to self, check to see what you already have installed before going off in search of something else.

Saturday, September 01, 2007 9:09:52 PM UTC  #    Comments [0] - Trackback
Tools
Archive
<August 2008>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Adam Salvo
Sign In
Statistics
Total Posts: 146
This Year: 72
This Month: 3
This Week: 0
Comments: 8
Themes
All Content © 2008, Adam Salvo
DasBlog theme 'Business' created by Christoph De Baene (delarou)