Mike Poulson's Thoughts on lots of stuff

Tuesday, April 8, 2014

Below is a powershell cmdlet that I threw together to enumerate data out of our TFS instance. This is used to keep track of permissions in the event we need to re-create them and to allow us to audit it to make sure things don't change.

This can also be used to keep a pre-production environment's permissions in sync with Production.

Monday, November 11, 2013

During that time I have learned a lot about mostly the bee anatomy and parasites and diseases that affect them. I also learned how much I love watching and being around bees. I will regularly spend time standing near the hive to allow the bees to fly around me and land on me. While I have a small allergy to them I have not had a problem with this hive. The Italian honey bees that are in the hive are very calm and do not seem to have any problems when I tend to their home.

In the time that we have had the hive we have had to relocate it 2 separate times. Each move was ~5 and 20 feet from the original location. The first was due to a construction worker that was working on a house in the lot next to our house threating lawsuit because "some bees" swarmed him while he was operating the back-hoe.

Long story sort this guy was a dick! He had some incident with wasps in the past and he got all freaked out because some bees were hanging out around his equipment (obviously not the reproductive kind). Without any knowledge and without visibly watching each of the bees return to the hive on my property he assumed it was from my hive box. When I asked if he carried an EPIpen in the even he was stung he said "no". So we will just go down the path of him being a dumb ass.

"Your bees swarmed me..." - Dumb Ass (2013)

While I was not concerned about losing a lawsuit (said bees that were bothering him were not even on my property or on public land). However I was concerned because the hive was not in a location that technically following the regulations on placement. We ended up moving the hive to a location which placed it 8 vertical feet above the neighbor property lines to satisfy the placement requirements. I wish I could see the douche bag construction workers face when he came to the site the next day to see the hive was in a legal placement and not just removed from his baseless threats.

The second move was due to the attack on the hive by a "neighborhood flower thief". At ~2AM one September morning we heard some screaming ("Wake UP, Wake UP") and the sound of the hive falling off the retaining wall (falling wood). After working with SPD it was determined that the suspect ignored our "no trespassing" and bee warning signs and continued to pick flowers that we had near the hive. Something then caused her to knock the hive off the wall onto the ground below. After that the hive survived and still managed to rebuild and increase honey reserves.

The lack spare parts was one of the biggest things that stressed me out. After the hive attack we had 3 broken boxes, ~10 damaged frames and a damaged lid. We managed to get things put together good-enough after about 2 hours of the attack. The undamaged equipment allowed us time to get replacement parts without the hive swarming.

Due to consistent fear of the event re-occurring we decided to move the hive inside our fenced yard. While not an ideal location due to blockage of direct sun light the bees seem to be happy with it. And we have not had any additional damage to the hive.

How we did the moves

After talking with friends and Corky from Ballard Bee Company we found the best way to move the hive was a few simple steps.

Wait until all the foragers make it back into the hive at night.

Use an entrance reducer with a handful of grass to seal the entrance

Move the hive (we use tie-down straps to keep the hive together)

Place a large amount of branches and limbs to cover the entire front of the hive

The next morning we check to make sure the bees have cleared the grass

This move process has worked well so far. Few days after each move we noticed a large number of the bees go to the old location first then make their way over to the new location. After the first move we placed a spare box, frames, lid and entrance at the old location to collect lost bees. Each night and in early morning the box was empty. We didn't put any temporary home out during the second move.

Liquid GOLD == RENT

We managed to get those bees to pay ~2.2 gallons of honey in their first year. We learned a lot around this mostly that if you are going to give honey away get the person to commit to eating it. Nothing upset me more than to find out I gave someone honey and they have never ate it. Well except for seeing the hive smashed across the ground.

The big lessons over the last year were

Have spare hive parts in the event needed

Have some good bright flash lights in the event you need to work late

Be ready to sprint barefoot through the neighborhood after your hive attackers

LED lights really do mess with bees at night - We noticed once dark the bees would go to LED light bulbs but not standard incandescent bulbs

be educated on how to calm the fears of bees and be ready to fall in love with each bee.

We were very lucky this year where we had minimal non-human caused issues with the hive. I never did expect that I would feel as bad as I do every time I accidently kill a bee but sometimes it is inevitable.

Friday, October 18, 2013

Some teams have found the default bug states don't work well with their teams. Moving to the Active, Resolved, Closed workflow for the bug WIT has been the most popular with those I have worked with. I think part of this is because many teams (or their managers) are stuck in old-school waterfall mode while trying to claim they are embracing SCRUM or AGILE.

Either way if you change the BUG states from the default for the SCRUM or AGILE process template you will find the Backlog and board pages on web view for TFS 2012 or 2013 will break. If you revert your WIT change the ALM features will work again.

Broken ALM features will show: TF400917: The current configuration is not valid of this feature. This feature cannot be used until you correct the configuration.

Saturday, September 7, 2013

It has been ~3 months from when Puget Sound Solar installed my 4.3kW solar system.

In that time we have generated 1,910kW.

Overall I am very happy with our Solar install and we have a nice credit with Seattle City light on our power bill. I pushed and rushed Puget Sound Solar to get the install completed by July 1st 2013 so we could get the WA state sales tax exception. After all that the state extended the Sales Tax exemption for some time longer. Either way it worked out and we don't appear to have any water leaks or issues on the roof.

Now the APS interface and "software" that works with the Blue Frog inverters is not the best. The web interface is hosted on a server in China and is real slow. I personally have issues having a Linux based device (the APS Communicator) sitting on my home network.

The APS Monitor (EMA Software) is the China hosted web interface that I'm not a huge fan of. I was expecting software that was going to be installed on a home computer. The web interface does not allow easy access to the data nor does it perform well when attempting to view the detailed information on each inverter.

It seems the Blue Frog inverters are branded as Made in WA but they are really manufactured by some company in China. Then they come to WA where Blue Frog does some minor change to them that makes them be classified as made in WA. Seems a little strange but hey I get .54/kWh generated because of it.

We have not yet received the paper work from the state of WA for us to provide our generation information so we can get our Generation Credit. At the current amount we are looking to get 1910 * .54 = $1031.4 from the STATE! Woot Woot.

Monday, August 26, 2013

Microsoft provides many tools for deploying an Operating System (Windows 7, Windows 8, Windows Server 2008, Windows Server 2012). Each has their pros and cons. Some are easy to setup some a little harder.

One thing I found over the years at Microsoft was when setting up a test system that is physical hardware it is best to do a clean install, thus using WDS.

netbootMachineFilePath

This attribute specifies what PXE client should be used when the computer boots. You can use wdsutil /Set-Device /Device:<name> /BootProgram:<path> to set this.

3 common values

<WDS Server FQDN>\boot\x86\pxeboot.n12 - Tells the PXE client to NOT required F12. If you used the N12 option be sure to run "wdsutil /set-server /resetbootprogram:yes" on the WDS server. If you don't the clients will always be in reboot loop.

<WDS Server FQDN>\boot\x86\abortpxe.com - Tells the PXE client to abort any PXE boot attempt on that NIC and move to next device in boot order

<WDS Server FQDN>\boot\x86\pxeboot.com - Tells PXE to request the user to push F12. Will move to next boot device if they don't.

Friday, August 23, 2013

The TFS Build Activity logs have lots of useful information. Unfortunately this information is not real easy to get to. Using the TFS 2012 APIs we can pull the log info out of the TFS SQL DB without having access to the DB. This makes it nice because we also don't have to try to parse the activitylog.xml files.

Once you have the information you can start to track and trend how long each TFS build definition takes at each part of the build. Once you have that piece of data you can start to determine where the best place to optimize to further reduce build times.

The sample code below looks up the LKG build based off the build Definition. The LKG (Last Known Good) build will be set based on the last build for that build definition that passed/succeeded. It will do a simple output of the activity name and the time it took to complete. You can take this data along with the buildDetail and create a gantt chart that shows time for each step.

The build may be old (aka not a current LKG) depending on how your system works. But I found it is the best place to start. It might be useful for some teams to import all build (success and fail) so you can determine if there is a trend area of where things are failing.

Usings and references

using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;