Powerd by dasBlog RSS 2.0
 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
 Tuesday, September 11, 2007

I just picked up a new server off EBay to replace some aging hardware. I am now the proud new owner of a HP DL380 G3. I'll be updating this post after I get the server in, and setup.

Tuesday, September 11, 2007 6:41:42 AM UTC  #    Comments [0] - Trackback
General | Technology
 Monday, September 10, 2007

I need a way to keep certain documents in sync between multiple computers at home and at work. At work I have a desktop and laptop, and am looking to pick up a used Tablet PC for note taking (since the laptop is configured as a desktop replacement). At home I have a desktop, and a laptop (although I do not use it much, it's mainly for the wife).

What type information

  • Meeting Notes at work, User Groups, etc
  • Notes from printed and on-line media.
  • Scratch pad for project ideas
  • Scratch pad for things to do (mode detailed then tasks, and probably not going to happen soon)

Where do I want this information

  • Available on all of my computers
  • Preferably without requiring an Internet connection 
  • Easily share information with others via email, Internet (i.e. blog), internal share point site(s).

Concerns

  • Offline availability
  • Getting out of sync between various data storage locations
  • Some stuff I would not want sync'd to the computers at work.

Options: Below are the options I have come up with in alphabetical order. They are a combination of sync techniques and documentation software.

  • Blog with offline editing tool (i.e. Live Writer)
  • Folder Share
  • Groove
  • Manual Sync 
  • OneNote
  • Sharepoint Server (Personal)
  • Wiki with Offline Editor and Sync 

Current Solution (In Trial): As I wrote this post, it became clear that there is no one solution, and even more so, I was really looking to solve 2 different problems. The first, is, how do I get organized, the second, is, how do I sync files.

  • Continue to use Live Writer and blog as I have been. The information for the blog is meant to be shared with everyone on the Internet.
  • Start using OneNote, synchronized with Groove, for meeting notes, project ideas, and general life organization.
  • Look into using Groove or FolderShare to sync files between different computers. This requirement might go away as we start using Sharepoint at work more and more.

 


Blog

I've already started using a blog to share information with others, as well as take notes for myself. I'm currently writing this post offline with Live Writer, and will later post it online.

Pros:

  • Already setup and using
  • Easy to share with others
  • Options for offline editing, and offline availability


Folder Share

Folder share is a free file synchronization service provided by Microsoft. I'm currently using it to synchronize my IE favorites and MP3's between multiple computers. I could use a variety of software to create and manage documents, and upon saving, the files will be sync'd between the computers I have setup.

Pros:

  • Will work with a wide variety of software
  • All Pro's from other document management options (assume con's are addressed by using different document management programs for different needs)

Cons:

  • Concerns over syncing files in a document editing environment (i.e. if you are smart, you save every couple of minutes, or the program you are using auto-saves. This could cause issues file Folder Share)
  • The best way to set up the files you want to sync, would be to put them under 1 folder. However, this might mean you will be sharing stuff you don't want to

Groove

A new collaboration application that ships with Office 2007 enterprise and ultimate, or can be purchased separately. A quick note about Groove and OneNote. If you setup a file sharing workspace, it will work. A blog post indicated that even more seemless support will be forthcoming in a future release. I can see Groove replacing folder share, but have to look into it more.


Manual Sync

I put this here just to be complete. I don't even want to go into the details of why manual sync is not the answer. It becomes so tedious, and error prone that I have just given up on it. Hence the need for the blog post.


OneNote

This is a document editor program, and requires some form of sync application. I really like the new 2007 version, it has a ton of new features, so many, that I think I might raise my target price on a tablet PC.

  • It has support for multiple notebooks, sections within a notebook, and pages within each section
    • There is a new collapsible view on the left that gives a view of all notebooks and their sections
    • Link to other pages, making it more like a Wiki
  • Capture parts of a web page and put into a OneNote page
    • Recognizes text in pictures, allowing you to search
  • Live sharing session over the Internet, turns a page into a white board that everyone can write on.
  • Flag items, and then view items by their flag.
  • There is also a good amount of outlook integration, and with that integration, comes a bit of integration with Sharepoint.
  • OneNote Mobile
  • Inline Calculator
  • Insert files as printouts. So if someone sends you a excel spread sheet, print it to one note, then you can write on it.
  • Attach files to one note pages
  • Audio and Video Recording

For sharing, there are some options. It has support for multiple computer use, however, the supported options don't work well for my situation right now. The supported options are, file share (which I don't have between work and home), Sharepoint (works is not publicly accessible, and I don't have a personal one at the moment), or USB flash drive (not sure if carrying around a USB drive is desired, although a 4GB drive on the key chain wouldn't be too bad). A personal Sharepoint server, as well as either a VPN connection at home, or VPN (should have it in 2 months), might make the folder share option a reality. VPN at work would also open up the sharepoint server at work. Finally, there is limited support in Groove (as noted above)


Sharepoint Server (Personal)

My web hosting provider, provides WSS as an add on for $19.95/year. This would open another option for the OneNote approach


Wiki

While most people think of Wiki's being Internet based, you can run them on your home computer. Why would you want to? For me, the Wiki is one of the best document editing applications out there. They have built in support for versioning, and you can easily create new "documents" and link them so easily. A the same time I setup this blog, I downloaded some Wiki software that has a internet version, as well as a desktop version (same code base) that runs in Cassinni. My plan was to use SyncBack and FTP to keep the internet and desktop version synced, but I have yet to test this.

Pros:

  • Versioning
  • Easy to add and link pages/documents

Cons:

  • Untested offline solution
  • Pretty much limited to a web page (although you could link to a word document for example)
Monday, September 10, 2007 4:14:35 AM UTC  #    Comments [0] - Trackback
Technology

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 09, 2007

Utilities:

  • PdaNet - Used for tethering your smart phone to computer via Bluetooth or Active Sync.
  • PHM Reg Edit

 

  • Mogul Tips and Tricks 1
    • Improve A2DP Bluetooth quality (post #4 - Untried)
      • HKLM\Software\Microsoft\Bluetooth\A2DP\Settings
        UseJointStereo: change DWORD value from 1 to a 0
      • HKLM\Software\Microsoft\Bluetooth\A2DP\Settings\MaxSupportedBitPool
        Increase to 50
      • HKLM\Software\Microsoft\Bluetooth\A2DP\Settings\BitPool
        Increase to 50
    • Post #8 talks about changing scripts for ringtone/vibrate/led flash characteristics
  • Unknown Source
    • This edit allows you to see the duration of your Vision connection along with a button to disconnect it. You see it in the bubble that is displayed when you tap the Vision icon.
      • Navigate to: \HKLM\ControlPanel\Phone'
      • Click the bottom menu 'edit'
      • Select new dword value
      • Change the value name to "Flags2" (no quotes).
      • Select the 'hexidecimal' button.
      • Type 10
      • Click ok.
      • You should now see in the 'name/data' section:
      • Flags2 16 (0x00010)
      • When done, reset the device.
    • Turn off IR Beaming, it's on by default, and affects battery usage
      • Settings\Connections\Beam
Sunday, September 09, 2007 3:51:44 AM UTC  #    Comments [0] - Trackback
Technology

Slashdot had a post about using Google Earth to search for missing adventurer, Steve Fossett. Usually the imagery from Google Earth (and MS Virtual Earth) is several years old. However, the company that supplies imagery for Google Earth updated the imagery for the area on Monday. Amazon.com us using it's Mechanical Turk service to accept submissions from Internet users who think they have spotted something.  According to Steve's web site, they have already identified 3 previously uncharted aircraft wrecks.

Sunday, September 09, 2007 2:04:18 AM UTC  #    Comments [0] - Trackback
General
 Friday, September 07, 2007

Writing documentation is not something I like to do. People always like to list the reasons why you should document, and today, I was reminded of why documentation is important, and was thankful that I had put forth the effort to write the documentation.

I am working on re-writing a piece of static code that handles the rules for processing data, into a more dynamic approach uses the WF rules engine. I had started this several months ago, and according to my notes, worked on this last, July 12. Finally, after 2 months, I have been able to get back to work on the rules, and thanks to the documentation I had been writing (in the form of notes), I was able to get back up to speed fairly quickly.

I think the key in this instance, was to write down notes as I came thought of them. Usually I hate writing stuff down when I'm in the early stages, because it always changes. However, this time writing notes down as I went has helped out allot, and so far, has not had to be updated as much.

So remember, the next you are debating about writing something down, it may not just be for the benefit of the next developer who comes along, it may be for your own benefit.

Friday, September 07, 2007 10:17:17 PM UTC  #    Comments [0] - Trackback

This is just a quick post of web testing against popup's and Ajax using the included tools in Visual Studio Test edition. In my current project we are using Telerik controls for our web application. We are trying to take advantage of the rich Ajax support offered by the Telerik controls, but had concerns over a lack of support from the web testing tools. I decided to do a quick test, and much to my surprise, I was able to do a great deal of testing using just the web recorder in visual studio. Our UI has alot of pages with Ajax enabled grids, and to edit the record, you click a button on the row, and a window pops up up with all the details. I was able to edit the record in the popup window, save, use the ValidateText feature, close the window, have the grid update, and again, use the Validate Text feature to make sure the change persisted.

According to the resources I have listed below, I was going to have alot more trouble then I did, and would probably need to use fiddler to catch the http traffic and inject it into my web test. So far, that has not been the case, I can only hope it continues to be this easy. I will update this post if/when I start to run into issues.

Resources:

Friday, September 07, 2007 10:08:11 PM UTC  #    Comments [0] - Trackback

 Thursday, September 06, 2007

I wish I could do more then just rehash other people's posts. However, one of the purposes for this blog is a place for me to write down stuff I'd like to visit in the future (such as sample code). Scott has posted his forth installment in a series he entitles "The Weekly Source Code".

Of the links posted this week, the ones that I plan on looking into more are:

  • WPF Contrib - Contrib for WPF. I'm not using WPF in any projects at the moment, however, this contrib looks like it could jump start some sample applications at home. A good way to get started with WPF.
  • Wintellect Power Collections - From the web site, and Scott's post: "
  • Some of the collections included are the Deque, MultiDictionary, Bag, OrderedBag, OrderedDictionary, Set, OrderedSet, and OrderedMultiDictionary."

Ones that I am going to save for when a need arises:

The reason I am interested in the mail ones, are that I will be sending out email notifications in my current project, thru BizTalk. In order to test the application, I will need to be able to login to test mailboxes and retrieve messages. While .Net has some built in support for email, 3rd party libraries can't hurt.

Thursday, September 06, 2007 3:01:12 AM UTC  #    Comments [0] - Trackback
Programming
 Tuesday, September 04, 2007

?? Operator

Scott's most recent post on LINQ, showed me that I still have alot to learn about C#. The ?? operator was casually thrown into the mix as if it were as common as +, =, or a semi-colon (;).

It took a couple of searches on Google to find what I wanted, but I finally found a page on MSDN that lists all of the C# operators in 2.0, and the one I was looking for.

The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand.

 

int? x = null;

 

//This will assign the value of -1 to y

int y = x ?? -1;

 

//Change x to an integer, and it will be assigned to y

x = 5;

y = x ?? -1; //y now = 5

 

Extension Methods in .Net 3.5

Another tidbit I ran across, was the introduction of extension methods in C# 3.5. Basically, extension methods allow you to create a method that is associated with a type, such that you can call it (and have intelli-sense support), as if it was defined as a method if the type's definition. For example, the Subtract() method of the DateTime type, is defined in the type. With extensions, you can add some code to define a method foo(), such that you can do something like DateTime.foo(); Extension methods are most closely compared to similar functionality in Ruby.

I found an example on Phil Haack's blog which I tried out myself, and reproduced below (note to self, learn how to format code examples nicely).

namespace ExtensionMethods
{
 public static class Extenders
 {
  public static DateTime Ago(this TimeSpan value)
  {
   return DateTime.Now.Subtract(value);
  }

  public static TimeSpan Minutes(this int value)
  {
   return new TimeSpan(0, value, 0);
  }
 }

 class Program
 {
  static void Main(string[] args)
  {
   Console.WriteLine(20.Minutes().Ago()); //With Extensions
   Console.WriteLine(DateTime.Now.Subtract(new TimeSpan(0, 20, 0))); //Without Extensions
   Console.ReadLine();
  }
 }

}

I got intelli-sense on after typing Minutes(), but no intelli-sense on 20. I was also curious to scope, and where extension methods will need to be placed, and how to access them. Moving the Extenders class outside of the main namespace, I got compile a compile time error stating that int doesn't have a Minutes method (standard 2.0 error), as well as text indicating that there were no extension methods (new for 3.5 obviously). Adding a using statement allows the code to compile. I then tried duplicating my extension namespace and adding a 2nd using statement, and got the expected compile error about ambiguous methods. To me, I can see trouble in the future with conflicting Extension Methods in different namespaces. It doesn't look like you can use a fully qualified name either.

This MSDN article gives some technical info on Extension Methods (it's an article containing info on several new language features). Here is some of what I got:

  • Extension methods are declared by specifying the keyword this as a modifier on the first parameter of the methods.
  • Extension methods can only be declared in static classes.
  • Instance methods take precedence over extension methods, and extension methods imported in inner namespace declarations take precedence over extension methods imported in outer namespace declarations.

There is some debate going on in the comments section of the blog post where I got the example from. Some people seem to think that while easier to read (debatable itself), it makes for harder to maintain code. Others claim it breaks OO principles.

See Also: ScottGu's post on Extension Methods

Tuesday, September 04, 2007 1:59:37 AM UTC  #    Comments [0] - Trackback
Programming
 Sunday, September 02, 2007

The latest version of Google Earth (4.2), which adds a feature to look at the sky, has a hidden feature as well. Marco's Blog reports that a flight simulator is now included in Google Earth.

To enter the flight simulator, press Ctrl+Alt+A. Here is a list of commands. There is supposed to be joystick support, and possibly force feed back, you can also use the mouse to control Aileron and elevators.

I tried it out for a few minutes, and I could see where it could get addictive. It's not MS Flight Simulator, but it is free, and doesn't take up gigabytes of storage space on your HD. Also, it's a little easier to hide on your work computer ;)

Download Google Earth Here (Just click agree to the ToS).

Sunday, September 02, 2007 10:10:08 PM UTC  #    Comments [0] - Trackback
Technology

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
Archive
<September 2007>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
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 2009
Adam Salvo
Sign In
Statistics
Total Posts: 176
This Year: 0
This Month: 0
This Week: 0
Comments: 10
Themes
All Content © 2009, Adam Salvo
DasBlog theme 'Business' created by Christoph De Baene (delarou)