newtelligence poweredRSS 2.0
# Monday, March 08, 2010

While I usually run as a normal user on Windows and elevate permissions as needed, sometimes this just doesn’t cut it. Today I needed to be able to start and stop a windows service as a normal user running a piece of code (actually it’s a integration test). With UAC enabled, even though I was an administrator, I still couldn’t access the service. After a bit of searching, I came across the following Server Fault question, which had an accepted answer.

1) Get the existing security descriptor using “sc sdshow Servername” from an Administrative command prompt. If the service has spaces in it, surround it in quotes. This will output something like:

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

I bolded the D: and S: to denote their importance for step 3 and 4.

2) Get the SID for the account you want to grant access to. I was able to use the same command prompt because I was running it as me, just with elevated permissions. If you need to do this for a different user, you will either have to log in as them, or use a different tool if you can’t log in as them.

c:\>whoami /all

3) Insert the following into the string you got in step 1. Make sure to replace the sid below with the sid you got in step 2. Also, this must be inserted before the S: in the string obtained in step 1.

(A;;RPWPDT;;;S-1-5-21-0000000000-0000000000-0000000000-0000)

4) Run from an administrative command prompt

sc setsd “servicename” sc sdset "servicename" D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPDT;;;S-1-5-21-0000000000-0000000000-0000000000-0000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

I’ve bolded the string from step 3 that was inserted. There is a space after “servicename” but none after that.

This page talks about the different options you can set.

Monday, March 08, 2010 5:03:17 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Tuesday, February 02, 2010

IIS 7 introduced the concept of the Application Pool Identity, but it was not used by default. This was changed in IIS 7.5, and it is a change I fully endorse. The Application Pool Identity is a special account that is created per application pool which adds additional process isolation between your application pools.

The tricky thing is granting permissions to this special account. The account has a fully qualified name of “IIS AppPool\ApplicationPoolName”. However I was unable to get this account to be added via the GUI. I needed to resort to the command line tool icacls, which has a grant syntax of:

icacls path /grant “IIS AppPool\ApplicationPoolName”:RX

This will add the user with “special permissions” for reading. After you do this, the account shows up in the GUI and you can go in and just check the standard boxes for read rights (Read & Execute, List Folder contents, Read). Once you check these boxes the special read permissions that were initially set are removed, and everything looks like it usually does.

For network access, the AppPoolIdentity accesses the network using the machine’s domain account which is DomainName\MachineName$. The article says that this is how NetworkService worked, and that this makes it easy to add ACLs by just granting them to the Machine Account. Maybe I am unnecessarily paranoid, but I would prefer to grant access to network resource on a per app pool basis, which most likely requires a separate domain account. However, since I do not need network access right now, I will proceed with the AppPool Identity and write a follow-up post when I need to go down the domain account path.

You can read more about the AppPool Identity here: http://learn.iis.net/page.aspx/624/application-pool-identities/

Tuesday, February 02, 2010 8:46:42 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Wednesday, January 20, 2010

I’m doing a little shopping for a virtual dedicated or cloud hosting provider. I need RDP access to install what ever I need, so Azure is out for the time being. The Amazon pricing page and model was giving me a headache, but after taking a break and coming back, I figured out the correct order to click thru the various information screens and have figured it out. Bandwidth, storage and performance needs are also quite small for the time being, but I wouldn’t consider running with anything less then 2GB of ram for Server 2008, and 2 virtual CPUs is nice.

Minimum Feature Set:

  • 2GB ram
  • RDP connection
  Amazon CrystalTech GoGrid MaximumASP OrcsWeb #1 OrcsWeb  #2
Plan Name 1 Small 24/7 Hyper-V VPS Small Biz MaxV Plan B B C
Total Monthly Price 97.86 $279.95 202.89 $178 $129.99 $179.99
Setup Price $0 $199.95 $0 $0 $0 $0
IP Addresses 1 2 10 2 1? 1?
VCPU 1 ?? 1 2 1 2
RAM 1.7 2 GB 3 2 GB 2 2
Disk Quota 160 GB 120 GB 60-120 GB 40 GB 60 120
Backups Included $80 + $25 setup Included Included Included Included
Bandwidth 10GB In
10GB Out
2000 GB Free Inbound, $0.29/GB Outbound 200 GB 250 GB 250 GB
Trail       30 Day Free Trial    
Notes     For billing, assume 10GB/mo outbound transfer. Disk quota is based on compute unit   Scott Hanselman uses them  

 

Cloud Computing

Cloud computing is all the rage, but its still in its infancy. As such, features are missing and things are still a little rough around the edges. For true elastic computing, Amazon is the way to go (remember, I was not looking at Azure for this comparison). The reason for this is that you can not stop your instances on GoGrid without deleting them. I’m not even sure if I would consider GoGrid a cloud provider without the ability to stop running instances, they are more like an on-demand virtual dedicated provider. GoGrid does offer some advantages over Amazon. They have free inbound data transfer and hybrid hosting. Hybrid hosting allows you to use their “cloud” offering for your web front end, while you can setup a managed dedicated server with some serious hardware for your backend database.

One downside to both services is that you can’t change the specs of an instance after it is created. Since both services let you create your own images (which you have to pay to store), once you get a base machine setup, you can create an image of it and then create new instances from your own image which would cut down on time to deploy. Hopefully the ability to reconfigure an instance is a feature on the roadmaps for both services. If you are going to be doing anything more then single server setups/testing, I would recommend storing your data on the Amazon ESB or GoGrid’s CloudStorage which offers non-instance persisted storage. GoGrid gives you 10GB free, while for the same space, Amazon would charge $1/month. Remember, the ESB or CloudStorage is where you keep your images as well, so it will fill up fast if you storing Windows Server 2008 Images (which clock in around 10GB).

While for the most part, ram is ram, the compute definitions differ between Amazon and GoGrid. Amazon offers standard and hi-compute units, while GoGrid just offers more virtual cpu’s with the larger instances (more ram). In my pricing comparison, I was using standard compute size instances from Amazon, which are the equivalent of 1.0-1.2 Ghz Opterons or Xeons. On the GoGrid side, they claim that 1 compute = a P4 2.0 Ghz, so there is a bit of a difference there.

If you have a lot of variation in your load, then Amazon will beat out GoGrid just because you don’t have to run around deleting instances, you can just shut them down. If you have a constant known load, then Amazon still beats out GoGrid, as you can take advantage of Amazon Reserved pricing. Reserved pricing requires you to pay a fee up front, but you get lower per hour rates for the duration of the term, 1 or 3 years. However, I like the GoGrid management UI better then the Amazon Control Panel.

Amazon:

  • 2 Small (1.7 GB, 1 compute) Front end web servers
  • 1 Small (1.7 GB, 1 compute) App Server
  • 1 Large (7.5 GB, 2 VCPU @ 2 compute) Database server
  • Load Balancer (Costs extra) + 25 GB of traffic (didn’t increase cost)
  • 25 GB inbound
  • 100 GB outbound
  • Price: $706

Amazon with Reserved

  • Same as above but using their reserved pricing option for a 1 year term. There is a upfront cost of $1538, but I divided by 12 and added to the other monthly fee for comparison
  • Price: 377.67

GoGrid

  • 2 2GB (1 compute) Front end web servers
  • 1 2GB (1 compute) App server
  • 1 4GB (3 compute) Database server
  • Load Balancer (Free)
  • Free Inbound
  • 100GB outbound
  • Price: $652

Conclusion

I’m going to give the Small Instance a try at Amazon, just to see how it works, but will probably end up going with one of the OrcsWeb virtual dedicated servers. For what I currently need, the OrcsWeb provides an economical, and probably more important, simple solution.

Wednesday, January 20, 2010 2:38:00 PM (GMT Standard Time, UTC+00:00)  #    Comments [4] -
Technology
# Monday, September 28, 2009

While trying to adjust the memory of a VM from 512MB to 256MB, my VM entered an endless BSOD reboot cycle.

Background:

  • Upgraded install of VMServer 2.0.1
  • Brand new Windows Server 2008 64bit Guest OS (Server Core)
  • Started out with 512MB of ram for the guest. Installed OS, renamed computer, joined domain
  • Shut down the VM and adjusted the memory

Tried all safe mode options, and would always get a Stop code of 0xD1 for ACPI.Sys, DRIVER_IRQL_NOT_LESS_OR_EQUAL. Remember to press F8 to get to the windows boot options menu which allows you to disable automatic restart, which will let you examine the stop screen in detail.

I did quite a bit of searching but could not come up with anything for how to resolved this. I even stopped searching for VMWare Server specific stuff and just searched on the stop code. Finally I shut the VM down and changed the memory back to 256, and it finally worked.

So I went from 512MB to 256MB, failed, back to 512MB, failed, and then back to 256MB and it worked. The only thing I can think of was that the memory reconfiguration was not successful behind the scenes in VMWare.

I’m not all that comfortable moving forward without a definitive solution, but it will have to do for now.

Monday, September 28, 2009 4:04:07 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Thursday, May 21, 2009

Some recent events have led me to do some experimenting with Windows Embedded Standard, or WES. This is an upgraded version of Windows XP embedded. WES adds support for .Net 3.5 and Software Update Services, which are the top two new features that caught my eye. One of the nice things of WES over say, WinCE, is that you have a much richer development ecosystem to work with. Everything from the Full .Net Framework, WPF, WCF, to a huge library of open source tools and utilities, and not to mention driver support.

I’ve done some WinCE development in the past, and one of the best tools you can have, is the WinCE emulator. So when it came to WES, I wanted something where I could test stuff out without needing any hardware. The following walk illustrates what is needed to get a basic (and I do mean basic) WES image created and running in a Hyper-V vitalization environment. The following instructions were created were created from with help of the the Windows Embedded Standard (WES) help files, and a video tutorial by SJJ Embedded Micro Solutions.

Each WES image must include 7 Core Components.

  • Computer Componet/HAL
  • Shell Component
  • Language Component
  • NT Loader Component
  • File System and format components
  • Logon Component

I am going to select two macro components (macro components are components that are only made up of other components) in order to get those 7 core components. One of the macro components is provided for us, the other is one that we will create in order to get a HAL for a Hyper-V based VM.

  1. Installed Windows Embedded Standard Trial edition on a Windows XP Pro SP3 Virtual Machine in Hyper-V
  2. Navigate to C:\Program Files\Windows Embedded\utilities and run Tap.exe as an administrator. This creates a devices.pmq file in the same directory as the Tap program
  3. Open Component Designer and from the File menu, choose Import. Select the .pmq file you created in step 2, then click start.
  4. After the import is complete, click Save from the file menu to save the .sld file
  5. From the tools menu, choose component database manager
  6. On the database tab, click import and browse to your .sld file created in step 4 and then import.
  7. Close Component Designer and component database manager
  8. Open target designer and create a new target named HyperV_Test (or whatever you want to name it)
  9. Your new component should be at the bottom of the components tree on the left hand side of the IDE, double click it to add it to your target
  10. Under Software\Test & Development, double click the Runtime Quick Start Helper marco. This adds the explorer shell, FAT, NTFS and a few other essentials
  11. Go to the Configuration menu option and click check dependencies. This will add additional components, such as all those required by the Component we created from the .pmq file.
  12. From the tools menu, click Build. According to the video by SJJ, you must select release, but I think they were using the previous version of Target Designer. I only tried release. Also, you will want to specify the exact destination that you want the “image” to be created. Target Designer will delete everything in the destination folder. I decided to use a folder structure like /WESBuilds/HyperVTest/
  13. Copy the resulting image to a bootable partition. I created a new VHD file and attached it to another VM running XP. From within the running VM, I used Disk Management to partition, format and mark the partition as active. Finally I copied my image files over to the root of the new partition.
  14. Attach VHD to a new VM and boot. The first time an image is booted, the First Boot Agent (FBA) runs and completes the creation of the image.

So what did I end up with? Well, I had a WES image running in Hyper-V that used 210MB of disk space. This is a very, very basic image. The shell has an empty start menu, there is no logon, no command prompt, no networking, pretty much the bare minimum. So while this would be a good start for a final production build depending on requirements, its not very functional for development. I hope to be able to expand on this image and add the following:

  • Hyper-V extensions?
  • .Net Framework 3.5 SP1?
  • Networking and Firewall?

One question I have is, if you leave something out of an image, is there anyway to add it at a later time? For example, if you have no requirements for a web browser, and a media player initially, but need to add support in the future, what is the best way to implement?

Lot’s of potential with WES, and I’m looking forward to learning more about it.

Thursday, May 21, 2009 10:00:00 AM (GMT Daylight Time, UTC+01:00)  #    Comments [2] -
Technology | Virtualization
# Wednesday, May 20, 2009

Below is a quick overview from the TechEd 2009 Keynote. It was focused on the IT side of things (vs. the developer side).

  • Group Policy settings for BitLocker to Go. One option will dis-allow writing to a removable drive if BitLockerToGo is not enabled for that drive.
  • AppLocker
    • Specify allow or disallow by publisher
    • Use rules like version 1.0 or higher from Publisher X and Program Y. This allows you to allow a specific application to run, but not have to update the rule when a new version comes out (like you did in the previous version).
  • Problem Steps Recorder
    • End-User can record problems as they re-produce them. Creates a zip file that contains a compiled html file and a series of images.
  • PowerShell V2 included in Windows 7.
    • PS v2 can target remote computers.
    • Also looks like it comes with a IDE for power shell.
  • Enterprise Desktop Vitalization
    • Seamless virtualization experience for end users. They really don’t even know stuff is virtualized, aside from possible the window chrome looking different, and a red outline around the window
    • VMs can be configure to expire
    • Restrict VMs such that data can not be copied off of them
  • Office 2010 preview released in July
  • Server 2008 R2 and Windows 7
    • Server 2008 R2 is 64bit only
    • Server 2008 R2 and Win7 tracking for holiday 09 release
    • Mount and interact with VHD files in Win7 and R2, boot from VHD, and patch VHD’s while they are offline.
    • New Active Directory Undelete feature
  • Iain McDonald – Server Manager from MS
    • Option to “View Script” in the Management GUI’s and see the power shell script that is being executed. Allows you to quickly learn how to write scripts for management.
    • Says that most people who have Live Migration (VMWare) don’t use the automated migration, but manually move stuff around.
    • Clustered Hyper-V in R2 will support migration between physical hosts with different specs, processors, etc.
    • Remove core dispatcher lock to allow apps live SQL Server to scale very well
    • File Classification Infrastructure:
      • Find files by keywords and then set policies for those files. For example, search for all documents with company confidentiality statement and move them to a secure folder leaving a symlink in the original location, and setup links in a SharePoint site.
      • OCR technology built into R2 for searching for text in images.
      • Use FCI to do housekeeping, clean up old files, etc. For example, if a file is older than 10 years, or hasn’t been modified in the last year, delete the file. However, send a warning to the owner of the document 15 days before.
    • Exchange 2010
      • Search e-mail by keyword and apply policies
      • Outlook Web Access (OWA) is now able to view protected documents
      • OWA can search documents in e-mails
    • System Center Virtual Center
      • Shows the “View Script” feature
      • Migrated a VM running streaming video from one host to another with no noticeable disruptions.

 

From Twitter:

  • Something called “Windows Phone” announced in a Windows Mobile 6.5 session. Confirmed as a phone (hardware) created by Microsoft running Windows Mobile 6.5. Actually it sounds like it is made by HTC and looks like the touch HD. Can’t find anything online about this as of yet.
  • The ability to ignore a thread in Exchanged 2010
Wednesday, May 20, 2009 3:37:33 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Saturday, March 07, 2009

Tonight I was doing some load testing on an application I’m developing. Initially I was testing without SSL, but then needed to switch over to SSL, but hadn’t setup by development server with a cert. I jumped onto ssl4net (a free online certificate management site) and created a new cert for my server and proceeded to import it in IIS 7, but got the error “A specified login session does not exist. It may already have been terminated”.

I jumped around on Google for a bit and found this post by Omri Gazitt, and another post by FreakCode. The first talked about granting everyone permissions to the file that corresponds to the cert (on my computer the RSA certs are located at C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys). I remember doing something similar to this before, but it just didn’t seem right. The second post suggested marking the certificate as exportable when importing in IIS, and I had already done that so that wasn’t my problem either.

I decided to remove the cert, and try using the MMC Certificate snap-in to import the cert. I also gave it a friendly name from with-in the MMC. Going back to IIS and selecting this cert in the binding dialog no longer produced an error. I don’t know if it was how I imported it, or the friendly name, but it is/was too late to go back and play with it any more.

Saturday, March 07, 2009 5:30:10 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology

I was having some problems with file permissions, my web hosting provider and DasBlog. It seems to have been related to compiling and e-mailing the daily status report, so I've turned that off for now. Hopefully it will stay running.

I have been toying with the idea of hosting my stuff back at home like I used to back in the day. I was the first of my friends to get broadband, thanks in part to UW-Madison and my dad (paying the bill). Great thing about the UW-Madison DSL was that they let you host all the services you wanted to. At one point I was running a mail server on linux (can't remember which one), web, DNS, and a dedicated Unreal Tournament server.

I've been working on upgrading my home gear. I recently purchased a slew of UPS's (thanks to Circuit City going bye-bye), and while they won't protect against anything longer then probably 20 minutes, still good enough for my "mission critial" website ;). Also picked up two more WD Caviar Black HD's to create anothe Raid-1 array for my VM's. Also on the to-do list is to setup a pfSense firewall so I can have a properly segmented network between my internal services and external (DMZ).

The only thing I'm missing is my iSCSI array so I can setup clusterd hyper-v machnes with quick motion to avoid downtime, but again, we're not talking mission critial stuff here. I think I can afford 10-15 minutes of downtime each month while I patch all the VM's and the host machine.

Saturday, March 07, 2009 2:53:20 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Friday, February 27, 2009

If you are reading this, it means I’ve successfully updated to the latest version of DasBlog, version 2.2. I’m calling this the 1.1 version of my blog, with a couple of point releases scheduled in the near future focused on a new theme, proper support for uploading images, and code formatting.

I don’t even know what version of DasBlog I was running before this, so I wanted as clean an upgrade as possible. I decided to start with a completely clean install, then copy my posts over, diff the config files and see what happens. Since I run my blog in a virtual directory with a sub domain pointer, I created a new virtual directory to do testing, and then updated the sub domain pointer when everything was ready to go.

Here are the steps I took to upgade to DasBlog 2.2:

  1. Download DasBlog 2.2 from the CodePlex Site. I chose the web-files.zip file.
  2. Unzip the web-files.zip to a temp directory
  3. Copy my content folder from my old blog to the dasblogce folder in the new temp folder. I actually backup my content folder daily from my hosting provider, so I already had this locally.
  4. Leaving everything else the same for now, I zipped up the contents of the dasblogce folder and uploaded it to my hosting provider
  5. Create a new sub folder on the root of my website called blog2
  6. Extract the contents of the zip file I uploaded in step 4 to the blog2 sub folder.
  7. Using WinMerge, diff the web.config file between the old and new site
  8. Again, using WinMerge, diff the SiteConfig folder
  9. Finally diff the theme I am using, re-adding support for
    1. Google Analytics
    2. OpenID
  10. Test
  11. Update blog.salvoz.com to point to the new folder
  12. Final updates to configuration
  13. Update backup routine to pull from the new folder

All in all it wasn’t too painful to do a clean update, and I’m glad I went that way. Total time start to finish was about 2.5 hours.

Friday, February 27, 2009 5:09:32 AM (GMT Standard Time, UTC+00:00)  #    Comments [1] -
General | Technology
# Saturday, January 24, 2009

While looking for a fix to my TestDriven.Net problem (couldn’t get it to run all Xunit tests in a class or assembly), I came across an open question on Stack Overflow from a developer having the same problem. For some reason I felt compelled to answer this question once I found the answer. After a bit of searching and registry browsing, I found out that I needed to move a registry key from the Wow6432node to the “regular” section of the registry.

So back to Stack Overflow I went to answer. This being the first time I’ve answered anything on there, I figured I should sign up so I get “credit” for my one whole answer. While I have a couple of accounts from other places that support open ID, I felt that claiming my blog URL would be the techie thing to do.

I picked Claim Id from a list of open id providers because I thought Scott Hanselman recommended it, but couldn’t remember for sure, but it looked ok. Sign up was easy, and they even provided instructions for claiming my blog URL, including the HTML code, complete with my username. If you view the source of my blog page, you will see the following two lines in the <Head> section.

<link rel="openid.server" href="http://openid.claimid.com/server" />
<link rel="openid.delegate" href="http://openid.claimid.com/asalvo" />

In DasBlog, I added these to lines to the homeTemplate.blogtemplate file for my current theme. This is also where I placed the code to enable Google Analytics awhile back. Speaking of Google, I came across their Ajax API which I talked about briefly, and though as long as I’m in here editing for openId, might as well try adding the search functionality.

At this point it’s close to 2am, and I started this around 10:30pm. The whole ajax google search turned into a real chore to get working even close to the way I would like it. However, since I invested all this time into it, I felt like leaving it as is for now. There are some CSS entries needed to get the results to show up where they do on my page, so if you want, take a look at my CSS file as well (the relevant stuff is at the top under center column stuff).

I’d like to revisit this post when I update my theme, hopefully in the near future.

 

Final Script located in the head section (feel free to view source on this page as well)

<script src=”http://www.google.com/jsapi?key=YourKey” type="text/javascript"></script>  

google.load('search', '1.0');

    function OnLoad() {
      var controlRoot = document.getElementById("searchControl");

      // create the search control
      coreSearch = new GSearchControl();
      coreSearch.setLinkTarget(GSearch.LINK_TARGET_SELF);
      coreSearch.setResultSetSize(GSearch.LARGE_RESULTSET);

       // prep for decoupled search form
      var searchFormElement = document.getElementById("searchform");
      var drawOptions = new GdrawOptions();
      drawOptions.setSearchFormRoot(searchFormElement);
      drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);

      // populate - web, this blog, all blogs
      var searcher = new GwebSearch();
      searcher.setSiteRestriction("http://blog.salvoz.com/");
      searcher.setUserDefinedLabel("Salvoz Blog");
      coreSearch.addSearcher(searcher);
      searcher = new GwebSearch();
      searcher.setUserDefinedLabel("The Web");
      coreSearch.addSearcher(searcher);

      coreSearch.draw(controlRoot, drawOptions);
    }
    function doCoreSearch(q) {
      coreSearch.execute(q);
    }
    google.setOnLoadCallback(OnLoad, true);

    </script>

Saturday, January 24, 2009 7:52:43 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
General | Technology
# Friday, January 23, 2009

This is the third and final part to my write up on MDC Chicago 2009.

VSTS 2010

The VSTS 2010 presentation was done by Angela Binkowski, the Midwest evangelist for platform tools. In terms of the quality of speakers, Angela was the best, and one of the better speakers I have seen overall. She is knowledgeable, enthusiastic, and seems to really like what she does, which helps break up the monotony of power point presentations.

The presentation of VSTS 2010 focused on two areas, Testing and Architecture. Based on what I saw, I am really glad I have VSTS Suite so I can get my hands on these new tools when they come out (the current CTP seemed a little buggy, so I’ll probably wait for a more stable release).

TFS - UI: Rich text box control for the history window in TFS. I know there are allot more new features in the 2010 version then just this, but this was pretty much the only one called out. I know Buck Hodges posts stuff regularly to his blog about TFS and new features.

TFS – Builds: Adding support so that you can use Windows Workflow in your builds.

Test Impact Tool: Uses code coverage to indicate which tests you should run in order to validate a change. Since it uses code coverage, it shouldn’t matter if you use MSTest or another testing framework.

While it sounds like a good feature, I don’t see the need for it if you properly write (and break up) your unit tests. One of the core principles behind unit tests, is that they should be written to execute fast so that developers will take the time to run them all. Even if you take a step back to widen the scope to include integration and regression testing, you are “supposed” to run all the tests before you do a check-in.

Gated Check-in: Allows you to run your continuous integration tests before the source code is committed to the source control repository. Since this is a resource intense task, it was suggested that you should only enable this when you are getting close to a release milestone to make sure a bug doesn’t get into your repository.

Functional UI testing: Full support for testing Web pages and Windows Forms applications. By full support, I mean that your test will invoke the controls in the web browser or windows forms app, and not just simulate it (i.e. creating a HTTP request like MS WebTest does today). On the web side, this can be compared to WatiN, Watir, etc. A GUI is provided that helps you record your tests. The example showed tests being created in MSTest (no surprise there), but hopefully there is extensibility built-in to allow for other testing frameworks to be used.

I’ve used the WebTest tool in MSTest, and it works pretty well for getting something setup quickly. I think it works better for load testing, then functional testing, although I haven’t played around with the generated code, which may provide better support for functional testing.

I just started using WatiN, and it will be the standard to which I compare the web test version of this new tool to. I don’t have a windows forms testing tool, and really haven’t seen any free ones out there, so the MSTest version will be a definite addition to my toolbox.

Test reproduction tool (Camano): This is a new tool targeted at testers who follow manual test plans. A set of controls, along with the test script is displayed on the left side of the screen, while the application being tested is displayed on the right. I couldn’t tell if this was all in one window, or if the application runs normally and the test tool attaches to it.

So what does the tool do? It records every action taken to a timeline, and records what the user sees to video. The tool also records the testers system settings, and in the event of an exception, a historical debug trace is captured and attached to the test run. All of this information is then seamlessly transferred to TFS and stored as a new bug work item. The tool is not part of Visual Studio, so testers don’t have to install VS, just the testing tool.

I have been told that the tool doesn’t required TFS, and that it should be possible to package up all of the information that would normally be attached to a work item in TFS, and send it manually to a developer (for those shops that don’t use TFS). I’m not sure on what the licensing for just the testing tool will be.

Architecture – Diagrams: Visualize dependencies by namespace, and reverse engineer sequence diagrams from code were the two diagrams shown. I’ve seem the visual dependencies in nDepened, but it’s nice to see it in VSTS. The reverse engineering of code to create a sequence diagram looked really slick, and I can’t wait to use it. Both additional should help address the problem of stale documentation, as well as helping to get developers new to a project up to speed.

Architecture – Validation: There was some type of validation in the architecture edition before, but it was at a very high level. I tried it out once, and it just didn’t click for me. The validation feature introduces in 2010, allows you to create a more traditional architecture diagram composed of your various layers (UI, Business Domain, DAL, Infrastructure etc), define allowed relationships, and then drag and drop your classes onto the different layers. VS will then make sure that classes do not make calls to other classes unless they are allowed to (for example, your UI can’t use the DAL directly).

As with the new visual dependency and sequence diagrams, this is something that I think will be useful, especially for when you bring new members onto a team. It too also addresses the issue of stale documentation, as it will need to be updated in order for your solution to build.

While you need Architecture edition or Team suite to edit the files, they are supposed to be available in a read-only mode to any other version of Visual Studio. The validation is also supposed to work across all versions.

Dotfuscator: At the end Angela turned the presentation over to someone from the company that creates Dotfuscator, which has been included with VS since it’s initial release in 2001 I believe. The guy walked, talked and acted like a salesman, but at least he knew his product.

The three features talked about was the ability to add instrumentation, anti-piracy, and centralized logging to your application. All of the work that dotfuscator does, happens after your application is compiled. The Dotfuscator tool inspects the IL and lets you select, down to the method level, where you want to add the instrumentation, logging etc.

The instrumentation feature includes items such as what features are your customers actually using (by injecting a call into a entry method that defines your feature), how many people are using trial versions of your software, etc.

The anti-piracy is a special type of instrumentation that is supposed to alert you if someone tampers with your software. My thought is, if someone hacks your software, wouldn’t they be able to hack the dotfucscator code as well?

So how do you get all this information? The third feature was the centralized logging feature, that allows you send all this data back to your company via the Internet. Of course this brings up huge privacy concerns. It was suggested that could add a opt-in screen for more general purpose metrics, but what about the anti-piracy functionality? Would you actually give someone the option to opt-in to the anti-piracy feature, and who would actually opt-in? Even as a software developer, I take issue with software that reports what I am doing without my consent, even if I was “pirating” the software. Software companies do no own my PC, nor do they pay for my Internet connection.

Asp.Net Futures

The final session of the day was on Asp.Net futures, and showed stuff for both Asp.Net web forms and Asp.Net MVC. Most of the material on Asp.Net MVC was stuff I was already familiar with given my recent deep dive into it.

Asp.Net 4.0 focuses on 4 themes:

  • Better support for standards (HTML, CSS, etc)
  • Easy to create LOB and extend data driven web sites
  • Support pattern based development (MVC, TDD)
  • Re-invest in the core, address top customer pain points (new caching interface)

The new features in web forms talked about were:

  • Generate client ids (should make scripting and testing easier)
  • Transparent support for CSS (default to CSS instead of tables)
  • URL Routing (Already available in Asp.Net 3.5 SP1)
  • View State
    • Ability to disable view state on the page, but enable it on a specific control
    • Ability to disable view state on a control, but enable it on a sub control
    • Better support for no view state on grid/list view

There was a pretty nice demo showing off Asp.Net MVC and Asp.Net Dynamic Data. Dynamic Data is a recent addition to asp.net that allows you to quickly generate CRUD functionality on your web site, and have it updated as your data (schema) is updated. The view is all controlled by templates so you can arrange the controls created however you want. I’m still missing the a-ha moment with the dynamic data stuff, and need to sit down and play around with it.

All in all, I really enjoyed the trip down to Chicago for MDC. I hope that Microsoft continues to offer these one day local events after each of the three major conferences. Ideally, I would like to see them happen a little sooner after the conferences, as they are really targeted towards those who didn’t go to major conferences. I would also like to suggest that the goody bag contain a DVD with all of the major conference presentations.

Friday, January 23, 2009 4:12:32 AM (GMT Standard Time, UTC+00:00)  #    Comments [2] -
Technology

This is my second, in a three part series on MDC Chicago 2009.

Azure Services Platform

I  ended up going to the first two Azure sessions. I had intended on only going to the overview and then skipping to Oslo, but after watching the overview, I wanted to see what was involved in deploying an application to Azure.

Azure is short for the Azure Services Platform, and consists of Windows Azure, .Net Services, SQL Services and Live Services (I have also seen slides that show SharePoint Services and Dynamics Services). Microsoft is attempting to build a flexible services platform allowing for the ability to easily scale out (assuming you don't code poorly), which is based on Internet standards such as Http, ReST, etc.

It is easy to get the platform (Azure Services) and Windows Azure confused, so I will try to stick to the convention of calling out Windows Azure, with just Azure referring to the entire platform.

You can use all of the same tools that you do now, like Visual Studio and Asp.Net, but they are also going to allow for interoperability with Java, Ruby, and PHP to name a few. The move to the cloud is viewed as an evolutionary step, not a revolutionary change. A simple analogy can be made between the desktop operating system and how it abstracts the hardware and low level operations, and Azure abstracting the data center and infrastructure.

Windows Azure

The Windows Azure portion of the platform is divided between applications and storage. The storage abstractions currently provided are:

  • Large pieces of data - Blobs (file streams in a future release)
  • Service State - Simple non relation tables, (caches in a future release)
  • Service Communication - Queues (locks in a future release)

It is important to note that the storage providers in Azure do not make up a relational database. Advanced data storage is provided by another part of the platform, SQL Server Data Services. The storage can be accessed from your Windows Azure applications, as well as from anywhere on the Internet using ReST.t

On the application side, there are two roles defined, web and worker, with each role configurable to run as 1 or more instances which allow for scaling. The easiest way to describe the roles is that the web role is your asp.net application, and the worker role is a background process or service.

The demo showed an Asp.net application being created and deployed, but I didn't see anything that would prevent a Asp.Net MVC, or WCF application from being deployed (although a wcf application might be better suited for .Net Services) but don't quote me on that. The demo also showed work being passed from the web role to the worker role by way of a queue. Again, the queue could also be accessed via the ReST interface from your on-premise applications.

Code that runs in the worker role is isolated from the outside world, in that you can not control it from the code running in the web role, or from a location outside Azure. However, given the description in the presentation, it should be able to initiative an outbound connection. The worker role code should be used for used long running processes, like a credit card authorization service.

.Net Services

.Net Services consists of three parts, a message bus, access control and workflow. This enables you to begin taking advantage of the Azure platform by moving some of your existing components to the cloud, while your other components remain in your current data center (on-premise).

The message bus allows for firewall friendly communication between you and your business partners. All communication starts out in relay mode, which routes traffic thru the message bus. In the background, your application with the help of the message bus is attempting to establish a direct connection, and if it is successful, the relay connection will be dropped in favor of the direct connection. Services are published to a service registry and exposed via an RSS feed for discovery and subscription.

The access control piece provides for centralized authentication and authorization. Currently, Card Space, Windows Live, and Username/Password are supported authentication providers. When a client logs in, they are authenticated and then provided with a saml token that identifies what access they have. This token is then provided by the client in the request to your services. There is a web interface for you to manage users and their permissions. 

Finally there is the workflow aspect, which sounded like Windows Workflow (WF), but in the cloud. There wasn’t too many details presented on this at MDC, so I’ll have to go watch some of the PDC videos and do some additional research.

Sql Data Services

Sql Data Services can  be thought of as the premium storage solution of the Azure platform (compared to the simple storage provided by Windows Azure). Like the Windows Azure storage, it is accessible from anywhere on the Internet, not just from within Azure. As of the current CTP, only the database part of Sql Data Services is available, but analytics and reporting pieces are under development. The presenter stated that Sql Data Services was the furthest along out of all of the Azure platform services and to expect some more functionality before it goes live.

The presentation did go into some detail about how you go about creating and using Sql Data Services, but my notes are not good enough to write up here without further research. I can say that it’s not the same as creating a traditional database with tables, rows and columns in SQL server. That is, this is not a hosted SQL server instance.

Live Services

There wasn’t a whole lot of technical details on how live services fit in. Most of the presentation was at a higher level and talked about how Live Services has been around for awhile (currently has 460 million unique users), and how it will enable developers to span the cloud, client and device.

An verbal example was given were a developer created a java script or SilverLight application that a user was able to install to their mesh, thus installing it on all of their computers and devices. From there, the user would be able to share that application with friends, and your application would spread like a virus.

There was a separate session on Live Services which I didn’t attend, so that’s one more thing on the “requires further research list”.

Building your first Windows Azure Application

Following the overview of the Azure Services Platform, was a session on writing, and deploying an application to Windows Azure. There are a couple of prerequisites for developing for Windows Azure:

  • Windows Azure SDK - Jan 2009 CTP. (Unsure what version the demo was done on)
  • Visual Studio Tools for Azure
  • Sql Server 2008 or Sql Express 2008
  • IIS 7
  • .Net 3.5 SP1
  • Vista SP1 (If installing on Vista)
  • Run VS as a Admin (required for local dev fabric)

A comment was made during the talk about getting things setup, that you must have a sql server instance name ./SqlExpress in order for Azure to work. However, I am not sure what version of the CTP the demo was using, as the January 2009 CTP was officially released after the conference. This is the one time were you need to run Visual Studio as a full administrator. This is because the local dev fabric is started by Visual Studio when debugging, and the dev fabric requires full admin rights.

Developing an application for Windows Azure is pretty straight forward. In the first part of the demo, a simple Asp.Net web forms application was developed and deployed without any special coding at all. In fact the application was first launched as a regular web application, and then launched on the local dev fabric for Azure.

So what is this local dev fabric anyway? The local dev fabric is a local version of the Windows Azure platform that allows you to debug and test your applications before deploying them to the cloud. You start up your Azure project from VS instead of your web project to launch the Dev Fabric. Once launched a simple windows form application shows up that allows you to view the number of roles you have running, and a debug window. The debug window shows Azure system events, as well as user defined logging, which can be called by RoleManager.WriteToLog.

Configuring your Azure application requires you to manually edit two configuration files. This reminds me of manually editing WCF config files when WCF was first released. We were assured that additional tooling will be made available in the future for managing these config files.

Deployment to the cloud is a manual process at this point in time, and it, and all management is done on a web page. There are two pre-defined “environments” that your application lives in, Staging and Production. The difference between the two was described as a configuration change, and not a separate instance of your application.  It took over five minutes for the application to start up the first time, so be aware of this.

My thoughts on the Azure Services Platform

When I first head about Azure during the week of PDC, I was less then impressed and not all that interested. I have/had a personal dislike of cloud based services (services which I don’t control, can’t see my whole database, etc). In the case of the Azure Services Platform, this dislike was based on not fully understanding the platform.

After attending the two sessions at MDC, I have warmed up towards Azure, and am trying to find some free time to try it out. However, I think that I, along with many others, are waiting to see what the pricing structure will be. While I think it’s understood that this is designed for the enterprise, I get the feeling that most of us early adopters are hoping that the pricing scales as well as the performance of the platform. While Windows Azure may seem to be overkill for say hosting a blog, it’s stuff like that, that allot of us early adopters are going to be looking to do, before we stick our necks out and recommend it for the companies that we work for.

Friday, January 23, 2009 3:37:58 AM (GMT Standard Time, UTC+00:00)  #    Comments [1] -
Technology

Last week, I attended MDC 2009 in Chicago with the Wife, and we both had a really good time. We drove down the night before and stayed at the Hyatt, where the conference was being held in order to avoid the 3-4am wake up call we would have had to endure to get to the conference on time.

We got a surprisingly (I thought) good rate on a room at only $145/night, and while the room was nothing special, the hotel overall was very impressive (guess I don't travel much). The Hyatt has two towers and a sprawling under ground maze of shops and conference rooms (and hidden parking areas). The fitness center was top notch, complete with a full line of life fitness weight equipment, free weights and numerous treadmills and ellipticals. The treadmills and ellipticals each had their own 8" touch LCD screen which controlled the machine and let you watch whatever TV show you wanted. The only thing missing was video inputs so you could hook up portable dvd player. Although if you had an RF convertor you could probably manage something.

Registration Tuesday morning was from 7:00 to 8:30, and we made it down stairs by 8. The woman checking us in had never seen a husband and wife at the same conference before. Breakfast was good, and there was plenty of good seating (round tables) for eating, although you had to turn your chair to watch the keynote.

The keynote started about 8:35 with the same video that was shown at PDC during one of the WPF sessions I believe. I did not attend PDC, but have watched quite a few of the videos. There were some interesting demos showing off what you can do in WPF, and that it is in fact suitable for line of business applications (and not just pretty rotating cubes). There was also some Windows 7 goodness shown, including the ability to mount and boot from VHDs. We were supposed to get Win7 on DVD, but it wasn't ready yet, so we’ll be getting it in the mail. I already have it downloaded from MSDN, but I’ll probably save the blank DVD and just install off USB.

I really wasn't sure what tracks I wanted to attend, although there were a few I knew I could probably pass on. Reading thru other peoples write-ups and such, I wish I could have attended a few more sessions, but I’m now refocused on watching as many of the PDC videos as possible.

This was originally going to be one long blog post, but in the end it was too long, so I’ve broken it up.

Friday, January 23, 2009 3:15:23 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Friday, December 26, 2008

Merry Christmas to me, my Dell Mini 9 arrived today. I ordered it with a 16GB hard drive and 1GB of ram and Linux. I have plans of installing Windows 7 beta after I get it from attending MSDN Dev Con next month, but there was no way I was just going to wait around with the mini not in use until then. The mini does not come with an optical drive, nor do I have access to a USB optical driver (although it might be a wise investment), so I needed to learn how to install from a USB storage device.

While I found numerous how-to’s, the following You tube walk thru, which uses a utility program from this forum http://www.boot-land.net/forums/?showtopic=4900 is the best way to go in my opinion. It takes care of formatting your USB device, coping files from your Windows XP CD or other location (i.e. if you use a program like vLite to create a stripped down XP install), and setting values for the unattended install answer file (a real bonus feature). Once I found the tool, it was pretty easy to get XP installed, and once XP is installed, it’s like any other computer, where you can just copy your network drivers from a standard USB thumbdrive, then access the rest of your files via your network. I also installed an ISO mounting tool to install applications like Microsoft Office which I store as .Iso.

So far I have the following installed:

  • Office 2007
  • Live Mesh
  • Live Writer
  • Combined Community Codec Pack
  • Pidgen + Simp
  • Foxit PDF Reader

Spent all day yesterday at the in-laws watching movies, surfing the Internet and reading some e-books and the mini worked like a champ. Battery time is around 4 hours which is pretty good on wi-fi, given the small, lightweight form factor. I can get over 3 hours on my wife’s new Dell studio 17, but it weighs in close to 9 lbs. I’m going to keep the mini at work and try to take meeting notes on it, hopefully being able to ditch my pen and paper.

I’m also looking for some type of mounting hardware so I can mount it on the station bike I use so I can use the mini to watch movies during my 2 hour endurance rides. I currently have an older 14” laptop that I take with, but I could easily get 4 hours worth of video playback time out of the mini if I turn the Wifi off. If I’m able to mount it to the station bike right in front of me, the 9” screen will be more then big enough.

I am very happy with my Mini so far, and I am looking forward to running Windows 7 on it in the near future.

Friday, December 26, 2008 8:46:24 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Monday, December 22, 2008

Opened up my OneNote notebook today on my primary work computer and noticed all of the notes I had entered over the weekend were not there. Reviewing the news tab on mesh (local copy), I saw that my last update was 4:37pm, but couldn’t figure out what the date was. I was able to correlate the times with the date/times shown on the full news feed on the Live Mesh desktop and figured out that I stopped syncing sometime last Thursday.

I was able to add news entries locally, but they wouldn’t show up anywhere else, and no changes made on my work computer would sync to any other location, in addition to my work computer not receiving any changes. I have another computer here at the office with Mesh installed, and it was working, so thankfully the IT staff at our parent company didn’t block another service at the firewall.

Here are some of the things I tried:

  • Sign out and then back in
  • Sigh out and exit and restart Mesh
  • Set Work Offline on/off
  • Reboot computer

Starting to get a little annoyed at this point. Looking at task manger, I could see both Moe and MoeMonitor there, but they wouldn’t do anything. Usually at start up they chew thru quite a bit of CPU. I decided to try to remove the sync setting for one of my folders, but got the error “503 Mesh service not available”. There was not much help via a Google search on the error message so it was time to resort to a reinstall. At first I tried the repair option offered in Add/Remove Programs (or what ever it’s called in Vista/Server2k8), and that more or less failed. It looks like it partially uninstalled, so I just went back in and did a full uninstall. Then I downloaded the 64bit client and re-installed.

Thankfully I’m back up and running and things seem to be working OK at this point. I’m hoping my conflicts were minimal. I read that there will be an update after the holidays with better conflict resolution which will be cool.

Monday, December 22, 2008 10:19:12 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Monday, December 15, 2008

Have you ever had one of those days where you just want to give up your job in computers/technology and go get a job at Walmart? I had one of those today, and I'm not even at work. I was just trying to setup some virtual machines to work on some projects at home, and nothing went right.

First I tried to install 8GB of ram into my main workstation at home. That failed and took me a couple of hours to figure out that I needed to manually adjust the memory timings and voltage in order to get all 4 stick of ram to work. Along the way I thought I would update the bios to see if that work, and ended up removing my raid-1 array from existence. I didn't see the warning on Gigabyte's page about re-enabling the Raid setting, but I did see it in a forum post, however I forgot to actually do this. So on the one hand it's party my fault, but on the other hand I think it's poor design that the Raid setting get's set to disabled on a bios update.

I didn't realize that I was missing my raid array for 4 hours or so. In the meantime, one of my other computers blue screened on me with a stop code of 1a while trying to copy a base VM image. Nice. I think I'll leave that alone for awhile.

Actually I was able to make some decent progress on getting my VM's setup on my primary workstation, until I realized I had a G drive, that had the exact same contents as my mounted data partition, that used to be my Raid array. Oh crap. Rebooted and re-enabled the raid setting, and the array definition was still intact thankfully. Back into windows and I still have a G drive and my mounted partition is no more.

Spent some time and a couple of reboots to get my Raid array mounted to an "empty folder" like I had it before. The raid monitoring utility said that everything was working, but I started getting errors popping up saying that I needed to run chkdsk. Again, several reboots later, I was able to run chkdsk and not get any errors. Final problem was that allot of my NTFS security permissions got messed up as well. I think it's all better now, as I was able to perform a defrag, and I'm running the raid application's analyze and repair utility as well. If I run into any more problems I'm going to have to backup 500GB worth of data and reformat.

Now on another PC, I was trying to setup Virtual Server, and the VM won't start, and pretty much crashes virtual center. Guess I'll try VMWare server instead.

Oh, and since I have a share on my primary workstation, which resides on my Raid Array that is part of my Windows Media Center library, Windows Media Center was pretty much non-functional until after it was back online. It just sat there trying to connect to a non-existent share....brillant. How do you explain that one to the wife?

Monday, December 15, 2008 4:42:21 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Thursday, December 04, 2008

Previously I talked about how Sony Vaio laptop’s have the hardware assisted virtualization (VT) flag locked off, which means no Hyper-V. I took the Sony back and spent 2 hours at Best Buy with the wife looking for a new laptop (I really wanted her to see what she was getting), and settled on an HP dv7-nr1025nr.

  • P8400 Core 2 Duo
  • 4 GB of Ram
  • 320 GB 5400 RPM Hard Drive
  • NVidia 9600 GT 512MB
  • 17” @ 1680x1050
  • Altec Lansing Speakers w/Subwoofer (these actually sound good in a quiet room).

Overall, a solid machine, and the wife really liked the 17” display, as she realized the larger display would allow for more content on the screen at one time, which is good when doing remote tech support (which is what she has to do sometimes). I still like the physical characteristics of the Sony, but at least HP doesn’t cripple the processor, and the video card is a lot better.

Upon arriving home, I see a Dell flyer in the mail advertising Studio 15 and 17” laptops with discrete video cards on sale, and promptly throw it away, thinking “don’t need this anymore”. I plug in the HP and turn it on, and am greeted with a blue screen, stop code 0x7E. No problem I think to my self, probably a bad driver or something, I’m going to reformat anyway. I actually executed the built in system restore so I could create restore DVD’s, allowing me to reclaim all my HD space.

After the restore DVD’s were complete, I ran memTest86 for 12 hours and then proceeded to install Windows Server 2008. No problems, got everything installed, hyper-v running, all is good. Since Hyper-V disables standby and hibernate, if you leave the laptop unplugged while running, you will drain the battery, which is what the wife did  Tuesday night. We plug it in, turn it on, and bam, blue screen, stop code 0x7E, now that’s interesting I say to myself. Turn the machine off, wait 30 seconds, turn it on, works perfectly. Shut it down, reboot, update the bios, etc, working fine. I decided to shut it down before I went to bed as a “final” test, and was rewarded with a 0x7e blue screen the next morning.

I spent some time analyzing the MEMORY.dmp file using WinDbg, as I’ve always wanted to try that out, but I couldn’t figure anything out. Usually you should see some type of driver implicated, but I didn’t. I made the decision that it just wasn’t worth it to screw around with this problem on a new computer, so back to Best Buy I went.

When I returned the Sony, I said I didn’t like it, and no questions were asked (maybe cause I said I was going to do an exchange). This time I said it doesn’t work, and my reward for being honest was a 10 minute detour to the Geek Squad bench to have them “check it out”. After explaining 3 times to the “technician” what the symptoms were, he promptly says “I think I know what it this, it’s a bad video driver”. I knew better then to open my mouth, and just let him turn it on, and the laptop did not disappoint, it blue screened on cue.

So I’m thinking to myself, sure wish I had that Dell flyer I got last week. Thankfully Dell finally has the Studio laptops with the discrete video cards on their site (again), so I think I’m going to go with one of those. At this point I’m trying to decide if it’s worth the extra $$ to go with the uber 1920x1200 RGB LED display or not. They also have the Mini 9 for $99 deal, and I can’t pass that up, although I have to add an extra $125 to get 1GB of ram and the 32 GB SSD.

Look for a future post on how this all ends, and a review of the Mini 9.

Thursday, December 04, 2008 7:45:58 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Friday, November 28, 2008

After spending some time (obviously not enough time) searching for a new laptop for the wife (and yes, a little for me) I settled on a Sony Vaio FW-139 that was on Best Buy's outlet center. It had a newer Intel Core 2 Duo P8400, 3GB of ram, an ATI HD 34xx video card and a 16.4" screen all for $849.

I ordered it on Sunday night and it was here on Wednesday, so far so good. It came with Vista 32 bit and I wanted to put Server 2008 64bit so I could run hyper-v. No problem I thought, I'll just wipe it and install from scratch. I even followed the instructions to create a recovery dvd so I could restore the laptop to it's factory state.

So I got Server 2008 64bit installed, and went to go look for drivers, and here is where I realized I made a mistake in picking out this laptop. I assumed that Sony would have 64bit drivers for this model, well they didn't. I spent about 4 hours rounding up drivers and got just about everything working. Not a big deal I though, and it was my fault that I didn't check on the driver situation first.

Went to fire up hyper-v and it said it couldn't start because the VT flag was disabled. No problem right? Just reboot, go into the BIOS and.....wow, this is the most bare bones bios I have EVER seen. I can change the boot order and that's it. Off to Google I went, and found out I was not alone. Sony disables the VT flag and does not give you an option to enable it. Some people have gotten creative and used a dos utility to edit the NVRAM directly, but the register you have to edit varies by model/bios.

I think someone said it's listed in the fine print somewhere that the VT flag is disabled, but even if that's true, I'm still calling BS on this. I'm not going to mess around with the NVRAM on a brand new computer for something that shouldn't be disabled in the first place.

Tomorrow I will be going to Best Buy to hopefully return the Sony and start my search once again. I really liked that P8400 processor, as it runs at 25w instead of 35w, which is what the T5800 runs at (the T5800 is the most common processor in the price range I was looking at).

Given how much time I have spent researching, I think I might up my price to $1000 and hopefully save me some time. That should give me a few more options when looking for a laptop with a discrete video card as well.

Friday, November 28, 2008 4:12:28 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Saturday, November 08, 2008

Overview

Last week my wife told me she wanted to cancel our DirectTV, because she did not think we used it enough to justify the $74.99/month we were paying. I couldn't really find any fault in her logic, other then the fact that we would pay a $120 early termination fee.

In it's place, the Wife wanted to re-subscribe to Netflix, as all of the shows we did watch, are available, and allot of them are available via streaming. So we signed up for the 2 DVD at a time plus unlimited streaming for around $14.99 I believe.

So where does the home theater PC (HTPC) fit in? Well, I figured that if we are getting rid of DirectTV, now would be the perfect time to invest in a HTPC to replace my aging modded XBox and Xbox Media Center. While functional, it lacked the horse power necessary for high quality H264 encoded videos, and windows networking was a bit of a pain.

Component Build List

I remember reading a post by Jeff Atwood early this year were he upgraded his HTPC on the cheap, and decided to work off his parts list. Since it's been almost 7 months since his post, prices have dropped, and I was able to get a relatively the same build for less money. The 2.4 Ghz AMD was replaced with a newer model running at 2.5 Ghz, and I opted for 4GB of ram. The most expensive item you can see was the case with an 80plus power supply. I had a copy of Vista Ultimate laying around that I won at a meeting somewhere. Not on the list below is a wireless keyboard and mouse (currently a MS 6000 that I want to take back and try a Logitech at the same price point as the MS one doesn't work at 10' on my lap even though it claims a 30' range). Also missing is a 2.5" to 3.5" mount adapter for the laptop hard drive.

GIGABYTE GA-MA78GM-S2H AM2+/AM2 AMD 780G HDMI Micro ATX AMD Motherboard - Retail $79.99
AMD Athlon X2 4850e 2.5GHz Socket AM2 45W Dual-Core Processor Model ADH4850DOBOX - Retail $59.99
Anyware GP-IR01BK Windows Vista Infrared MCE Black Remote Control $21.99
LITE-ON 20X DVD±R DVD Burner With 12X DVD-RAM Write Black SATA Model LH-20A1S - Retail $28.99
AllComponents 4GB (2 x 2GB) 240-Pin DDR2 SDRAM DDR2 800 (PC2 6400) Dual Channel Kit Desktop Memory Model AC2/800X64/4096-KIT - Retail $44.99
Antec NSK1380 Black/ Silver Steel MicroATX Cube Computer Case 350W Power Supply - Retail $119.99
Western Digital Caviar GP WD5000AACS 500GB 5400 to 7200 RPM SATA 3.0Gb/s Hard Drive - OEM $64.99
Seagate Momentus 7200.3 ST9250421AS 250GB 7200 RPM SATA 3.0Gb/s Notebooks Hard Drive - OEM 79.99

 

Assembly was straight forward, although the case gets quite cramped. The included power connectors are not satisfactory for an all SATA build like I was doing. I have no idea how they thought the power cables would even reach. I had to use some Molex to SATA convertors, which also served as extenders to power everything.

 

Installing Vista

Vista Ultimate installed fairly quickly as well, although it appears to hang on the first gray screen giving the impression that it's locked up. Oh, forgot to mention, the retail case for Vista is a real treat to open ;)

Here is a quick run down of how I setup my HTPC.

  • Change video card memory in BIOS from automatic to 512MB.
  • Install Vista Ultimate with SP1(64 bit)
  • Install all latest windows updates
  • Joined to domain and set static IP
  • Create _WorkstationUsers group for setting permissions. I create this local group on all my PCs so if I ever need to change user accounts, I can just add it to this group.
  • Add exceptions for remote desktop, and file/printer sharing in Windows Firewall.
  • Installed .Net 3.5 with SP1
  • Installed AMD power monitoring software. Observed processor dropping down to 1800 mhz and lower voltage
  • Created Domain User and related group for logging into the HTPC.
  • Stopped following Services
    • DHCP Client
    • Diagnostic Policy Service (DPS)
    • IP Helper
    • Tablet PC Input
    • Windows Media Center Receiver Service
    • Windows Media Center Scheduler Service
    • Windows Search
  • Add registry entry for .mkv files (see below)
  • Installed vista codec packs from http://shark007.net
    • Vista 32 bit version 473
    • Vista 64 bit version 152
  • Download Windows Media Player Classic

Vista Media Center (VMC)

I had some issues getting getting my h264 encoded videos in an mkv container to show up and play in Vista Media Center. I first  tried the Combined Community Codec Pack (CCCP) as I've had really good luck with it in the past. What I didn't realize is that it's designed for 32 bit systems (specifically the Haali Media Spliter), and VMC uses a 64bit player. After some research I found a forum post that suggested using the 32 and 64 bit Vista codecs that I linked above. After uninstalling CCCP and installing the Vista codec packs (and a reboot for good measure) I was good to go.

One thing I'd like to point out, is that when adding folders to monitor for your library in VMC, it takes quite a long time for everything to show up, especially in network folders. I would suggest leaving VMC run overnight to get everything in the library the first time.

So everything is working at this point, except for subtitles in the anime I get off the net. The easiest solution is to just drop out of VMC and use Media Player Classic. The Vista Codec pack supplies a subtitle codec that's worked with everything I've thrown at it so far.

Encoding Video

I have a bunch of DVD's I want to encode to my new HTPC. Previously I've used XVid, but the times have changed and H264 is the new king on the block. I'm using the latest dev snapshot of Handbrake (www.handbrake.fr) with the following settings:

    • High Quality Film (1800 video bit rate)
    • AC3 Pass thru

I can't tell the difference between the original DVD and my encoded file. Star Wars Episode 3 was compressed from ~7.4 GB down to ~2.4G, with full AC3 surround sound.

Registry Entry for .MKV files

Copy between the lines, paste in Notepad

_______________________________

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.mkv]
"PerceivedType"="video"
"Content Type"="video/mkv"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Multimedia\WMPlayer\Extensions\.mkv]
"Runtime"=dword:00000007
"Permissions"=dword:0000000f
"UserApprovedOwning"="yes"

_________________________________

Saturday, November 08, 2008 7:57:23 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Friday, October 24, 2008

I don’t know about your experiences with server manager, but mine are less then positive from a resource usage point of view. On decent hardware I’ve seen this peg the CPU to 100% for a good minute. Even on a multi-core system this can be a problem where you have business processes running.

Server Manager, by default starts up whenever you log into Windows Server 2008. While there is a check box that allows you to disable the auto-launch of server manager, it’s a per user setting, and you have to do it on every server you log into. Thankfully there is a solution. This article lists two registry settings that you can change that disable the auto-launch. Couple this with group policy and you no longer have to worry.

Setting Name Location Default Value Possible Values

Do not open Server Manager at logon

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Server Manager

0

0 to disable and open the window normally; 1 to enable and prevent the window from opening.

Do not open Initial Configuration Tasks at logon

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Server Manager\Initial Configuration Tasks

0

0 to disable and open the window normally; 1 to enable and prevent the window from opening.

I prefer to put a shortcut to Administrative tools on my desktop, and from there I can access only the functionality I need.

Friday, October 24, 2008 5:01:28 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Thursday, October 23, 2008

Recently there has been some talk about a bunch of us getting iPhones thru work. Even though I have vowed to never own an Apple product, I figured I wouldn’t be too much of a hypocrite if work paid for it. Well that deal kind of fell thru, but it did get me looking into an upgrade for my Mogul, as it appears I have a $150 new phone credit available to me thru Sprint.

I did do some research into the iPhone to see if I would even be able to “use” it, should work have provided one. For the most part it seems like a decent phone, however there are a couple of things that made me go out and look to see what new WinMo phones were available.

First, my 1 year old after market car stereo which has iPod support, does not have iPhone support (as confirmed by numerous posts on various forums). This isn’t so much a knock against either the iPhone or my car stereo, it just would have been a nice to eliminate the separate MP3 player I have now. Newer model head units are reported to have no problems with the iPhone, but I don’t want to buy a new head unit right now.

Second, I have grown very used to my slide out physical keyboard on my mogul. I have heard mixed reviews about the touch keyboard on the iPhone, with one of the most negative criticisms being that the keyboard/mail program will not rotate to landscape mode. There are several hacks and work around's available, but as most people point out, this is something that should have been fixed in the 2.0 firmware.

Finally, there seems to be a real need to install iTunes, and that’s probably the #1 issue I have against the iPhone. I’ve heard way too many horror stories about iTunes, the extra stuff it tries to install, etc.

Don’t get me wrong, I’m not trying to hate on the iPhone, I just don’t think it’s for me. So, what is the phone for me? After some research, I’ve narrowed my search to the HTC Touch Pro.

Specs:

  • 528Mhz Processor
  • 228 MB of Ram, 512MB of ROM
  • 2.8 VGA touch screen
  • GPS, Bluetooth 2.0 +EDR (including stereo A2DP)
  • Opera 9.5 built in
  • MicroSD expansion slot

The reviews so far have been very positive. The TouchFlo3D interface developed by HTC looks very polished, but as people are quick to point out, the TouchFlo3D UI only works with certain applications. However, for 90% of my usage, I’d be using TochFlo3D applications, including E-Mail, and the Web Browser.

The Touch Pro is supposed to have the option to connect via USB as a Mass Storage Device like the Touch Diamond (already released on Sprint), which is a huge selling point for me. I have no need for Active Sync or Windows Mobility Center since I use exchange for syncing. As a Mass Storage Device, I can just drag and drop files, and most media players support syncing. What’s even more important is that my car stereo does support Mass Storage Devices, which is how my current MP3 player connects.

There are also plenty of free applications available for Windows Mobile, and as a developer myself, it is very easy for me to write applications for it should the need arise (which I must admit it hasn’t yet). I was working on a really cool Windows CE project that got canceled earlier this year, so I haven’t been into the mobile development as much. I have a couple of ideas for a proof of concept at work that having a WinMo phone would help.

The phone should be released sometime soon, but in the meantime I need to pull my custom ROM off my Mogul and take it in for some service. The battery seems to be going, and my beloved slide out keyboard doesn’t close all the way (which I guess is a con of the slide out keyboard, the mechanism is susceptible to wear and tear).

Thursday, October 23, 2008 4:54:59 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology

A recent post by Scott had me look into how our IIS 7 servers were configured. Turns out we were not using dynamic compression (Ok, I already knew that as I’m the one who set them up), so I decided to go about installing the dynamic compression module (you can always un-enable it).

If you already have IIS 7 installed, you can go into the Role Manager and add a role service. The dynamic compression is under the performance section. Once installed, you will need to enable it via the IIS 7 management tool, or use the following command line option:

appcmd set config -section:urlCompression /doDynamicCompression:true 

The appcmd command line tool lives in C:\windows\system32\inetsrv, which is not included in PATH. You will want to review the httpCompression section in C:\Windows\System32\Inetsrv\Config\applicationHost.config to view what Mime types are compressed. By default, when you install dynamic compression, you get the following settings:

<dynamicTypes>
     <add mimeType="text/*" enabled="true" />
     <add mimeType="message/*" enabled="true" />
     <add mimeType="application/x-javascript" enabled="true" />
     <add mimeType="*/*" enabled="false" />
</dynamicTypes>

I couldn’t find a page that specifically listed mimeTypes in the context of IIS 7, but here is the full list of MimeTypes itself which should give you an idea of how you can configure compression.

 

As Scott points out in his article, you should make an attempt to justify your change, which I did by performing a simple test using a large web page (1.3 MB) we serve up, and noting the response size and time using Fiddler.

The 1.3 MB web page originally took 30 seconds to receive (I know, there is something funny going on with the network connection somewhere, but it does easily illustrate the savings compression gives). Enabling compression shrunk the response to 130KB, taking only 6 seconds.

For some additional information on compression in IIS 7 check out this blog entry by Kanwalijeet Singla.

Thursday, October 23, 2008 4:33:25 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Sunday, October 12, 2008

We setup all of our virtual machines in our new data center to run with a single virtual processor. The thought behind this was to start with the minimum and add additional resources as needed after observing our VM’s under load.

Well the time has come to add a second virtual processor to three of our VM’s, all of which are running Server 2008 data center edition. In the past, adding a second processor (or even enabling hyper threading) could cause issues due to an incorrect HAL (hardware abstraction layer) being chosen when you first install the OS. I thought I had read that this is not an issue under Vista and Server 2008, but couldn’t find anything to confirm (other then the lack of people reporting problems).

Since we are using virtual machines (VMWare ESX Server), it’s easy enough to take a snapshot and revert if something goes terribly wrong. However, the snapshots were NOT needed, as the servers booted up without issue after adding the second virtual processor.

Something I might want to consider next time would be to disable ESX’s dynamic resource allocation routine before shutting down three VM’s.

Sunday, October 12, 2008 9:29:03 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Monday, September 29, 2008

While in search of the Windows Live Hotmail for Outlook Connector (future blog post in the works), I found a small add-on that enables the ability to save office documents as PDF (or XPS). The add-in adds a new option under “Save As”, and worked well in my limited testing. This works different from other PDF utilities, in that it does NOT install a virtual printer driver.

The add-in is limited to the following programs, and sadly, outlook is not one of them, but all the other major office applications are:

  • Microsoft Office Access 2007
  • Microsoft Office Excel 2007
  • Microsoft Office InfoPath 2007
  • Microsoft Office OneNote 2007
  • Microsoft Office PowerPoint 2007
  • Microsoft Office Publisher 2007
  • Microsoft Office Visio 2007
  • Microsoft Office Word 2007

Remember, you access this add-in by going to “Save As”, not Print, like you may be used to for other PDF utilities. OneNote adds a new option under File, other applications may differ as well.

Info and Download:

Monday, September 29, 2008 2:21:08 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Wednesday, September 17, 2008

The SharePoint site I am responsible is pretty small and not used by allot of people. However, that is soon to change, as I am adding allot of content to the Wiki library for technical support and trouble shooting, and I wanted to make use of the search functionality to allow people to search for content.

So I went to the search bar, and received an error message indicating that “Your search cannot be completed because this site is not assigned to an indexer. Contact your administrator for more information.” I always find it troubling when an error message says to contact me. I started doing some searching online and made my way to the Central Administration Portal Page for our SharePoint Server. I found that you need to assign your content database to a search server, so I went to Application Management\Content Databases, selected by one and only content database, and saw that they drop down box used to select a search server was greyed out, how unfortunate.

Some more on the job training led me to Operations\Services on Server, where I saw that I was missing the “Windows SharePoint Services Search” service. Looking at the services applet under administration tools, I saw that I did have a “Windows SharePoint Services Search” service installed, and after configuring it to log on as Local System, I was able to get it started. However, I couldn’t get it to show up as a service in central administration. 

I read a couple of posts online about re-running the Sharpoint configuration wizard, so I thought I would try that. Under Start\Programs\Administrative Tools, there should be a short cut for SharePoint Products and Technologies Configuration Wizard. After starting this application, I was prompted to change various aspects of my SharePoint installation. I choose to keep everything the same. I was a little disappointed in that I didn’t see any options for adding SharePoint search, but after the wizard completed, and I went back to Operations\Services on Server, I had “Windows SharePoint Services Search” now listed, but stopped. I’m wondering if restarting the IIS Application Pool for my SharePoint server, or the Windows SharePoint Services Administration service after starting the Windows Sharepoint Services Search service would have yielded the same results?

Back in Central Administration, I clicked on the Start link in an attempt to start the Search service, but was redirected to a configuration page. On this page I was prompted to select a Service Account, Content Access Account, Search Database, and Indexing Schedule.

  • Service Account: It specifically says you can not use a built in account, such as Local Service or Network Service. I choose to use a domain service account that I used for some related services on this server. This account should be the same account as the Content Access account (read my section below about the content sources cannot be accessed error)
  • Content Access Account: This account should be separate from the service account and only have read-only access to the content database. I decided to create a new local account to achieve this. I made this account a member of the Guests local group, and added it to the data_reader role in the content database.
  • Search Database: Accepted Defaults
  • Indexing: Accepted default value of every 5 minutes to start, and then I went back and changed it Daily between 3-4 am.

After clicking start, the page took awhile to redirect, but I didn’t get any errors or warnings. I checked the Search service, and as I assumed, the log on account was changed to the domain account I specified. I also had a new database named WSS_Seach_ServerName, so it looks like things were at least setup correctly.

Jumping back to Application Management\Content Databases and selecting my lone content database, I was now able to select a search server. Running a search on my SharePoint site seemed to work, although no matches were found, which could be because the indexed had not run yet.

Five minutes later, and still no search results for obvious terms. In the Timer Status page on Central Administration, I could see that the Search Process was running every five minutes, so I went to the application log figuring errors would show up there. Sure enough, I was getting “The update cannot be started because the content sources cannot be accessed.” every five minutes. Checking my database permissions, I see that my service account has dbo permissions to the content and search databases. My content serach account, has data reader permissions to the content database (which I added previously), and dbo permissions to the search database (added automatically during setup it seems).

Back to Google. I found a discussion thread where someone stated that the Service Account and Content Access Account need to be the same, and re-affirmed the requirement that the account used only have read only permissions. So I went ahead and stopped the search service via Central Administration, deleted the search database, and then reconfigured and started the search service. The search database was re-created, and I noticed that my processor pegged at 100% for awhile and my search database grew in size from 4mb to 31 MB indicating that something actually got put in it.

Since I had stopped and reconfigured the search service, I had to reselect the search server for my specific content database under Application Management like I did before. After waiting five minutes for the indexing to run, I was getting search results.

Wednesday, September 17, 2008 12:26:00 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Sunday, August 17, 2008

With the release of all Visual Studio 2008, TFS 2008, and SQL 2008, I set about upgrading I set about upgrading my main development laptop. Currently I have VS 2008, Team Explorer 2008 and SQL 2005 client tools installed. I opted to download the full installer for the SP1 updates as opposed to the bootstrapper options.

I knew I needed to install VS 2008 SP1 prior to TFS 2008 SP1, but for some reason decided to go with the SQL upgrade first. As I mentioned before, I currently only have the client tools installed, as I like to keep my SQL servers on virtualized development servers.

The SQL 2008 installer starts off by checking for .Net 3.5 SP1, and if it does not exist, it will install it on your machine, along with a hotfix for windows installer. After this is complete, you are required to reboot your machine. I opted for the upgrade option, hoping that everything just works. I’m not sure if you can do a side by side install with SQL 2005 client tools and 2008.

After selecting my options, an upgrade check is preformed, and it failed because I have not installed VS 2008 SP1 yet. OK, I wanted to install that anyway, so I canceled out and launched the VS 2008 SP1 installer. As with most service packs for Visual Studio it takes awhile to apply, but my experience was more positive then the service packs for VS 2005. No reboot was required, so I moved onto the TFS 2008 SP1 install.

So I must have mis-understood or did not read something with the TFS 2008 SP1 installer. It looks like it’s for the server components only, and VS 2008 SP1 handles upgrades to Team Explorer as well. This blog post makes reference to this, and even says that if you are installing Team Explorer on your TFS server, to install VS 2008 SP1. Looking at Help/About Microsoft Visual Studio, I see the version number for VS 2008 is now 9.0.30729.1 SP, and looking at the details for Team Explorer shows the same version number.

Jumping back to the SQL 2008 installer, I proceeding with my update. However it wasn’t really an update as much as it was a side by side install. Remember, I was just doing the client tools, had I had the database components installed, I assume that those would have been upgraded. I have a couple of SQL 2005 instances I can try an upgrade on to see what happens. The install went very smoothly and there were no issues.

First impressions of the new SQL Management studio are extremely positive. I saw the intelli-sense demo at the launch event, but can’t really test it as I already have SQL Prompt installed. My job as a Pseudo-DBA just got easier.Here are some new features I found.

  • When running queries, you can view the results in traditional grid view, but also as text (with options to choose your column delimiters), or export to a text (.rpt) file.
  • The new activity monitor actually provides useful information (well alot more information then the old one ever did). It reminds me of the task manager in Windows Server 2008. The new activity monitor does not work with SQL 2000, but I will be eliminating all SQL 2000 boxes by the end of September. As 4 line graphs across the top you get % Processor time, Waiting Tasks, Database I/O and Batch Requests/Sec. On the bottom you get 4 collapsible lists: Processes, Resource Waits, Data File I/O and Recent Expensive Queries.
  • The database publishing wizard from Visual Studio is now included. Actually there are a lot more options to control how your scripts are generated.
  • There are some very nice default reports built in now as well. The reports were an add-on for SQL 2005, but they are now included (and you can of course write your own). Stuff like Disk Usage, Index Usage, etc. I hope I can find a way to schedule these to be emailed.
  • New option to generate Create and Drop Script (along with the original separate options of generate create and generate drop). There is also an option to generate as SQL Agent job.

Finally I went ahead and upgraded our TFS server to SP1. First thing I did was install this month’s Windows Updates, as I was going to have to reboot anyway. Next up was Visual Studio 2008 SP1, as I have VS and Team Explorer installed. Unfortunately I was out of room on my system drive so I had to take the extra step of expanding my virtual hard disk first.

I rebooted the server, and then proceeded to install TFS 2008 SP1. It looked like everything was going good, but it failed at some point. Turns out the SQL server did not survive the reboot, VS 2008 SP1, or the system drive expansion. Somehow my mssqlsystemresource.ldf file got messed up at some point. The event log error stated “One or more files do not match the primary file of the database.”. I got better information out of the SQL error log which pointed me right to the System Resource ldf. I copied the ldf file from another SQL 2005 server and was back in business. The TFS update proceeded without incident after that. In case you are wondering, you can determine your TFS version by looking at the version of Microsoft.TeamFoundation.Server.dll in %Program Files%\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Services\bin. For SP1, the version number matches that which is displayed in Visual Studio 2008, or 9.0.30729.1.

Sunday, August 17, 2008 1:00:32 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology | Programming | Sql
# Saturday, July 19, 2008

My domain controllers, and thus my member servers and workstations were having some serious time drift. I’ve seen +/- 30 minutes this week so far. I found a good article from Microsoft on how to enable a computer (including domain controllers) to sync to an external time source (http://support.microsoft.com/kb/816042). I’m running two instances of Server 2008 server core, so I used the remote registry functionality to set the registry keys for w32time and restarted. I’m syncing to north-america.pool.ntp.org (don’t forget the ,0x1 at the end of our peer list).

Since my domain controllers are virtual machines, I also setup one of my physical hosts to sync to an external source as a backup.

Saturday, July 19, 2008 3:37:51 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Monday, July 14, 2008

It’s been awhile (4 months) since I last update my HTC mogul from the stock ROM that came with the phone to a cooked ROM and leaked radio ROM. Lately my phone has been acting kind of buggy, with having to reset it every morning to get my data connection back. So I decided it’s time to upgrade to the RTM version of the radio, and a new version of DCD’s ROM.

I will be highlighting the steps I outlined in my last post Cooked ROMs on the HTC Mogul, which seems to get quite a few hits from the search engines. Here are some additional links with good information:

Here are my updated steps for updating my phone

  1. Download all required files
    • DCD Rom 3.2.2 (listed in forums not wiki)
    • Sprint CAB File
    • Olipro 2.4 (I already had this bootloader installed on my phone).
    • Titan Radio ROM 3.42.30 (listed in the forums, not wiki)
  2. Write down your MSID, MSD and AKey settings from ##778#. If you do not know your MSL, you will need to get the SPC program.
  3. Write down data from ##3282
  4. Format your non-SDHC (smaller then 2GB Secure Digital Card) as FAT32. I backed up the contents of my SD card and formatted it clean for this process.
  5. Extract the Titaimg.nbh file from the Sprint Radio Rom rar file and copy to your SD card. The file must be named Titaimg.nbh (notice there is no N, it’s not titaN).
  6. Load the ROM by launching the boot loader using the power+camera+reset combination
    1. Wiki states that the update will stop 5 times for 9 seconds each time, so don’t freak out.
    2. When it says update complete, update success, do a soft reset and the the phone boot. You can verify the Radio version under Device Information in your System Settings page.
  7. Extract the RUU_signed.nbh from DCD’s 3.2.2 executable you downloaded using winrar. Rename this file TITAIMG.nbh and copy to your SD card overwriting the previous .nbh file.
  8. NOTE: You are about to wipe all data from your phone so back up what you need.
  9. Reboot into the boot loader with your SD card loaded.
    1. Soft reset when you see update complete/update success
  10. Complete the touch screen calibration, but perform a soft reset before the customization crap starts.
  11. Run the sprint carrier cab on your device and then reset. This will let you access the ##778# and ##3282# screens. If you can’t use your phone or data connection, access the ## screens and re-enter the data you copied down in step 2

Step 11 thru me for a loop until I remembered I had downloaded that carrier cab and should probably install it. I miss the default gray theme that I had in the last ROM, and it takes awhile to load everything back up on my phone. I hope that my daily reset requirement is no more, or I will be a little disappointed in my time invested in this project.

Monday, July 14, 2008 2:06:51 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Monday, June 30, 2008

Monday morning I brought (rather I biked) my laptop back into the office after reformatting and installing Windows Server 2008 on it. FolderShare seems to be holding up rather well, but I ran into an unexpected issue, no Bluetooth. Not just no Bluetooth drivers, there is no bluetooth support in Server 2008.

Thankfully I found a good guide written by Gill that explains how he installed the Microsoft Bluetooth stack on windows server 2008. His guide, and a comment by Crispin Wright, was what I needed to get Bluetooth running on my HP nx9420 business class laptop.

First I followed Gill’s steps for coping the files to a temp folder and changing the INF files. The following list of files I was unable to find in the folder specified, but it turns out they were in the folder created by HP’s Bluetooth driver setup (kind of following Crispin’s instructions for his dell).

  • btwaudio.inf
  • btwaudio.sys
  • btwavdt.inf
  • btwavdt.sys
  • btwrchild.inf
  • btwrchid.sys

I also wrote a powershell scrip to go thru and modify the .inf files.

#Executes a find and replace on all files in the path $includes
#You can pass in a path with a wild card (c:\temp\*.txt)
#Credit: http://www.aaronlerch.com/blog/2007/03/powershell-replace-string-function.html 

function Replace-String($find, $replace, $includes)
{
get-childitem $includes | 
  select-string $find -list |
  % { (get-content $_.Path) |
  % { $_ -replace $find, $replace } |
  set-content $_.Path }
} 

#Actual find replace for blue tooth inf files
Replace-String "amd64...1" "amd64...3" ".\*.inf"

One thing I do was run the HP provided INF files thru the Powershell script as well before I could get the drivers to update. The device I updated first in the Device Manager was the HP Integrated module with a hardware id of USB\VID_03F0&PID_171D&REV_0100. Once this device was updated, then the other blue tooth devices were found, and I just pointed them to my temp BT folder with the updated INF files.

I still have one unknown device, and it appears to be for the Bluethooth PAN profile, but I have been unable to find a driver for it. I thought that I would try running the setup application provided by HP to install their drivers, but even after that, I was still left with that unknown device, so I would recommend not running the HP setup program, as it appears to provide no added benefit.

While installing my Bluetooth keyboard and mouse, I was prompted for drivers, and again, pointed to my temp BT folder to install the HID drivers. I’ve since rebooted a couple of times, and my mouse and keyboard continue to work. I don’t have any other Bluetooth devices to test at this time.

UPDATE:

Looks like I was in a hurry and missed coping the bthpan.inf file in the first step. Gill asked me to take a look again, and sure enough, I hadn’t copied it to my BT temp folder, so it never got updated. Once I made the change, I was able to get the PAN driver installed.

Thanks again Gill.

Monday, June 30, 2008 5:35:55 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Sunday, June 29, 2008

I’m in the process of setting up my work laptop after reformatting and installing Server 2008 64 bit (a change from Vista 32 bit). My primary reason for this was to continue my Hyper-V evaluation that I started at home. I just got an upgrade in the form of 4 GB of ram and a new external hard drive with a FireWire (FireWire 400/800, USB 2.0 and ESATA) for my laptop.

I’ve been using Microsoft Groove for folder synchronization between my home and work computers. Much to my surprise after getting Groove installed and my account moved over to my laptop, I was greeted with an error message indicating that folder synchronization was not supported on a 64 bit OS!?!?!

I think the first hit I got on Google summed up my thoughts, “You got to be kidding?”. Alas, they were not. So I’m back to using Folder Share, which has gotten an upgrade from when I stopped using it just over a year ago. It does in fact support 64 bit, and actually has better limits then Groove, including a max file size of 2GB and 10,000 files per folder. The only major limitation is that you can only have 10 folders shared, but I only need 5-6, maybe 7, so it’s good enough for me right now.

Sunday, June 29, 2008 4:44:56 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Tuesday, June 10, 2008

I was searching for a stand alone installer for windows live writer, instead of the dumbed down live services installer so that I could install live writer onto my Win2k3 workstation. Thankfully, they just released a tech preview of a new version, and it comes as a stand alone installer, which installed on Win2k3. You can download the preview here. This is not a side by side install, your previous file versions are overwritten, but all of your settings and plug-ins are preserved.

As far as new features go, the fact that I could install on Win2k3 was enough for me, but they added tabs at the bottom of the main screen to allow you to quickly switch from edit to preview to source mode very easily.

Hopefully I will be getting some time to write some more content as I’ve been too quiet lately and being able to easily blog from my main workstation at home (running win2k3) will help with this.

Update:

There is a new auto linking feature that I’m still trying to test out. This is similar functionality to content filters in dasBlog (that was a auto link), but is limited to setting up hyper links with common text, where as content filters can be setup for text or RegEx and the replacement value can be anything. The nice thing about auto-linking, is that you can see your links as you type them in live writer. However, content filters apply to your entire site and can be changed to update all text in all your posts.

Tuesday, June 10, 2008 4:43:00 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Saturday, May 31, 2008

I think it's probably one of the nicest Saturday's of the year so far, but I thought it would be more fun to uninstall our Trial edition of TFS 2008 and install the work edition. Here are the steps I took:

  • Using Windows Firewall block access to TFS and Sharepoint
  • Backup all databases to another server
  • Take a VMWare snapshot
  • Uninstall TFS 2008
  • Uninstall TFS Build 2008 ( I don't think this was necessary)
  • Install TFS 2008 Workgroup **
  • Install TFS 2008 Build
  • Test Locally
  • Remove firewall restrictions
  • Test Remotely
  • Remove snapsot

Things were going smoothly until I was installing TFS Workgroup, and during the database upgrade (not sure why my DBs were different between the Trial and Workgroup Edition) I got an awesome error:

Product: Microsoft Visual Studio 2008 Team Foundation Server - ENU -- Error 32000.The Commandline

'"E:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Tools\TfsDb.exe" upgrade /server:"YourTFSServerName" /property:"TFS_SERVICE_ACCOUNT=DOMAIN\tfsserviceAccount;

TFS_REPORTING_ACCOUNT=Domain\tfsreportsAccount;

LCID=1033;VSTF_AS_INSTANCE=YourTFSDBInstance;

VSTF_AS_DATABASE=TFSWarehouse;VSTF_AS_ACCOUNT=" /showui:2622014' returned non-zero value: 100.

I decided to run the TFSdb tool from the command line, and it gives allot better information. According to the error, I needed to perform a backup log operation on my TfsWorkItemTracking database. So after doing that, that phase of the install process completed. The rest of the install process seemed to take forever, and the progress bar was about 97% to the end and just hung there for a good 3-4 minutes before it finally completed without error.

Saturday, May 31, 2008 11:35:34 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Friday, April 25, 2008

So after running WinXP as a VM under Hyper-V as my primary day to day machine for development, office applications, etc, I have decided to move to a Windows Server 2003 VM. My reasons for this are:

  • Integration Services (Hyper-V's VM-Ware Tools equivalent) are supported under Windows Server 2003 SP2, where as you need SP3 of Windows XP, which is still in RC.
  • Hyper-V supports 2 way SMP (more then 1 virtual processor) under Windows Server 2003. I feel that a 2nd virtual processor will make things allot more responsive.
  • Server 2003 has less "stuff" turned on out of the box, and uses less ram. After a clean install, I have 89 MB of ram in use.
  • I do not need any of the new features of Server 2008, such as 4 way SMP support under Hyper-V, DirectX 10, etc. The one thing that might be nice would be IIS 7 for development, but I would be looking at setting up a dedicated VM running SQL 2005/2008 and IIS 7 at that point. My immediate home development tasks will be focused on non-web applications (I think).

Even with only a single virtual processor installed and no integration services installed, the VM felt more responsive, and adding a second virtual processor and integration services has only increased this feeling. I set an 80% CPU resource constraint which corresponds to 40% of my systems overall CPU processing power. I have no technical reasoning for this other then 2 virtual CPU's at 80% should be more then sufficient for my needs, while keeping the overall system responsive, and allow for some other VM's if need be.

As part of my burn in process on my new machine, as well as something I do every day, I run Folding@Home. Usually I run with 3 folding instances, which leaves one of my four cores available for actual work. I've noticed when I'm actively using the XP VM and have 3 instances of folding running, that things seem sluggish at best.  With my new Windows 2003 VM and three folding instances running, the system is more responsive. I do not know why this might be (maybe the resource constraint I added?), nor have I done any type of benchmarking other then looking at Task Manager, but I'll take what I can get.

If I run into any gotcha's, I will post a follow-up, but I don't think I will. I've used Windows Server 2003 as a workstation before so I am very confident that I won't run into any type of application compatibility problems.

Friday, April 25, 2008 11:29:19 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# 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 11:01:49 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology | Sql | Tools
# Monday, April 14, 2008

In my last post I talked about building my new primary workstation for running Windows Server 2008. This post continues with the installation of Windows Server 2008.

First off, the screen (please wait) after selecting your keyboard layout took about 3-4 minutes before proceeding to the screen allowing you to select the version of Windows Server 2008 you want to install. I selected the 64bit edition and proceeded to the screen to select where I wanted to install windows, and hit my first issue.

No matter what I did, I could not install to my Raptor hard drive. I kept getting an error message indicating that "Windows is unable to find a system volume that meets its criteria for installation". The error also indicated that I could install to volume 0, which was my Raid-1 drive which I want to use as my data drive. I thought about unplugging the drives but figured it couldn't be something that easy, but after some searching I found this KB article which basically told me to unplug the extra drives.

After that small issue, the rest of the installation went without incident and quite fast, and soon I found myself sitting in front of a fresh Server 2008 install. Now I forgot to check how much ram was being used at this point, and proceeded to install the Nvidia drivers (Vista 64 bit), but after that I was using between 650 and 675 MB of ram at start up. Now compare this to <200MB of ram on a fresh server 2k3 and I have to wonder, what is using 400MB of ram and what am I getting out of it. Maybe I am just to nostalgic and remember back to the Windows 2000 days when a fresh install used less then 100MB of ram. Perhaps I should just spend the extra $100 and max out to 8GB of ram, but I am getting off topic.

I need to go a on slight tangent and talk about the Windows 2008 server core active directory stuff I'm working on in parallel. Using the command line tools outlined in my previous post, as well as the dcpromo GUI wizard on my new full Server 2008 install (to create the unattended.txt file), I got AD installed on server core for my new domain. One thing that happened during the install, was that the firewall rules for remote desktop were modified. I found that the following command will re-open port 3389: netsh firewall set service type=remotedesktop mode=enable. You should also check and make sure that you have a firewall rule in place for DNS.

  • netsh firewall set portopening ALL 53 DNS ENABLE SUBNET - This will open up TCP and UDP port 53 for your local subnet.
  • netsh firewall show portopening - Display the current ports that have rules

Back on my main workstation, I setup about installing some roles and features. For features, I added the administration tools for things like AD, DNS and Hyper V. For the role, all I added was Hyper-V (and according to an article I read, hyper-v should be the only role installed). To install Hyper-V, first I installed the RC0 hotfixes, then added the role. It was pretty straight forward, although it required a reboot. Once Hyper-V was installed, I started setting up my first VM, a Server Core 2008 VM as my second domain controller for my new domain.

Poking around in the GUI manager for Hyper-V, I see some interesting things, such as resource allocation, integration services (heartbeats, backup/volume snapshot), and the ability in the networking setup to use VLANs. I should also note that after Hyper-V was installed, it created a new virtual network interface, and the interface that is for the actual physical adapter no longer has an IP address. I am assuming this has to do with the VLAN support in Hyper-V, but I don't know for certain.

I started out with two VM's a Server Core instance as my 2nd domain controller, and an XP SP2 instance that will serve as my primary office environment (i.e. developer tools, MS office, MS Money, etc). The network adapters were a little tricky with both instances. For the Server 2008 instance, you have to run the same hotfix in the VM as you did on the host OS. I created an ISO with the hotfix and then mounted it in Hyper-V. On the XP instance, I had to change to a legacy network adapter, as the smBus network adapter is only supported if you install the integration tools, and those are only supported in SP3 for XP.

Changing gears, I set about installing some games on my host, mainly World of Warcraft, Call of Duty 4 and UT3. I installed all of the games into C:\Games\ and set permissions for my normal user account to full control on that parent directory. I then installed all of the games using an Administrator account. WoW installed with no problems, COD4 does in fact require DirectX 9.0c, and I had to modify the .msi file in UT3 before installing (by following these instructions).

So far things are going OK. I still need to play test COD4 and UT3, but WoW works without issue. I've noticed some performance issues between my Folding@Home instances and my VM's running under Hyper-V, such that I am only running three instances instead of 4 so I always have at least one core free for the VM's.

I have a couple of things left to do:

  1. Finish setting up my XP instance for day to day tasks. This should be pretty straight forward
  2. Finish setting up AD and DNS on my domain controllers (basically make sure that the firewalls are configured correctly and that DNS and AD replication is occurring)
  3. Determine storage location of programming projects and documents (Do I store them on a VHD, or just share them out from a location on the host).
  4. Get the old hardware running up as a HTPC (it won't power on, even though it's the same hardware except for the case. I may have damaged something during the case transfer).

I will follow-up with a part III in the next couple of days.

Monday, April 14, 2008 8:27:55 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Friday, April 11, 2008

About a month ago, the computer I was using as a server suffered a hardware failure. I guess you get what you pay for, and your mileage will vary when buying a cheap, used HP DL380 off E-Bay. Four of my six drives in my Raid-5 array failed and I pretty much lost everything. I decided I did not want to go thru that again, so I set out on my latest home IT project.

I decided to update my primary workstation with a new CPU, RAM, motherboard, and additional storage. Last November I purchased a NVidia 8800GT so I was pretty good on the video card front, and I have a 75GB Raptor as my system hard drive. The remaining components, a AMD Operton 165 dual core, 3GB of DDR Ram and my older hard drives are going to be moved to another case and serve as a media center PC which will also be running VMWare server so I can run some servers on there as well.

So if you haven't figured it out already, I am really trying to limit myself to two computers running 24/7. This is primary due to my electricity bill which at one point was getting out of hand when I had 4-6 machines running 24/7. Usually I use old hardware for my "servers" and my workstation has the most up to date hardware. While I'm not deviating from that, I will be running server VM's on my workstation for the first time, taking advantage of the new hardware.

I spent some time deciding what operating systems I wanted to go with. Since the second box was going to double as a media center PC, I decided to go with Vista Ultimate (64bit SP1). I will be going thru and turning off all the eye candy and other unnecessary services and components. For the main workstation I wasn't sure what to use. The idea of running Server 2008 and hyper visor was an idea, but I still do some PC gaming. A quick Google search yielded a site dedicated to running Server 2008 as a workstation, as well as some confirmation that the three games I currently play (WoW, UT3, COD4) will install and run. My assumption is that my VM's running on Hyper Visor will perform better then VM's running in VMWare's free server on Vista, or Virtual PC on Vista. Another benefit of running Server 2008 as it will give me some real hands on experience with it in a day to day environment. I think the new Terminal Services gateway will be an interesting feature to play around with, replacing my old port forwarding strategy to a computer running RDP on 3389.

So with my plan now set (if you can call it a plan) I set about acquiring some new hardware for the workstation. I knew that the new 45nm Intel processors were released, but these turned out to be hard to find. At one point I was all set of getting a Xeon X3350, which is the same chip as the Q9450, but I couldn't find any in stock without paying a huge premium. I settled on getting an OEM version of the Intel Q9300, which is a 2.4 Ghz quad core with 6 MB of cache built using the 45nnm fab process. I was somewhat disappointed when comparing the 6MB of cache in the Q9300 with the 12MB in the X3350/Q9450, but I just couldn't justify the extra $100. The performance comparison between the Q9300 and the Q6600 (previous generation quad core at a comparable price point) , shows that the Q9300 performs just as well with only 6MB of cache, while running cooler and using less power.

The motherboard I went with was the Gigabyte EX38-DQ6 for it's X38 chipset, on board raid, 45nm quad core support, lots of USB, FireWire, dual Ethernet. The board also boasts additional power saving features, beefed up capacitors and additional cooling features for the chipset. The box it came in is huge, but it's nice to see manufactures allowing enough room for safe shipment instead of cramming everything into a small box.

Rounding out the new hardware was a Zalman XNPS9700 heatsink/fan for the OEM processor, a 4GB kit (2x2GB) of OCZ Reaper PC2 6400, and 2 640 GB Western Digital hard drives which I will setup in a Raid 1 for my data drive.

I started tearing everything out of the two cases I was going to use. I transferred the motherboard from the primary workstation case to the HTPC case, and then discovered my first problem of the day. I only had one ATX version 2.2 power supply in the house. I decided to move the power supply I had to the HTPC and get a new power supply for the main workstation. So I jumped in the car, grabbed some McDonald's drive thru (#2 with a coke) and proceeded to Best By. I picked up an Antec 650 Watt EarthWatt power supply. It has 3 12 volt rails, and boasts 80% efficiency.

Back home I started getting the new motherboard ready for installation. The Gigabyte board comes with this CrazyCool heatsink on the back of the motherboard the prohibits the use of after market coolers like my Zalman that require a backplate. thankfully, this newer revision of the board includes hardware to remove the CrazyCool heatsink. I got the Zalman mounting brackets installed, installed the CPU and cleaned it off with so isopropyl alcohol and applied some Artic Silver 5.

It took some effort to get the Zalman installed onto the motherboard, and then mounted inside the case. After that I routed power cables for the fans, installed the ram, and my video card. Before going any further I plugged it in (power and video) to make sure all the mans were working, the Zalman was pointing in the correct direction, and that the system posted, and it did.

I got the rest of the components installed, wired and ready to go. As expected, the system posted and all drives were detected on POST. I enabled the mirroring for my new hard drives and proceeded to begin the Windows Server 2008 installation, which will be the topic of a follow-up post.

Friday, April 11, 2008 11:47:19 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Saturday, March 22, 2008

So I've heard about Twitter, read about Twitter, but still have not figured out what all the hype about Twitter is about. Had Scott entitled his post about Twitter this week "Twitter", I probably never would have read it, instead he entitled it "Twitter: The usefulness of Micro-blogging", and I thought to myself, micro-blogging sounds interesting, let's have a read.

I wanted to try to define what Twitter is. This is something I've been struggling with for awhile (along with what can I use Twitter for). So far, the best I can come up with is a cross between IM and Text Messaging and Blogging. I say IM and Text Messaging because of the short messages in Twitter (140 characters) and the conversation style of the messages. The blogging part comes in because the posts on twitter are for all the world to see, with a key difference being that the Twitter service hosts all of the content.

So I have spent a couple of hours now looking at this Twitter thing, and I'm still not sure I understand it. I installed TinyTwitter on my phone and sent my second ever tweet. I tried installing Witty, but it's crashing on startup, so I'll need to look for another client. So I am making an effort to try this out at least. I think I will follow Scott's tweet feed for awhile and see what that brings.

One thing I'm not entirely comfortable with is the idea of sharing certain information with the world. Now of course I can control what I tweet, and I share information all the time, so let me try to qualify my statement with some examples.

Looking at what people tweet, I came up with some examples of stuff that I could tweet based on stuff I've done the past couple of weeks (I didn't count out 140 characters).

  • Played UltraZone for the first time in many years with some old friends and had allot of fun
  • Lost our play off game for roller hockey
  • Just won another copy of Windows Vista for some comments I made during the UW EBC RFID workshop

I was actually kind of excited by the prospects of Twitter when I thought up these examples, but then a little paranoia set it. Since most people seem to tweet in near real time, and that makes the most sense, you could start to construct a pretty accurate picture of someone's day to day (hour to hour) activities. As I said, you can tweet whatever you want, and can just choose not to tweet something.  I don't think I have any stalkers out there, but you never know ;)

My twitter feed is www.twitter.com/asalvo and we'll see if I end up using it or not.

Saturday, March 22, 2008 8:07:22 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Saturday, March 15, 2008

Well the Beta 2 expiration period is fast approaching, so it was time to upgrade our TFS server from Beta 2 to RTM. It was pretty painless, but took the better part of an afternoon to get thru everything.

  1. Notify users that upgrade process was begging
  2. Using windows firewall, disable access to:
    1. The Sharepoint site (port 80)
    2. TFS web services (port 8080).
    3. TFS Web Access (port 8090)
  3. Execute schedule job to backup all databases (local) and copy backups to another computer
  4. Shutdown TFS server so we can snapshot the TFS Server (we're running ESX Server). While you don't have to shutdown in order to take a snapshot, I prefer too.
  5. Uninstall TFS Server and other components that are not covered by the uninstall script (see step 6)
    1. Microsoft Visual Studio 2008 Team Foundation Server Beta 2 - Enu
    2. Microsoft Visual Studio 2008 Team Foundation Sever Build Beta 2 - Enu
    3. Microsoft Visual Studio 2008 Team System Web Access
    4. Microsoft Visual Studio 2008 Team Explorer Beta 2 - ENU
    5. Microsoft SQL Server Compact 3.5 Beta ENU
    6. Microsoft Visual Studio 2008 Premier Partner Edition - ENU
  6. Run Beta 2 Uninstall script (there is a link at the bottom of my VSTS upgrade to RTM post)
  7. There were some left over folders which I deleted to clean things up
    1. Program Files\Microsoft Visual Studio 9.0
    2. Program Files\Microsoft Visual Studio 2008 Team Foundation Server
    3. Program Files\Microsoft Visual Studio 2008 Team System Web Access
  8. I checked to see if Share Point was still working, and it was. The virtual directory for reporting services was no longer around, which was interesting.
  9. Reboot the TFS server
  10. Install Team foundation server
    1. Run Setup.exe from DVD
    2. Choose Team Foundation Server from the setup menu and click install
    3. Change destination folder to E:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\ (IT Requirement)
    4. Type in the name of the database server (after clicking next it took about 1 minute to validate the databases)
    5. System health check is run
    6. Enter account and password for tfs server and reporting services
    7. Setup TFS Alerts by specifying a SMTP host
    8. And go!
    9. Got 1 error complaining about the reporting services URL (see #8). I clicked retry and it seems to have fixed itself!
    10. Installation finished and prompted for a reboot, which I did.
  11. Share Point and Reporting Services (Report manager) tested successfully
  12. Install Team Explorer
    1. Run setup.exe from the dvd
    2. Select Team Explorer and choose install
    3. Change destination folder to E:\Program Files\Microsoft Visual Studio 9.0\ (IT requirement)
    4. And go!
    5. No reboot required, so I didn't reboot. I did test out TFS locally using the Team Explorer I just installed
  13. Install TFS Build
    1. Run setup.exe from the dvd
    2. Select Team build and choose install
    3. Change destination path to E:\Program Files\Microsoft Visual Studio 9.0\ (IT requirement)
    4. Enter TFS service account and password
    5. And Go!
  14. Reboot TFS Server
  15. Remove firewall restrictions and test remote access
  16. I noticed we had the Red X's next to the reports and documents folders in Team Explorer on remote machines. The cause was that TFS doesn't use FQDN by default. I found this post on Buck Hodges's blog about enabling FQDN. This wasn't a result of the upgrade to RTM and was broken before hand, I had just never had the need to fix it.
    1. I followed steps 1 thru 4, except the registry key for my TFS 2008 install was HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\TeamFoundation\ReportServer\80\sites
    2. You may need to clear out your cache on your workstation. Under Vista, the cache is at C:\Users\USERNAME\AppData\Local\Microsoft\Team Foundation, and under XP it is at C:\Documents and Settings\USERNAME\Local Settings\Application Data\Microsoft\Team Foundation
  17. Send out success email to users.
  18. Note: I didn't have the media for Visual Studio Test Edition on the ESX server, so I couldn't install that for the build server. It is something I will have to do later.
Saturday, March 15, 2008 9:33:09 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology

I finally got around to installing a new Windows Server 2008 instance using the server core option. As with a standard Server 2008 install, the install procedure itself is extremely easy and straight forward. You get asked for your language, keyboard layout, and what drive you want to install and off it goes. That's it, when it's done you're ready to start configuring your server.

One thing to point out, is that you must have 512MB of ram in order to proceed with the install. I was able to change the amount of memory to 256 after install without issue.

Another thing to point out is that you are not prompted for a product key. By default you are allowed 60 days to enter a key and activate. See my section below on product activation.

So the first thing I noticed was that you still get a Server 2008/Vista style logon prompt. At first I thought I had accidentally selected a full install instead of server core, but after logging in, I got the expected command prompt window. I guess I was expecting a  *nix console login.

One thing that people might  be wondering is how much disk space and memory does server core use out of the box. I have 5.9GB of a 8GB partition free, so simple math gives us 2.1 GB. Task manager shows that I have 171MB of RAM in use.

So now what? I got a command prompt, and, well, yeah. If you remember Server 2008 is supposed to be secure by default, so the firewall should be on, and the network card should be disabled to allow you to configure your server before exposing it on a network.

As I mentioned before about logging in, there is still some GUI. The task manager is available by pressing Ctrl+Alt+Del, and when you install applications (i.e. VMWare tools) you do get dialog box prompts. In case you close your command window, you can do Ctrl+Alt+Del and start a new command window by going to File\Run and typing cmd.

Some web sites you might find useful are:

VMWare Tools

I needed to install the VMWare tools on the version of ESX server I was running before the network card would show up (netsh interface ipv4 show interfaces).

  • Manually mount the cd-rom image for the VMWare tools
  • Browse to D:\ and run setup.exe
  • Follow on screen prompts

Setting the IP Address (From Michael Kleef)

  • At a command prompt, type: Ipconfig /all
  • Record the relevant information or redirect it to a text file (ipconfig /all >ipconfig.txt).
  • At a command prompt, type:

Netsh interface ipv4 show interfaces

  • Verify that there is an interface list.
  • At a command prompt, type:

Netsh interface ipv4 set address name="<name of interface from interface list>" static address=<preferred IP address> <mask> <gateway address> 1

  • Verify by typing Ipconfig /all at a command prompt and checking that there is the IP Address you configured

Setting the DNS (From Michael Kleef)

  • At a command prompt, type:

Netsh interface ipv4 add dnsserver name=<name of interface from ipconfig /all> address=<IP address of the primary DNS server> index=1

  • At a command prompt, type:

Netsh interface ipv4 add dnsserver name=<name of interface from ipconfig /all> address=<IP address of the secondary DNS server> index=2

  • Repeat as appropriate to add additional servers.
  • Verify by typing Ipconfig /all and checking that all the addresses are correct.

Rename the Server (Step by Step server core configuration)

  • Use hostname to determine the current computer name
  • At a command prompt type:

netdom renamecomputer <ComputerName> /NewName:<NewComputerName>

  • Restart the computer - shutdown /r /t 0

Join a Domain (From Michael Kleef)

  • At a command prompt type:

Netdom join <ComputerName> /domain:<domain> /userd:<domain>\username> /passwordd:*

  • Note: The value ComputerName should match the current name of the server core instance you are working with. Rename the computer before attempting to join the domain.

Enable Remote Desktop

  • At a command prompt on the server core install type

cscript C:\Windows\System32\ Scregedit.wsf /ar 0

Product Activation

  • View current activation status: slmgr.vbs -dli
  • Add a product key: slmgr -ipk <ProductKey>
  • Activate: slmgr -ato
  • Note, if you are installing from MSDN like I am, you must enter your MSDN product key using slmgr. Also, some of the commands take awhile to run, and you should see a window popup for commands like -dli.

Active Directory Install

  • You must use a answer file with dcpromo: dcpromo /unattend:<fileName>
  • If you have another W2K8 member server (not server core), you can run the dcpromo gui and at the last step there is an option to save the options as an answer file. I didn't have this luxery, but I found a sample file from this article. Use notepad on server core to create this file.

[DCInstall]
; Replica DC promotion
ReplicaOrNewDomain=Replica
ReplicaDomainDNSName=techmentor.com
SiteName=Default-First-Site-Name
InstallDNS=No
ConfirmGc=Yes
DNSDelegation=No
UserDomain=techmentor.com
UserName=*
Password=*
DatabasePath=C:\Windows\NTDS
LogPath=C:\Windows\NTDS
SYSVOLPath=C:\Windows\SYSVOL
; Set SafeModeAdminPassword to the correct value prior to using the unattend file
SafeModeAdminPassword=
; Run-time flags (optional)
; CriticalReplicationOnly=Yes
; RebootOnCompletion=Yes
TransferIMRoleIfNecessary=No

Commands:

  • Shutdown - shutdown /s /t 0
  • Restart - shutdown /r /t 0
  • LogOff - shutdown /l
  • netsh - Networking command. This needs it's own post.
  • notepad
  • regedit
Saturday, March 15, 2008 1:05:32 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Sunday, March 02, 2008

Sometimes I have to take a step back and think about how far technology has come in the last 5, 10, 15 years. Today I was working on balancing my checkbook using information downloaded from my bank. Sometimes all I get from my bank is an address, which isn't all that helpful. In the past I have used various online mapping resources (I don't remember when these first became available, but I didn't start using the WWW until '96) such as map quest. I decided for what ever reason to use http://live.local.com to look up this address. By default it shows up in standard map mode, so I clicked on the birds eye view, and it's pretty apparent that it's a McDonalds. Bird's eye has been around for a couple of years I think, but I wasn't aware how much coverage has expanded, as Oregon, WI isn't exactly a booming metropolis.

I took the time to look up some other addresses, like Terso Solutions (map) which is where I currently work. The bright yellow car in the parking lot is mine ;) I think it's interesting to look at the picture and try to figure out additional details, like from the shadow of the building I can tell that this picture was taken in the early afternoon. Looking at the condition of the construction of our parent companies building to the E/NE, I can estimate that this picture was taken last summer.

Where will we be in another 10 years?

Sunday, March 02, 2008 5:01:55 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Sunday, February 10, 2008

Back in September I wrote a blog post title Collaborate with Myself, in which I talked about various ways to write down and store information, as well as syncing that information between multiple computers. I wanted to take some time to write an update. Of all the software I blogged about, OneNote, Groove and Live Writer are probably the one's that I have used the most in the past 5-6 months.

What am I Using

Groove

Currently I have 5 workspaces: IE Favorites, KeePass, Live Writer (Drafts), OneNote Notebooks, and Work Documents. I have had very few problems syncing between 2 computers, and only a couple of times were there were conflicts, primarily a result of groove not running on one of the computers.

IE Favorites are kept in sync, although sometimes the order in which they are displayed is not the same. The first time this happened, I thought that syncing wasn't working at all. KeePass is a great program to store passwords in. I maintain 3 password "databases" and all 3 available at work and home. With Live Writer, I sync the My Weblog Posts folder, which contains drafts and recently posted. Having the drafts sync is great. I can start a post at work, and finish it at home or vice versa. One Note syncs just fine, and if there is a conflict it's pretty easy to spot because you get a new tab that has the word Copy in it. Finally, I just started syncing my work documents, as it's nice to have them available at home without requiring some sort of remote access. It's also my way of backing them up (DTA = Don't Trust Anybody).

Live Writer

Not much to report on Live Writer, other then it works as advertised. I added a plug-in to format source code in posts, and that's about it. The only thing I have to log into my blog for is if I want to add a track back. I'm up to 89 posts, and except for a couple of posts I've brought over from a different blog, all of been created with Live Writer.

One Note

OneNote is a great program that I have started using on a daily basis. I have the quick launcher in the system tray so all I have to do is press Shift+Windows+N to bring it up. I'll write something down, close OneNote (as my task bar gets so full during the day) and can bring it back up with ease.

I've used OneNote to record meeting notes, project ideas, book notes, track trouble shooting steps during my on-call rotations. I have a Personal and Work notebook, each with several tabs, and Groove keeps everything in sync.

Looking back at my first post, I am not even using the features I blogged about, but am still finding great value. This is the perfect opportunity to revisit some of those features and see if I can make use of them.

Unfortunatly I still haven't gotten a tablet PC. I was looking on Ebay again today, but just couldn't pull the trigger on buying one as I have some other expenses coming up, including a possible roller hockey tournament in Cincinnati, OH. I need to put some thought into how I can justify it as a work expense. On the one hand, it would make taking notes during meetings more efficient, but I'm really trying to limit the number of meetings I'm in, as it means I'm not getting much development time in.

What I'm Not Using (yet)

Wiki

I did finally get some Wiki software installed on the website, but there is no content on it yet. I still need to get backups setup and play around with the software a little more before I commit any serious time to writing content for it.

I have chosen ScrewTurn Wiki as it's an asp.net file based Wiki, which also has support for running offline. With the launch of http://wiki.asp.net I am a little more encouraged to move forward with my own Wiki, although I am interested to see if Telligent does in fact release a community version of the Wiki software, although I suspect the data store will be SQL which I think is overkill for my needs.

One thing that is lacking from ScrewTurn is page level, or category level security. While I realize that a Wiki is all about collaboration and public involvement, some of the pages I would want to restrict access to. The reason for this, is that I see the Wiki acting as somewhat of a CMS for my site in certain instances.

Sharepoint (at home)

I did finally get Sharepoint installed at home, if for no other reason then to try out the 40 some Sharepoint templates provided by Microsoft. Currently I'm playing around with the Stock tracker template (not the official name), and Lending Library.

I defiantly like Sharepoint and the templates, but it's hard to get too excited when you are the only one using the Sharepoint Site. Even though I have changed the wife's home page to the Sharepoint site, she still doesn't read the announcements and calendar. I bet if I put the project management template on there and told she would use it ;)

Sunday, February 10, 2008 9:22:13 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Friday, February 08, 2008

Scott Hanselman today announced the Asp.Net Wiki (Beta).

"The idea is that folks spend a lot of time trolling the blogs, googling live-searching for answers to common "How To" questions. There's piles of fantastic community-created and MSFT-created content out there, but if it's not found by a search engine and the right combination of keywords, it's often lost."

I think it's a great idea and I hope to see other product groups at Microsoft follow suit. Since it's linked off http://www.asp.net, and a Microsoft entity, I see it quickly becoming the one stop shop for Asp.Net information.

If you jump on and contribute to the wiki right now, you could be a top contributor, at least for a couple of days.

Friday, February 08, 2008 11:34:45 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology | Programming | Review For Future Projects
# Tuesday, February 05, 2008

One of the goals I am working on at work, is a revitalization of our use of Team Foundation server, starting with a new project that I am leading. While we have always used TFS, I do not think that we are taking full advantage of its features. Part of the reason I think, is because there is so much good information that you really have to take some time to understand what it's telling you.

In the past week, I re-discovered the Process Guidance section of the Share Point site which is created when you create a new TFS project. I have been going thru each tab and sub section trying to gain a better understanding for how to use, and interpret the data.

One particular section that I have over looked in the past, is the Index tab. As it sounds, the index tab displays a list of all the topics covered in the process guidance (and then some), broken down by group (Workstreams, Activities, Work Items, Work Products, Reports, Queries and How To's). I have been looking into the CMMI template, so you may not have all of what is listed below.

Workstreams

From the process guidance: "Workstreams are groups of activities that flow logically together and are often associated with a particular role."

Activities

Activities are the specific individual activities that make up a workstream.

Work Items

From the process guidance: "A work item is a database record which Visual Studio Team Foundation uses to track the assignment and state of work. The MSF for CMMI Process Improvement process defines seven work items to assign and track work. These seven work items are task, change request, risk, review, requirements, bug, and issue."

Work Products

From the process guidance: "Work products are files, documents, specifications, binaries, parts, and other tangible items that are necessary to complete activities and build the product. Many times the creation of one work product is dependent on the completion of another work product."

Most of the definitions given here, relate to the document templates which are created with each new SharePoint site. For the CMMI template, you need to click on Documents from the quick launch menu, then general documents to find the templates.

Reports

From the process guidance: "Project health charts aggregate metrics from work items, source control, test results, and builds. They answer questions about the actual state of your project at many scales: for the days within an iteration, iterations within a project, or projects with in a program. The questions are also relevant for many kinds of work items such as scenarios, quality of service requirements, tasks, and bugs."

Each report gets a description, as well as healthy and unhealthy examples. This is great reading material for management to help them to understand how they can take advantage of TFS (It's not just for developers).

Queries

This index lists the pre-defined queries and that they are designed to show. Again, a good way to show management how they can keep an eye on the project without relying exclusively on MS Project (it's not a bad tool, but it's not the only tool).

How To's

From the process guidance: "How To's present information on how to accomplish tasks related to activities and workstreams"

There are 8 how to's that cover enough to get you started with the template. I wish they had more how to's and examples, and even a complete project walk thru, but I guess they needed to leave something for partners and book writers.

Speaking of books, I am currently reading Software Engineering with Microsoft Visual Studio Team System, which is a book on how to use TFS in the context of Project Management. I have also seen this book, Visual Studio Team System: Better Software Development for Agile Teams, which looks very interesting as it has a book length case study. Unfortunately I can really only read 1 book at a time, but I think I will defiantly be looking to buy this book soon.

Look for more posts of TFS and possibly project management in the future.

Tuesday, February 05, 2008 12:27:16 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Sunday, February 03, 2008

While surfing the web, I found some interesting news, that there was a leaked beta for my cell phone, a HTC Mogul (HTC Titan, PPC 6800) which finally enables the GPS and EDVO-Rev A. I decided to look into this more, as well as give it a try.

** WARNING: I assume no responsibility if you brick your phone. Be sure to spend at least 1 HOUR reading thru all of the directions (in the forums) before proceeding. Also, BE SURE to back up your PST settings **

Resources:

I was having issues getting the ROM and Radio updates to go over active sync, but I found these instructions on how to flash the ROM from an SD Card.

  1. First open the ROM or Radio exe file with WinRar. There will be a .nbh file. Extract that and rename it to TITAIMG.nbh
  2. Next format a microSD card with FAT 32 (you will most likely have to do this as most are FAT16 by default). Copy the file TITAIMG.nbh to the root of the sd card with a card reader.
  3. Finally place sdcard in device and reset into bootloader mode (press and hold the power button and the camera button while pushing the reset button). The flash will proceed from the SD card and it should work fine.
    1. The 3 color boot loader screen showed briefly (you should see that it's version 2.4), then it went into a gray screen with the words "Loading...".
    2. It should say loading for a couple of seconds, then some other stuff comes up and then it should say TITAIMG.nbh at the top with some other stuff below, and finally, Press power button to start update image.
    3. After the upgrade has completed, it will say complete in blue letters. Perform a soft reset to reboot the phone with the new ROM.
  4. After the ROM update the phone will reboot and "hang" at the Sprint Screen (if you have a sprint phone). You need to reset the phone and go into the boot loader (see step 3) to flash the radio.

I also tried this using a different computer and sync cable, and had much better results then the first computer I tried (which led me to use the SD card version). 

At this point I had my phone flashed and it was booting into Windows Mobile. However, I was unable to use it except as a PDA as some of the required settings were missing. I went into the PST (##PST#) menu and reset the MSID and MDN values. You will need your MSL key in order to edit the settings (search for a program called GetSCP or GeSPC on xda-developers).

I started setting my phone up, and ran into issues getting my phone to sync over the air with our exchange server. Turns out, I was using the wrong URL. It had been such a long time since I first set the phone up that the start of the URL should have been mobil.X.com instead of webmail.x.com. After that issue was resolved, I had no other problems. The rest of my email accounts are all setup, custom programs, etc.

So, what about the GPS. All I can say is, IT WORKS! I was able to acquire a location fix on Google Maps, as well as a free program called VisualGPSce which has a couple of screens which remind of of traditional screens found on older GPS devices. In doing some additional research I found this thread on XDA-Dev which talks about GPS software and issues with the Titan. Most of the commercial software like TomTom, you need an app like Google maps, or VisualGPSce to "start" the GPS. There are several links to launcher applications, which enable the GPS and keep it running in the background.

So about this time, I went back to the post with DCD's ROM, and saw he had released a 2.1 version. So I was off and running again, updating my ROM, then reinstalling everything. His 2.1 version is running Windows Mobile 6.1 as an added bonus, removes the extra crap sprint installs, and has a nice black theme/skin, including a new skin for the dialer (a new skin is a must for the dialer, as you can actually press the buttons with your thumb). He has another ROM in the works which will add more optimizations based on WM 6.1

I've started keeping all the applications I run on my MicroSD card so I can share them with other people (like my Dad who just bought a Mogul yesterday). This is what I currently have installed:

Stuff that I am considering

  • Point UI (if they are able to extend the UI to more screens)
  • Astro GPS Launcher (If I get a commercial GPS Package)
  • Commercial GPS software
  • HTC Home Customizer

The driving factor in the commercial GPS software will be if I can find an acceptable car mounting kit. I would like to find one which has integrated power, such as this one. I do NOT like the idea of using the FM transmitter, as it eliminates my ability to listen to music at the same time. They do sell one with an amplified speaker, but I don't know if they have one specific for the mogul.

This brings up an interesting question, can I get the turn by turn directions, and music from the Mogul thru my Stereo? I wanted to get the Blue Tooth adapter for my Alpine Deck so I could have hands free phone calls. I wonder if I could pipe the turn by turn directions, and possibly music from the Mogul to the deck via Blue Tooth. I've seen a 6GB micro SD card on Amazon for around $50, and heard of the Mogul being able to support at least an 8GB card. I only have an 8GB MP3 player hooked up right now, and I'm not even using all of that space. So I could get most of my favorite music, 1-1.5GB of map data and still have around 1GB free for files. Defiantly something I will have to look into. I would be one step closer to the all in one device I have been waiting for.

Sunday, February 03, 2008 2:19:02 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Friday, January 25, 2008

Scott's weekly list of links this week, focuses on web sites designed for mobile browsers, such as my HTC Mogul running on the Sprint network. I have posted my list below, but encourage you to check out his full list as well.

AccuWeather - www.acuweather.com/pda/pda_5dy.asp
Excellent weather site. I prefer it over weather.com.

Marcus Theaters - http://marcuspda.com
Mobile version of movie show times for Marcus Theaters, the main theater franchise in Madison.

MSN - http://m.msn.com
Direct link to a mobile version of MSN.Com (also available off the mobile Windows Live page)

MSN Money - http://usmoneymobile.msn.com
Need to feed my market addiction

My Blog on Google - http://www.google.com/search?as_sitesearch=blog.salvoz.com
Makes it very easy to search my blog for information on the go.

Orb - http://mycast.orb.com
Orb automatically detects mobile browsers, making it extremely easy to get your orb content on your browser.

Windows Live - http://mobile.live.com/pocketpc
Shortcuts to various live services, including MSN and MSN Money. Almost a favorites list in and of itself

Friday, January 25, 2008 12:27:07 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Sunday, January 13, 2008

While searching for WSS 3.0 SP1 I came across a download for some SharePoint templates. I am impressed by the list at least, and if they work as good as they sound, they could replace some existing systems someday. I found a site that has allot of the templates installed and available for demo.

Server Admin Templates:
Server admin templates are created as site definitions, providing tighter integration and enhanced functionality within the Windows SharePoint Services platform. They will require a server administrator to install. If you do not have Central Server Admin rights, you can still install the site admin templates (see second list below) in the sites/workspaces that you own or administrate.

  • Absence Request and Vacation Schedule Management
  • Help Desk
  • Budgeting and Tracking Multiple Projects
  • Inventory Tracking
  • Bug Database
  • IT Team Workspace
  • Call Center
  • Job Requisition and Interview Management
  • Change Request Management
  • Knowledge Base
  • Compliance Process Support Site
  • Lending Library
  • Contacts Management
  • Physical Asset Tracking and Management
  • Document Library and Review
  • Project Tracking Workspace
  • Event Planning
  • Room and Equipment Reservations
  • Expense Reimbursement and Approval Site
  • Sales Lead Pipeline

Site Admin Templates:
Site admin templates are easy for site administrators to install in a template gallery without requiring server administration access.
  • Board of Directors
  • Employee Training Scheduling and Materials
  • Business Performance Rating
  • Equity Research
  • Case Management for Government Agencies
  • Integrated Marketing Campaign Tracking
  • Classroom Management
  • Manufacturing Process Management
  • Clinical Trial Initiation and Management
  • New Store Opening
  • Competitive Analysis Site
  • Product and Marketing Requirements Planning
  • Discussion Database
  • Request for Proposal
  • Disputed Invoice Management
  • Sports League
  • Employee Activities Site
  • Team Work Site
  • Employee Self-Service Benefits
  • Timecard Management
Sunday, January 13, 2008 4:23:27 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Friday, November 30, 2007

Sometimes a file gets locked in TFS, and for whatever reason, you need to unlock it. You can use the tf command line utility to accomplish this.

tf lock /lock:none $/Project/AnyFile.extension /workspace:ComputerName;User /s:http://TfsServer.Com:8080

Friday, November 30, 2007 4:36:15 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Thursday, November 29, 2007

Rant

I don't like anti-virus software, and I like real time virus scanning even more. It's like trying to fix a paper cut with brain surgery. There are plenty of guidelines out there for how you can configure your computer, and how you can be a smarter user and avoid virus, spyware etc. Those are mainly for workstations and home PCs, but what about servers?

My take on servers is, you shouldn't be doing anything that compromises the security of a server, and that includes browsing the web, using a standard or admin account. So if you cut out browsing, don't install warez, what's left? I know, I know, what about things like Code Red? When Code Red first hit, it didn't matter if you anti-virus installed or not, the attack was so new that your only defense was to pull your web server off line until you got it patched. A virus from last year, should never find it's way onto your server if you are careful, leaving zero-day exploits and black market hacks, that AV isn't going to catch it right away anyway. About the only thing AV software is good for, is finding that bot net Trojan your Mom gets when she installs Super Happy Smiley emoticons for email. 

I know I'm not going to win the argument for not having any anti-virus installed, but let's at least be intelligent about it ok? If you call yourself an IT administrator, Network Administrator, etc, now is the time to earn that title. Anyone can carpet bomb a network with an enterprise anti-virus package. The AV makers even make it easy to auto deploy their poorly written, resource hogging craplets via auto install software and group policy.

A true administrator will take the time to come up with a comprehensive approach to computer and network defense, including the intelligent installation and configuration of AV software. I found an excellent document on folders and files you should seriously consider exempting from real time, and even on demand scans.

Yeah, yeah, I know, just run Linux on the desktop and use a LAMP stack for your servers.

Thursday, November 29, 2007 10:15:30 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# Tuesday, November 13, 2007

Microsoft, breaking from it's usual secrecy around the next version of Windows, has released some material on Channel 8 about work being done on the Kernel. Referred to as WinMin, the Kernel weighs in at just 25MB and is supposed to be used in a a variety of Windows products, desktop, server, and small form factor. The video posted, consists of Eric Traut giving a presentation with an integrated power point deck.

The presentation is primarily on Microsoft's hypervisor and vitalization. The comments on Windows 7 don't come until 44 minutes into the video.

Other interesting notes

  • Vista and Windows Server 2008 are the first versions of windows that are Vitalization aware
  • Admits that upgrading the OS is painful at best. Vista actually installs a new OS and tries to pull settings from XP. Could Windows 7 actually allow you to reinstall the OS without reinstalling?
  • Admits it's embarrassing that there are un-installer products.
  • Demos of Windows 1 and 2
  • WinMin
    • 25MB Kernal
    • 40MB of memory, 7MB free.
    • HTTP Server? I hope that's for demo's only.

The "scheduled" release date is 2010, which is 2-3 years out (simple math FTW). I point out the 2-3 year time frame, because I think it's significant for a couple of reasons. First, how many things got cut from Vista in the 2-3 years leading up to it (WinFS anyone?). Second, how much of what we are hearing today, will make it to the final product? Third, will I still be blogging in 2010, such that I can look back on this post and comment on it when Windows 7 gets released.

I have read comments that Vista is like WinME, and agree somewhat. Not that Vista is as bad as WinME, but that I am expecting (hoping) the next version of windows to be everything Vista was supposed to be, and then more. Along the same lines, people always seem to think that WinXP was so great, but they were comparing it to WinME. I switched to an NT based operating system with Windows 2000 and never looked back. I had a few games that wouldn't run, but there were work around's available. When XP was released, it wasn't as big of a deal for me.

I'm still running XP at home, and Vista at work on my laptop I got back in March. At home, I recently reformatted, and after running Vista for 6 months, didn't see any benefit, especially since I only had 2 GB ram (no need to go 64bit, and yes I realize there is a 64 bit XP), and do DX10 video card. Just over a month later, I'm running 4GB of ram (for no other reason then I got an extra 2GB on the cheap), and I had to go get a new video card (8800GT) to play COD4 at acceptable frame rates and resolutions. Nuts.

With the LAN party this weekend, I don't have enough time to rebuild in time. Then again, it's the type of late night challenge I wouldn't mind. I'm thinking I might just image my system drive and give it a go. I still have all my notes (what to install), from the last time I rebuilt, and the idea of doing a VM based setup with my 4GBs of ram is an option.  

References:

Tuesday, November 13, 2007 6:16:48 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Technology
# 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 4:55:36 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology | Tools
# Tuesday, October 23, 2007

This is my second, and hopefully last post detailing the work I did to upgrade TFS to 2008 Beta 2, move computers and change domains. You can read part 1 here. As it stands, the source control and work items are working, reports are almost working, SharePoint is on life support, and I should purchase stock in Pepsi given how much Mountain Dew I have consumed during the course of this adventure.

 

Work Items

All of our work items were assigned to users in the previous domain. Even if I had followed the instructions and added "throw-away" accounts in the new domain, they would still have to be updated. Using the built in support for viewing work items in Excel, made it pretty easy to change. Just open a query in Excel, and do a find/replace all for the user name. I only had 4 projects and 5 users, so it wasn't too bad. You do have to open up each project separately, so if you had allot of projects, it could become tedious, at which point I'd probably look to writing a SQL script to do the update for me.

Work Spaces

In TFS, you can only have a physical path on a specific computer, mapped to a TFS workspace once, regardless of the user or TFS server. In my case, a conflict arose because of the change in user names. There were plenty of hits on Google for the error message, but they all pointed to removing a xml file that caches workspace mappings locally. This didn't help me, as the problem was on the TFS server itself. Using the TFS command line tool tf, I was able to view all of those workspaces from my local machine using "tf workspaces /owner:*". The /remove option only seemed to work with the local cache file, and even after installing VS 2008 on the TFS server, the tf tool was no where to be found. This was because I installed as much as I could to E, and the environmental variable was set to C:

There doesn't seem to be an option to update the username for a workspace, if the user id has changed (which is what happened in our case). So I'm going thru and deleting the workspaces using "tf workspace /server:TfsServer /delete workspace;owner". There are allot of workspaces that no longer make sense due to computers no longer existing in the new domain. These can be removed outright, along with workspaces that have no pending changes associated with them. Since I had very few changes, and didn't care about them, I decided to delete my workspace to see what would happen. After recreating the workspace and doing a get latest, my changes were overwritten without any warning. I was hoping to have the option of merging, but unfortunately I did not. At this point I am going to have to have a couple of developers take a look at their pending changes and decide if they need to manually merge them.

While I was searching for a way to change a workspace owner, or what the effects were of deleting a workspace with a pending change, I came across a free set of tools that provide a GUI to some of the command line stuff. Check it out here.

Web Access

As long as I'm going cutting edge (Beta 2 with a go live license is cutting edge, not bleeding), I figured I'd install the CTP of the Web Access power tool. We have a couple of people who need to edit/view work items who are not developers, so avoiding an install of Visual Studio/Team Explorer is idea.

Other then requiring Team Explorer on the web server (which is already present since this is going on the TFS server), the Web Access is a pretty light weight install, and I have no fear of not being able to upgrade to the release version of the power toy. I originally tried to install it under the default web site with integrated authentication since this is used over a VPN only, but that failed with a trust issue. I then moved it to it's own virtual site running in it's own application pool, and it worked fine.

Reporting Services:

I fixed my permissions issue, it was a bad password on the OLAP data source. However, I have another problem. The warehouse does not seem to be getting updated, as there is no data in the reports. I also get an error message in the event log: "System.Security.Principal.IdentityNotMappedException: Some or all identity references could not be translated." I can reproduce the error by directly invoking the warehouse thru the web service, so at least as I try fixes, I can verify quickly if they worked or not.

Doing some searching, I came across this article (which I've come across before), which is a step by step guide to identify issues with the warehouse. Given my symptoms, I decided to delete and rebuild the OLAP warehouse using the command line tool specified in the article, as well as the TFS migration guide. "setupwarehouse -o -s datfsp100 -d TfsWarehouse -c Warehouseschema.xml -a Domain\TfsService -ra Domain\TfsReports -v -mturl http://Server:8080 -rebuild". I then manually invoked the warehouse update from the web service, checked the application logs (clear), checked TfsWarehouse.CurrentWorkItems (actually had something), and checked the reports (they had data). My only remaining concern is that the warehouse updates on it's schedule (UPDATE: Everything is working normally after 1 day of monitoring).

SharePoint:

I was following the MSDN instructions (see previous post) for restoring SharePoint as part of the restore based migration. However, I ran into an issue in that I could re-add the content database. To recap, I restored the STS_Content_TFS database to the WSS_Content database. I then used Sharepoint Administration to remove the content database, and was trying to re-add it. When you go to add it, it tries to name is WSS_Content_Random, so remove the random stuff so you are left with just WSS_Content. I then had to grant DB_Owner permissions to the WSS_Content DB for my TFSService account, which is what the SharePoint admintool application pool was running as. After setting DB_Owner rights, I was able to add the WSS_Content DB as the content database, after which I went into Application Management\Site Collection Admins, and changed the primary admin from my old account, to my new account. I was then able to connect to share point sites so that I could start setting up the other user rights permissions. I was very happy to see Sharepoint working again, as I thought I was in for another all night battle.

I was having an issue whereby I could browse the site from computers that belonged to the new domain, but unable to browse to it from other computers. This is because the web app was talking my FQDN and turning it into just the host name, and the  computers outside of the domain could not resolve that. This was fixed by using SharePoint Administration to add a new external link for the intranet zone for the FQDN (this is done under alternate mappings). This issue was also present when trying to view reports from Sharepoint, as the links were redirecting thru a TFS helper page, which was not user the FQDN. I fixed this by editing the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\TeamFoundation\ReportServer\80\sites

Cleanup:

  • System drive on the TFS VM was getting a little low, so I created a new 3GB virtual disk and moved the swap file over to it.
  • Setup new backup schedules and cleaned up the log files from the restore 
  • Event logs are looking pretty clean.

Final Thoughts

I don't think I used consistent formatting in either of my two posts, which probably is a violation of blogging etiquette, and will not win me and readers choice awards anytime soon. The Microsoft documentation was very helpful, and definitely saved me allot of time compared to either doing it on my own from scratch, or compiling a guide based on Google. I'd like to see the TfsAdminUtil changeaccount operation support changing user accounts instead of just service accounts. I expect the in place upgrade to TFS 2008 RTM will be easy, and hope to never have to migrate TFS again anytime soon.

Tuesday, October 23, 2007 8:21:34 PM (GMT Daylight Time, UTC+01:00)  #    Comments [2] -
Technology
# Monday, October 22, 2007

My task for the past week, and likely for the next week, is the migration of our production TFS 2005 server (data), to a new server, running TFS 2008, in a new domain. The process that seems to have work somewhat, is to upgrade the existing TFS server to 2008 Beta 2, then do a restore based migration using the MSDN documentation. There are a few issues to clean up, and you can read about them in my follow-up post.

Preparation

  • Start with a clean Win2k3 R2 SP2 32bit OS. This OS is vitalized under ESX server.
  • Read over the latest version of the installation guide located at: http://go.microsoft.com/fwlink/?LinkId=79226. I will be doing a single server installation, which all TFS components on the same server. At this point, I am unsure of where the build server components will go, and will be the topic of another post.
  • Create service accounts for use with TFS.
    • TFSService
    • TFSReports
    • SqlServiceInternal - Not required for TFS, but a service account for running SQL server under (vs. local system).
  • Turn on Windows Firewall with Remote Desktop. I prefer to get things working with Windows Firewall running. The installation guide says that most ports will be added to Windows Firewall exception list, but some manual configuration will be necessary.

Prerequisite Installation on New Server

  • Install IIS as per the instructions in the installation guide.
    • Do not install FrontPage server extensions 2002, this is explicitly stated in the guide.
    • Do not install WSS at this time, as 3.0 can be installed with TFS.
    • I also added the option for a local smtp service, such that it can handle sending emails to our primary email server, preventing individual applications from being blocked while waiting for mail to be sent.
  • Install SQL Server 2005 Standard Edition as per the instructions in the installation guide
    • The following components are required
      • SQL Server
      • Reporting Services
      • Analysis Services
      • SQL Browser Service
    • I also installed the management components.
    • IT Requests:
      • Install all components to the E:\ Drive, which is the "data" drive. Some stuff is hard coded to install to the C:\Drive
      • Move all log files to the F:\ drive, which is designated for logs.
    • Moving Log Files
      • Follow these instructions from MSDN on moving system database: http://msdn2.microsoft.com/en-us/library/ms345408.aspx. Before installing user databases, change the data base properties such that the default install locations are correct.
      • Move model, msdb, and temp db using the following commands (You can run all 3 at once, then shutdown and move all 3 log files):
        ALTER DATABASE model MODIFY FILE (Name=modellog, FileName='F:\SqlLogs\modellog.ldf')
        ALTER DATABASE msdb MODIFY FILE (Name=msdblog, FileName='F:\SqlLogs\msdblog.ldf')
        ALTER DATABASE tempdb MODIFY FILE (Name=templog, FileName='F:\SqlLogs\templog.ldf')
      • Shutdown SQL, move the log files on the file system, then restart sql server.
      • Verify success by querying the system database
        SELECT name, physical_name AS CurrentLocation, state_desc
        FROM sys.master_files
        WHERE database_id = DB_ID(N'DatabaseName');
      • Move the master database. Follow the instructions from the MSDN article, as it's a little more involved. Here is the command line statement I executed for the step to move the resource database.
        E:\Program Files\Sql\90\Tools\Binn>sqlcmd -S 127.0.0.1 -d master -E -Q "alter database mssqlsystemresource 
        modify file (name=log, filename='f:\sqllogs\mssqlsystemresource.ldf')"

      • Make sure that when you go into single user mode, that all SQL services are stopped, otherwise they will take the single connection that is available.
  • Install SQL 2005 SP2
    • There is an issue with SP2, and having the ldf file for mssqlsystemresource in a different location. If possible, on a clean installation, I would install sp2, then move the ldfs. If you move the ldf's, then install sp2, copy the newly created mssqlsystemresource.ldf from your default data file location to your custom ldf location, overwriting the old ldf.
  • Install QFE KB925673 from the TFS installation media
  • Change to static IP
  • Download and install .Net Framework 3.0
  • Snapshot server so we can roll back changes if we need to do this again, either with fresh data, or because something went really bad.
Upgrade Existing TFS 2005 to 2008
  • Snapshot existing server
  • Backup databases for extra safety
  • Turn on windows firewall to prevent access to TFS during upgrade process, although at 12:30am I don't think many people are trying to access it.
  • Even though the upgrade instructions didn't tell me to do this, I shut down the TFSServerScheduler
  • Install to E:, even though original installation was to C, C drive was running very low on space.
  • Installation failed on first attempt. Exact failure was during the .net 3.5 beta 2. This might have been due to the fact I was down to < 250MB free space on my System drive. Reverted the snap shot to start over. 
  • Moved the 2GB page file to the E:\ Drive to free up some space. There was also some updates that had not been applied.
  • Applied all updates, and then installed the .net 3.5 Framework by itself first.
  • Checked to make sure I could still connect to TFS, but I could not. It failed with error TF30331, which is a generic can not connect error. Looking at the error details, there was mention of assembly manifests not matching. A quick Google search yielded a result indicating to try aspnet_regiis -i, which fixed the problem.
  • Now was a good time to back up the databases and perform a snapshot.
  • TFS upgrade went better this time, no errors.
  • The virtual servers in IIS were wiped and reset, which was a bit of an issue. We were running on https port 8088. Adding the cert back was easy, as was changing the port, however, there are several places that need to be updated to point to the correct url and port. I was getting 503 and general asp.net errors.
  • Edit app.config in E:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\TfsScheduler
  • Edit URLs web.config in E:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services
  • Update TfsIntegration.dbo.tbl_subscription. There were 4 new rows for the default URL. I removed the 4 new rows.
  • After updating the config files, TFS started working again.
  • I noticed that there was a lack of commands available from the source explorer view on machines that only have VS 2005.This didn't seem to have an impact for the 1 day that TFS was running.

TFS Install

  • Install TFS 2008 to E:\...
  • Install TFS 2008 Team Explorer to E:\...
  • Snapshot
  • Copy TFS databases to new TFS server
  • Started out by following instructions on how to move from 1 server to another server.
    • Use RSKeyMgmt -l to generate Reporting Services Accounts, there was 1.
    • Stopped TFS Scheduler and WSS Timer services
    • Stop the SQL Server that Reporting Services was running on, which is the only sql server on the box.
    • Restore TFS, ReportServer, and Sharepoint databases to SQL 2005 (I would suggest scripting this out so you can easily re-run the next time thru).
      • Databases
        • ReportServer
        • ReportServerTempDB
        • STS_Content_TFS -> WSS_Content
        • TfsActivityLogging
        • TfsBuild
        • TfsIntegration
        • TfsVersionControl
        • TFSWarehouse
        • TfsWorkItemTracking
        • TfsWorkItemTrackingAttachments
      • The only tricky one was the sharepoint content database as the name changed. I used the following T-SQL:
        RESTORE DATABASE [WSS_Content] FROM  DISK = N'E:\Temp\TFS\STS_Content_TFS_backup_200710201600.bak' 
        WITH  FILE = 1,  MOVE N'STS_Content_TFS' TO N'E:\Program Files\Sql\MSSQL.1\MSSQL\Data\WSS_Content.mdf',  
        MOVE N'STS_Content_TFS_log' TO N'F:\SqlLogs\WSS_Content_log.LDF',  NOUNLOAD,  REPLACE, STATS = 10
        GO
  • Change the connection string in %TFS%\Web Services\Services to have the name of the old data tier server name. The TFS admin tool for renaming expects this.
  • Use the TfsAdminTool to execute the RenameDT function.
    • Started getting errors saying that the tool could not connect to the database.
    • Tried allowed named pipes, and changed the name of the database in the web.config file. Named pipes didn't work, and I got an error saying I need to use the old data tier name (as expected) with the new name in the web.config file.
    • SQL Profiler showed that tfsAdminTool was not connecting.
    • Event logs were clean
    • Turned off windows firewall
    • Tried renameDT localhost
    • Using reflector to inspect TfsAdminUtil and related assemblies, it looks like it's trying to make a call to the old TFS server's Reporting Services web service so that it can update connection string info on the new service. The new TFS server does NOT have access to the old server so this obviously is not going to work.
    • Using reflector, identify changes made during a RenameDT operation and make those changes manually
      • Update connection strings in Reporting Services Data Sources. I'm going to wait until I am instructed to turn RS back on, then go in thru the web interface to upgrade the data sources. They are stored as binary data in the DB.
      • Update the web.config file we changed above
      • Grant login access to service account (which was done by the TFS setup on the new server before we even tried to rename the data tier)
      • Update tables by calling stored procedure prc_update_database_servername, which I can't look at, but can manually execute by passing the old server name and new server name to. This is in the TfsIntegration database.
        • When executing I got 1 row affected. I guess I could have ran sql profiler to see what it did. For sure, it update tbl_database.servername.
      • TfsIntegration.dbo.tbl_subscription. Update address to http://datfsp100:8080/*
  • Ran "tfsAdminTool ActivateAT newApplicationTierServerName" to "change" the name of the application tier to the new server name. This completed the first time without errors.
  • I'm now up to the part that deals with user accounts for users and services. Since the new TFS server is on a completely different domain, all of the account names are different. This was one of the steps that worried me from the start. I'm not sure what I need to do to restore my server to an operational state. Adding a bunch of throw away accounts isn't appealing. I'm going to go back to Reflector to see what the TfsAdminUtil is doing for this step.
    • It looks like it calls a stored procedure prc_security_update_sid, which I think updates tbl_security_identity_cache.
    • I went ahead with the instructions. There was an error, but the instructions said this was to be expected.
    • I didn't have a service account for reports, so I skipped that step.
  • The step to remove and re-add the content database failed. This is possibly due to mis-matched schemas.
  • Clean up Reporting Services
    • Update DataSources
    • Add tfsReports account to TfsWarehouse TfsWarehouseDataReader role.

Current Status

  • TFS work items and source control are working, however all of the work items need their assigned user updated. While source control works, users and their machines that had connected to the old TFS Server, have conflicting workspaces.
  • Reporting Services works, but none of the reports will run due to some type of login/permission error.
  • SharePoint isn't doing so well, as the content database can not be restored.

Stay tuned for my follow up post.

Resources

Monday, October 22, 2007 12:43:26 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Wednesday, October 03, 2007

My friend dialed up 1-800-MyComputerIsBroken and got me on the other end (as usual). The problem, a partially broken network adapter, you know when windows says your NIC is connected, but it just doesn't seem to work reliably. In this case, my friend was unable to connect, or stay connected to World Of Warcraft (the horror). Short of replacing the NIC, my friend had tried most of the common stuff, like different network cable, trying a different computer with his normal network cable, plugging a different computer into the same port on the firewall, etc. My first thought was, maybe WoW got corrupted, but after my friend started browsing the web he noticed timeouts and other issues which led us to believe it was a wider problem.

I know I had come across some dos shell commands that is supposed to reset your NIC, so I set out to rediscover those commands. I was pretty sure Scott had posted something awhile back, and after a quick search, I had what I was looking for. The following commands are taken from Scott's post:

   1:  ipconfig /flushdns 
   2:  nbtstat -R 
   3:  nbtstat -RR 
   4:  netsh int reset all 
   5:  netsh int ip reset 
   6:  netsh winsock reset
 

While the post's title makes it sound like it's a Vista only fix, it did work for my friend who was running WinXP SP2. I had also come across another site that talks about some of the commonly used command line utilities.

Wednesday, October 03, 2007 11:45:43 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Sunday, September 30, 2007

Yesterday I rebuilt a domain controller, and that night, I felt like rebuilding my computer from the OS up. I've been having allot of problems with Windows hanging at the logon screen, the display going out on the monitor, etc, and I had had, just enough, so last night I backed up a few things, threw in the WinXP SP2 disk and started fresh.

Issues that forced the reformat

  • Too much clutter. After 18 or so months, there is just too much clutter on my machine. Too many utilities not used anymore. I'm almost to the point of using VM's for most stuff. I will probably look to that with my next desktop purchase, which will hopefully take place next year.
  • Video Card Driver Issues: I hadn't updated by video card drivers in quite some time. The first update I applied about 1 month ago, and it messed up the resolution on my 2nd monitor. It was showing 1280x1024 instead of 1440x980. About 1-2 weeks ago, NVidia came out with Beta drivers for all the new games coming out. Hoping to fix my screen resolution issues, I installed them. About that same time I installed Kaspersky anti-virus, and between the two of them, started having various problems, which I blame mostly on Norton not uninstalling properly.
  • Attempted to remove Norton in favor of Kaspersky. (See Above)

Backup

  • I keep all important data on 2nd hard drive, so that when I do reformat, I don't have to do much.
  • IE Favorites, stored at c:\documents and settings\User\ were synced using folder share, now synced using groove.
  • Groove Account: Since I have the same account on multiple computers I didn't really need to back it up, but it was easier to do so. Just export your account from Groove.
  • SyncBack Profiles
  • IE/Outlook Feeds: C:\documents and settings\adams\Local Settings\Application Data\Microsoft\Feeds

Decisions

The only real decision was to go Vista (and if I went Vista, go 64 bit). I have been running Vista on my laptop for over 6 months now, so I do have a bit of experience using it, and could make a fair comparison between XP and Vista. In the end I decided to go with XP SP2. I don't have more then 4GB of Ram, nor do I have a DX10 video card, so I didn't feel as if Vista gave me anything more at this time. I plan on making the switch to Vista when I upgrade the desktop machine next year sometime. That will also be the point at which I switch over to 64 bit, as I intend to be running 4GB+ of ram.

Process

  1. Backup
  2. Insert XP SP2, and reboot. Press F8 to access boot menu and select DVD-Rom drive
  3. Wait for XP Setup to load
  4. Realize that the drive letting is messed up due to a HD on the ATA interface.
    1. Shutdown PC
    2. Unplug ATA HD
    3. Start back at Step 2
  5. Drives are now correct. Select C drive, delete partition and reformat.
  6. Windows Installs
    1. Time Zone
    2. Network Settings (Set to Static)
    3. Can't join the domain because no drivers for the NIC
  7. Windows is now installed
  8. Install latest NVidia drivers, verify resolution on 2nd monitor is correct (check)
  9. Install Kaspersky, verify startup problems are gone (check)
  10. Install latest sound card drivers
  11. Install latest chipset and device drivers for on board devices, like the NIC (check)
  12. So far, no problems
  13. Enable remote desktop, join domain, add domain user account to Users group
  14. Windows Updates, including .Net Framework 2.0,3.0, IE7, WM11, and all updates
  15. Start installing software

Synchronization

  • Getting grove set back up was pretty easy, although not as easy as I had hoped. While the account settings were backed up, which included the workspaces, the locations on where those workspaces should be located was not. It was pretty easy to choose the correct location, but once you get to 10+ work spaces it could be kind of a pain
  • Added IE Favorites to synchronization. Instead of looking for the favorites folder in explorer, in Groove, go to Options/Preferences/Synchronization and check the box for Internet Explorer Favorites
  • Ran into my first limitation with Groove. I wanted to try to sync my RSS feeds, but when I selected the feeds folder, I got a warning directing me to the Groove help topic on WorkSpace restrictions. Those restrictions basically said, the feeds folder (too many files and folders), and my MP3 folder (too many files, and my root mp3 folder would be > 1GB) are not Groove friendly. It looks like I may need to keep folder share around.

What's Left?

  • More software, such as Visual Studio 2008 Beta 2
  • Organize Start Menu
  • Install Steam and TF2, hopefully stuttering issue is gone
  • Install Printer and Scanner Drivers. Hopefully network printer sharing issues have been resolved
  • Backup strategy
  • Feed synchronization strategy or software application
Sunday, September 30, 2007 8:01:49 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Saturday, September 29, 2007

So I ask, what do you do for fun on the weekends? I seem to enjoy managing my home network. This weekend, it was fixing active directory, which meant, removing my primary DC and replacing it.

I had been having problems for quite some time, but had not had the chance to setup a new DC to take over the FSMO roles. Well, with the addition of my new DL 380 server, I finally decided it was time to fix all those annoying AD problems. I started out by create a new DC (02) as a VM on my primary desktop computer. Since I'm running 3GB or RAM in it now, I have enough to spare to run a DC to manage all of 5 computers at my house (I know, overkill).

After I got the new domain controller (02) up and running, I let it sit for a week, mainly because I had other things to take care of. It also made sure that some of the AD replicated over. Since this is my home network, and if I completely trash it, I'm not out of a job, I'm taking a fair number of shortcuts (which probably led to my primary DC experience problems in the first place), so I would not use my steps below as is in a production environment.

I knew I needed to transfer the FSMO roles from the old DC (01) to the new DC (02), and did so by following this guide. I also set the new DC (02) to handle the Global Catalog using this guide. I rebooted the machine between each step, and checked the event log for any errors. I finally got it down to where there were no errors on startup, and everything seems to have been replicated to the new dc. So it was now time to kill off the old DC (01), and make a new one (still 01). I followed this Technet article on how to demote a domain controller. DCPromo failed the first time on the NETLOGON step, but the 2nd time it was a success. I shut down the VM, deleted the old vmdk, and copied the vmdk from my base image to the folder for the DC (01).

DC01 booted up, as expected, so I configured it for Sysprep rebooted, and went thru the setup wizard. Did a quick windows update, installed DNS, and I was ready for some DCPromo Action. Not much to say, the DCPromo went smooth, changed the FSMO roles and GC back to DC01, rebooted, and everything was looking good.

There was one last issue, and that was with DNS. I was getting a warning under event id 4515. I installed the Win2k3 support tools and used ADSIEdit.msc per these instructions to fix it. I deleted the extra zone from the domain (option 2) and the "system" (option 3), leaving just the zone in the forest (option 1). I restarted the DNS service on both DC's, and no longer got the errors.

Saturday, September 29, 2007 7:21:28 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Friday, September 14, 2007

I attended a presentation sponsored by Microsoft, at their local office in Waukesha; ArcReady - Web 2.0 & Beyond, Applying Lessons to Your Company. Session 1 was used to define Web 2.0 in the eyes of the presenter, Jon, Rauschenberger, CTO for Clarity Consulting, followed by how to write web 2.0 applications on the Microsoft platform. Since you can't write an complete application in only 75 minutes, the 2nd session was more a quick sample of some of the technologies available. I was too busy trying to digest the first session to pay much attention, and I had seen most of the technologies presented before.

For me, the first session made the trip down from Madison more then worthwhile. Previously I had thought of Web 2.0 as Ajax, but I know realize it's much more, and just because your site uses Ajax, doesn't make it a Web 2.0 site (and no, you don't have to have a web 2.0 site to be successful). The other main point I took away was, enterprise applications are still not ready to be mainstream web 2.0 applications. All of the examples provided were consumer grade web applications.

High Level Notes:

  • Web 2.0 is a term used to describe a web site that encompasses many different technologies and concepts. I feel that to be a Web 2.0 site, you need to use 2 or more of the following, and do 1 of them really good.
    • Develop a Platform, not an application (Facebook, SalesForce.com)
    • Harnessing the Collective (Wikipedia)
    • Data as the Next "Intel Inside" (Google Apps, Microsoft Live, Amazon S3)
    • End of the Software Release Cycle (Google Apps)
    • Lightweight Programming Model (Facebook)
    • Software above a single device
    • Rich User Experience (UX)
  • Applications come and go, but a good platform has the potential to live on. Take a look at the big players, Microsoft, Google, Facebook, Salesforce, Amazon. They are all developing a platform for developers to write applications for. It kind of reminds me of the open source movement, where you you have a bunch of people producing a piece of software that is so much more then if just 1 person was developing it. Encouraging developers to design applications for your web platform, gives you more functionality then you could ever implement on your own.
  • Automated testing and deployment to production is a must in the Web 2.0 age. Fear of breaking production and complicated build procedures slow the process of getting your application and features to market. It also makes it easier to fix bugs when they are found. This really helps support Agile/XP, which is the norm in Web 2.0. Breaking up features such that a single developer can implement something in one day, and let the automated build process deploy it, will get that feature to your customers much sooner. Consider following Microsoft and Google in that their web applications are always in beta.
  • The traditional way of gathering requirements does not work as well in Web 2.0, especially with a very Agile, highly automated build. Having a BA sit with a customer and turn out the next version of Encyclopedia Britannica for requirements just doesn't work. Instead, a user experience expert, should sit down with the customer, and come up with a set of working screen mock ups that meet the customers needs. Then, these screens are turned over to the Architect and Developers to implement the backend systems, and hook everything up. This should cut significantly down on end user acceptance testing, since the customer already saw the working screens, which allows for automated deployment to production. The user experience expert needs to have some understanding of development, just as the developers need to have some understanding of the UI.
  • End user participation is key in building loyalty. However, this is sometimes difficult in the enterprise (External and Internal), and depends on your application. Some examples of what you can do, and what is almost expected as a minimum in Web 2.0:
    • Developer Blogs
    • Tech Support Forums
    • Feature Request Forums
    • Allow customers to post reviews on products
  • There is a difference between internal and external use of web applications in the enterprise.
    • External refers to your public facing applications for customers.
    • Internal refers to intranet applications, such as Sharepoint, used to help your businesses grow and manage data internally.
  • Internal use of Web 2.0 is just as important
    • There is a huge amount of untapped data trapped in the minds of employees.
    • It is hard to get people to share information, and break down traditional barriers in the enterprise
    • Platforms such as Sharepoint can greatly increase the exhchange of information, and management of data.
    • You need to train employees on how to use the platform. For example, posting documents in Sharepoint is about 1% of it's total functionality, and in reality, a network share handles it better. The document revision tracking, linking to discussion boards, Wiki's, blogs start to leverage it's full power. How to create and use lists, sites and workspaces should be taught in a way such that IT doesn't need to have a hand in everything.
    • Management needs to be comfortable with things like the Wiki and blog, and encourage their use.

The power point presentation should be posted in a couple of weeks:

http://www.claritycon.com/arcready

Friday, September 14, 2007 3:33:16 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# 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 7:41:42 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
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 5:14:35 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# 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 4:51:44 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# 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 11:10:08 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Thursday, August 30, 2007

Scott posted another edition of his "Weekly Source Code" where he lists open source projects that he finds interesting. The idea is to examine the source to find ways to improve your own coding, by finding examples of what to do, and what not to do.

 

One of the projects listed was Fog Creek's Co-Pilot software, which is a remote help desk software that works across firewalls. The client code, based on VNC, is available under the GPL. Reading thru their tech page, they talk about implementing a version of the STUNT protocol. The STUNT protocol, put simply, is a way to do direct Internet connections across NAT, bypassing the need for a proxy or reflector (Co-Pilot's term) piece of server software. The main advantage to the STUNT approach is that it is much faster since you are not going thru an intermediary. STUNT reminds me of one of the methods used by Skype to establish connections. While they didn't use the term STUNT, it was very similar in concept.

 

This is particularly interesting for me due to my current project, and some of the communication requirements we have for our products. The idea of a direct connection, possibly to a VNC type application listening on the other end would make trouble shooting a whole lot easier....assuming we were not trouble shooting network connectivity.

Thursday, August 30, 2007 8:15:20 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Thursday, August 23, 2007

I found a new blog that had a ton of information that I just happen to be looking for. http://blogs.technet.com/daven

All of the following was taken from the above blog.

  1. Microsoft.com is running on IIS7/Win2k8 Beta 3
    1. http://blogs.iis.net/bills/archive/2007/06/15/www-microsoft-com-is-live-on-iis7-beta-3-are-you.aspx
  2. The web server role is now included in the core
  3. Speaking of core, below is a list of command line commands that can be used to get your core install off to a good start.

When the Core installation is finished, you have a server with an unknown name, with a blank administrator's password in a workgroup.

To get it configured you'll need these commands:

 

net user administrator *
hostname
netdom renamecomputer <ComputerName> /NewName:<NewComputerName>
netsh interface ipv4 show interfaces
netsh interface ipv4 set address name="<ID>" source=static address=<StaticIP> mask=<SubnetMask> gateway=<DefaultGateway>
netsh interface ipv4 add dnsserver name="<ID>" address=<DNSIP>index=1
netdom join <ComputerName> /domain:<DomainName> /userd:<UserName> /passwordd:*

 

And a few optional ones:

 

Cscript C:\Windows\System32\Scregedit.wsf /ar 0
WinRM quickconfigcontrol timedate.cpl
control intl.cpl
Slmgr.vbs -ato
start /w ocsetup /?

Thursday, August 23, 2007 8:15:20 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
# Friday, August 17, 2007

So Automatic updates installed some stuff and rebooted my computer. I thought I had it set to download and let me choose to install, but I guess not.

Upon getting to work this morning, I couldn't log on. I kept on getting an error about something could not be initialized. Turns out, this was HP Credential Manager. Messing around with the logon options, I finally found the checkbox to bypass credential manager for logon (at least HP was smart enough to put that in there). One weird thing I noticed, was that the finder print reader, which had stopped working after installing those 2 Vista reliability patches, was working again.

 

Upon logging into Windows, I started to notice things were broken. Folder Share failed to start, I could not login to outlook, MSN IM said it was down, and VS said that I had a licensing error. Needless to say I was quite concerned. After messing around for awhile, I got around to uninstalling HP credential manager, and most of my login issues were resolved. I could login normally, outlook worked, MSN, and foldershare, and I'm sure a bunch more stuff that I hadn't tried worked now as well.

 

Unfortunately, VS was still hosed. A Google search revealed that I need to uninstall delete some registry keys and reinstall. Well the first time thru, that failed, and I was left with a partially installed VS.

 

Next up, I started following the instructions from this KB article. http://support.microsoft.com/kb/907965 Thankfully I had already downloading the windows SDK to get SvcTraceViewer for WCF, so I had the MsiZap utility.  After I was done with the KB article, I deleted the registry keys specified here as well: http://blogs.msdn.com/astebner/archive/2005/11/14/492765.aspx

 

UPDATE:

It's been a little over a week since this all went down. I'm happy to report that everything is pretty much back to normal. Some of the VS addins needed to be reinstalled, like TestDriven.Net and the Business intelligence stuff for SQL 2005. I found a posting on how to re-install the sql BI:

go to the location for SQL Server setup and run .\Tools\Setup\vs_setup.exe. This will install the VS Shell. After this is installed repair the BI Studio installation by running the following from the command line from the .\Tools directory: start /wait setup.exe /qb REINSTALL=SQL_WarehouseDevWorkbench REINSTALLMODE=OMUS

 

Unfortunately, it still didn't give me BI support in VS 2008.

Friday, August 17, 2007 8:15:20 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] -
Technology
Archive
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
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 2010
Adam Salvo
Sign In
Statistics
Total Posts: 234
This Year: 13
This Month: 1
This Week: 0
Comments: 34
Themes
Pick a theme:
All Content 2010, Adam Salvo
DasBlog theme 'Business' created by Christoph De Baene (delarou)