Posts

Showing posts from 2013

Running the Microsoft ALM TFS 2013 (Hyper-V) Virtual Machine in VMWare without Persisting Changes

This blog describes how to run the Microsoft TFS/ALM Hyper-V virtual machine in one of the VMWare hypervisors (Player/Workstation/Fusion). You can use the same concepts for any other virtual machine/appliance. The 2013 RTM  ALM image comes with a set of TFS and Visual studio labs .  The virtual machine and the labs  have a couple expectations: It comes as a a Hyper-V VHD running an evaluation copy of Windows Server 2012. The work items and other information are "point in time" information.  This means sprint, iteration or other information can only be used in the labs if the VMs time is set to a specific date(s).  The machine resets the time to the same specific date and time on every reboot. This lets you re-run the exercises.  Pay attention to the places the way the time is set if you wish to use this process for Virtual Machines anchored at dates and times other than the ones used for the TFS 2013 RTM ALM image used in this post. The labs work best if the machine is

Microsoft Code Analysis results differ based on Configuration

Image
Background Code Analysis (CA) is a very useful Visual Studio feature that applies good practice type static code analysis to your code base.  You can run CA manually at any time or configure it to run automatically on each build. Automatic execution can be configured per configuration per project. This means you can enable automatic CA on Release builds while ignoring it during builds in Debug mode.  Some teams do this to speed up the debug compilation cycle.  I'm not sure what in CA makes it so slow that you can't run it all the time :-( You can view which CA rules apply for any configuration or CPU type via the Solution Properties window: You can set the automatic execution of CA on a per project basis in the Code Analysis pane of the Project Properties: The method of Code Analysis  menu item and the position of the results varies by Visual Studio Version. The menu item that executes CA is located on the Build  menu in VS2013. Unexpected Behavior Microsoft

Importing a bootcamp partition into VMWare Fusion when it has Hyper-V enabled.

Image
This is quick note on importing a Windows 8 or Server 2012 BootCamp partition that had Hyper-V hypervisor enabled. By default, you cannot have Hyper-V booted inside of Fusion because of hardware vitualization conflicts.  You know you have this problem if you see the following messages in the guest machine's window in VMWare Fusion. Your PC ran into a problem and needs to restart.  We're just collecting some error info, and then you can restart. (100% complete) If you'd like to know more, you can search online later for this error:  SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (winhv.sys) Edit the Fusion VMX configuration file directly. You can fix this by editing the vmx file directly. Shutdown Fusion Find your Virtual Machine definition. Navigate to /users/<username>/Library/Application Support/VMWare Fusion/VirtualMachines/Boot Camp . Right Click on the Boot Camp package and select Show Package Contents Edit the file that ends in .vmx  using TextEdit or your

Micro Clound Foundry V2 - PaaS with Stackato - Languages and Applications

Death Notice  Stackato was sold to HP and rebranded as Helion. The entire Helion product line was killed in 2016 Previous blog article A previous blog article described how to set up a developer micro PaaS using the Cloud Foundry based Stackato from ActiveState.  This article will describe some of the languages available in this environment. Application Languages Cloud Foundry and the Application Stackato clusters support the following languages "out of the box". You can use any of these languages in the Micro CloudFoundry instance we just configured Java, using the Tomcat server Node.js Perl PHP Python Ruby .Net languages are supported through either the Mono runtime or integrated .Net support provided by Iron Foundry. Active State has several  wiki/blog pages  on this. Other languages, including Clojure, can be added by importing  Heroku BuildPacks. Demo Apps Stackato demo programs http://community.activestate.com/stackato/demos  Some are also ava

Micro Clound Foundry V2 - PaaS on a stick the easy way with Stackato

Image
Death Notice  Stackato was sold to HP and rebranded as Helion. The entire Helion product line was killed in 2016 Previous Blog Text Cloud Foundry  Open Source Platform as a Service (PaaS). It was initially driven by VMWare and later given to Pivotal when it was spun off from VMWare and EMC. The original version of Cloud Foundry was available as a hosted service and in a Micro  developer version that ran on a single VM that could be hosted on a developer workstation.  A community grew around this and there are now multiple versions of Cloud Foundry available. Cloud Foundry supports a Multi-tenant architecture where a cloud can support multiple organizations  each of which can have multiple spaces  to partition their work.  This architecture is available across all CF PaaS installations. Cloud Foundry updated to a new V2 architecture and implementation in June of 2013.  The CF "on a stick" micro version was abandon at that time. The Micro-CF codebase was apparently a

Viewing all files in OSX Mavericks

I was having a problem with VMWare after my Windows 8.1 upgrade.  Windows 8.1 had no network connectivity.  I ran into the same problem after upgrading a Windows 8 guest to Windows 8.1 on a Windows host. I wanted to look at my VMWare Fusion configuration for my bootcamp partition.  VMWare stores its information in ~/Library/Application Support/VMware Fusion/Virtual Machines which is normally not visible in the Mac Finder.  There are a bunch of pages on the interweb that describe how to make all directories and files show up in Finder.  Many of them are incorrect for Mavericks which is now case sensitive.   This posting describes how to show all files in Finder. You can show all files by typing the following in a terminal window defaults write com.apple.finder AppleShowAllFiles -boolean true killall Finder You can go back to the default view by typing the following in a terminal window defaults delete com.apple.finder AppleShowAllFiles killall Finder

Monitoring Azure from a Raspberry Pi?

Image
We have an Azure cloud network that we would like to monitor with a standalone status board.  One option is to do the "all Microsoft" Powershell thing with a windows device. Another option is to use the Linux and MAC Azure management tools released in 2012. There is also a Node.js based set of tools . An older MSDN blog entry is also useful for understanding this. Another option is to directly consume the Azure REST services used by the Node.js library.  I decided to try the Node.js tools.   REST service information is available on MSDN. Hardware Sometimes when you have stuff lying around you just have to come up with some way to use it. Sometimes it works out fine and some times not so much.  I have a 700MHz 512GB  Raspberry Pi computer sitting on the shelf with nothing to do.  Its that nifty Linux ARM based computer: with built in Ethernet, USB, video and an hardware extension bus. That hosts our monitoring scripts. I also have the Adafruit LCD Keypad Kit for the

Azure Point to Site VPN - private access to your cloud environment

Image
You don't really have to worry about connectivity when you have a single in-house data center.  All your proprietary data is on "your" network that you manage. You firewall protects your sensitive information from internet intruders.  The internal network provides routing and name lookup services. You don't really worry about connectivity when your are consuming publicly available resources on the internet.  Your internal network allows outbound connections to the internet.  Your gateway knows which DNS servers provide name support. Note: IPV4 network numbers in the diagrams are just examples. They happen to be how my internal and Azure networks are configured. Azure a Cloud Provider Cloud providers give you the ability to spin up off-site data centers that are visible and reachable from the internet.  The actual remote data center organization and configuration is somewhat opaque to you since it is managed and controlled by the cloud provider.   The cloud

The simple but awesome NeoPixel Shield with an Arduino

Image
The folks at Adafruit have put out a nice "NeoPixel shield" which is essentially an 8x5 addressable RGB LED strip built into an Arduino shield.  They have created a nice library available on github. You can see the project on their product web page .  Here is a picture of the board mounted on an Arduino Uno. The LED in the bottom right corner is LED 0.  The LED in the the bottom left corner is node 7.  The second row up is node 8-15 and so on.  The LED in the upper left corner is node 39. This picture shows the LED panel on my desktop. It totally overwhelmed the camera to the point that the rest of the room looks dark. Firmware I've created simple Arduino firmware that lets you send LED blinky commands over the Serial Port via USB.  You can set each pixel color individually along with one of 10 blink patterns.  Pattern 0 is off and pattern 1 is solid on so there are 8 actual blink patterns.  The firmware is located on github . The LEDs are daisy chained in

Examining how NServiceBus configures and uses RabbitMQ / AMQP

Image
NServiceBus acts a .Net (C#) distributed messaging abstraction layer for message driven systems.  It runs on top of a variety of transports including MSMQ, Azure Storage Queues, ActiveMQ on RabbitMQ.  This blog describes how NServiceBus configures and uses RabbitMQ using the Video Store Sample program available in the NServiceBus github repository   . Background Message driven systems are asynchronous distributed systems that have two main message concepts, at least in our project. They have commands, targeted messages, where the sender knows the intended destination. The producer sends the messages to a target. They also have publish/subscribe or event based messages where the sender target is unknown. The sender posts the event where is then received by parties that have registered interest, subscribed. Producers: Programs that send messages or post events  Consumers: Programs that receive messages or capture events  Queues: A place where messages are collected and di