Tim Murphy's .NET Software Architecture Blog

A TFS Developer In A GitHub World May 04

Git and GitHub have been around for a few years now.  They are becoming more popular by the day.  I finally got around to looking at them more closely over the last few months and decided to summarize the experiences.

My first experience with GitHub was not the most pleasant.  I was using Visual Studio 2013 which doesn’t seem to have the best integration story (or at least didn’t when I tried it).  The fact that it required that an existing repository be cloned via the GitHub desktop before Visual Studio knew anything about it was the biggest pain.

Visual Studio 2015 on the other hand has a much better use story.  You are able to log into your repository and get a clone of the repository without breaking out to another tool.  The commit process is pretty similar to that of TFS from that point on.

From my trials I have found that GitHub works well as a source control repository.  It is hard at first getting used to the non-Microsoft verbs that are used.  Retraining yourself that you have to do a commit and push before something is actually checked in instead of just doing a

As for working as a team I think that TFS still has the better features.  This may just be because it isn’t as well integrated with Visual Studio.  Having customizable work items in TFS comes in very handy, especially on larger enterprise projects.

The wiki gives a good place to put documentation, but it doesn’t give you a place to manage Word, Excel, PowerPoint, PDF and Visio documents that might have important information about your project. This is where TFS and SharePoint really shine.

Another drawback I see over TFS is that GitHub repositories are public and can’t be private unless you have a paid account.  I can create a free TFS Online account that gives me private repositories and access for up to five users.  This makes it better for the individual developer to the small team.

Of course there is a third option that you can use Git in TFS.  This gives you the source control of Git with the project management features of TFS.  It took a little bit to get may existing code into the new Git-TFS project repository.  Then came the realization that the only source control viewer for Git repositories is in the portal.  The growing pains continue.


I am sure that the story around GitHub will improve over time, but right now it just seems like people are using it because it is what the cool kids are doing or they are working on open source projects.  If I have to advise a client I am going to suggest they go with the product with the best and most complete story with the best integration to their current toolset.  For now that is TFS, especially if you are a Microsoft development shop.

As for my GitHub experiment, it goes on but I deleted the repository I had created for security reason.  Stay tuned and see what else develops.  The next step is probably Git in TFS.

Increase Cloud Application Responsiveness With Azure Queues and WebJobs May 03

This post is based on the presentation I gave at Cloud Saturday Chicago.

In a mobile first world services need to be able to process high volumes of traffic as quickly as possible. With the certification and deployment process which native mobile apps have to go through being long and sometimes uncertain, we find ourselves looking for ways to make improvements without changing the device code. The flexibility of Azure and other cloud platforms gives developers the ability to easily implement changes to solutions using that can be deployed quickly with nearly infinite resources.

The solutions described here can also help the throughput of you web applications as easily as mobile apps. This article will demonstrate the capabilities of Azure WebJobs and Queues improve application responsiveness by deferring processing.

Let’s start with what a normal mobile app infrastructure design may look like. We have a mobile app which is sending data to a web service to be processed. This service may have a whole workflow of operations to perform on that data once it is received. Once the processing is complete the data is stored in an Azure SQL Database.  The problem that we are facing is that you don't want the mobile app to continue to wait while the processing occurs as this may cause timeouts or the delays in the UI while.


To reduce the delays we can make a couple of minor changes using features of Azure. We remove the main workload from the web service so that it simply puts the incoming message on an Azure queue. The work that used to be in the service is now moved to a continuous Azure WebJob along with code to read from the queue. This give the service the ability to return an acknowlegement message to the mobile app almost immediately. The WebJob can pull from the queue at its own speed and since we are in the cloud we can easily add new instances of the WebJob to scale out if needed.


What are the actual performance differences? That will depend greatly on how much work your service was doing to begin with. If it was only a simple table insert there may not be a significant improvement or possibly even a loss due to the serialization to the queue. If you have to reach out to several different resources or perform a strong of operations this will off load the real work.

The Code

The first thing that we need to do is add the code to insert into the queue from the service.

string connectionString = ConfigurationManager.ConnectionStrings["AzureWebJobsStorage"].ToString();

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(

CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

CloudQueue queue = queueClient.GetQueueReference("yourrequestqueue");


var tempMessage = JsonConvert.SerializeObject(request);
CloudQueueMessage message = new CloudQueueMessage(tempMessage);


In order for this code to work we need to setup configuration connection strings to the storage account which will contain the queue.  In order to get the keys for the storage account open the Azure portal and go to [your storage account] –> Keys.


Below are the connection string entries that you should use.

<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=yourstore;AccountKey=your secondary access key" />
<add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=yourstore;AccountKey=your secondary access key" />

Now we add a new Azure WebJob project to our solution.  You will find the Azure WebJob template under the Cloud template section.


Once we have the project add the following code to a method in the Functions class specifying the name of the queue in the QueueTrigger parameter.  In this instance I have used the JavaScriptSerializer to deserialize the message from the queue.  You can then pass the object on to the processing methods as you originally had in the service.

public static void ProcessQueueMessage([QueueTrigger("your queue")] string message, TextWriter log)
    var serializer = new JavaScriptSerializer();
    YourType tempRequest = serializer.Deserialize<YourType>(message);
    // Do your work here

Once the storage key is added to the connection strings for the WebJob as we did for the service we will be ready to deploy and test.

Deploying the WebJob is fairly straight forward.  If you zip up the contents of your bin folder including the config file you can then upload it through the App Service –> [Your App Service] –> Settings –> WebJobs blade of the Azure portal.


Give the WebJob a name, leave the other settings and select the file for your zipped bin folder and you are all set to go.  I will cover debugging in a future post.


Creating WebJobs and manipulating Azure queues is not rocket surgery.  If you have kept your code as loosely coupled as possible then moving to a continuous WebJob solution will be fairly quick and painless.  With just a little effort your application will seem more responsive and will be able to handle much larger request loads.

IDEs For Developing Node.js In A Windows Environment Apr 11

Node.js has become one of the most predominant JavaScript based solution frameworks over the last couple of years.  As with most ideas that start in the open source community it has crept its way into the Microsoft based platforms.  For those of us who make our living in the Windows ecosystem it is beneficial to know what tools are available to add Node.js components to our solution landscape.

This post will briefly introduce four of the development environments to build Node.js projects on the Windows platform.  These include DOS command line, VS Code, WebMatrix and Node.js tools for Visual Studio.

Command Line


As with most development, the solution with the fewest bells and whistles has the most power.  You can simply download the Node.js base from nodejs.org.  This will supply you with all the basic components including a Node.js command window.  At that point you can use npm to pull down what ever packages you wish to leverage and use your favorite text editor to develop solutions.

VS Code

One step up from command line is Visual Studio Code.  This is a tool that Microsoft built in response to the portion of the development community who prefer a minimalist solution where you pick every feature you want to include in your code explicitly.  Since it is a very file based/folder based tool there is no native support for managing associated resources such as modules that you want to include in your Node.js package.  In many cases you still need to leverage the command line in order to perform operations such as adding modules.


You can open an existing Node.js folder and effectively maintain your application.  There are several VS Code Extensions available to help with the out of the box deficiencies and more are being added all the time.


With WebMatrix you add the ability to start from a project template. You still won’t have the capability out of the box to add new Node packages.  In theory this should be overcome by simply installing the NPM Gallery extension, but when I tried it there were bugs that prevented retrieving any new packages.


On another cautionary note, I have found that WebMatrix can have unpredictable problems where sometimes Node.js code that will work in other tools will have random results.  I’m not sure if this is a result of my environment or the WebMatrix hosting model, but buyer beware.

Node.js Tools for Visual Studio

Visual Studio is the envy of all other development platforms so it is to be expected that it is the best development experience for the Windows platform.  You have all your favorite productivity features.  If you are normally a .NET developer and need to do Node.js development this is your choice, hands down.  It gives you intellisense, debugging and profiling on top of NPM integration.  What more could you ask for?



In the end everyone will have their favorite toolset based on how they work and what type of projects they are developing.  There isn’t a right or wrong choice, just your personal preferences.

BUILD 2016 Thoughts: Home Sweet Windows Apr 04

It is that time of year again where Microsoft developers gather in San Francisco to hear the direction that Microsoft is moving and the tools they are offering to get us there.  The big theme this year has been “Windows is home for developers”.  So what did Microsoft have in store for us?

How Far Have We Come

There were a lot of stats that showed up during the keynotes.  A couple that stood out for me were that there are currently over 270 million users on Windows 10 and that Cortana is answering over 1 million voice questions a day.  First, this makes Windows 10 the fastest adopted version of Windows in history which say to me that Microsoft is starting to get a little of its appeal back.  Second, it tells me that even if Windows Phone didn’t take of the way it should have it still brought about assets that for Microsoft that they are leveraging to the benefit of users.


Now I didn’t hear anyone at BUILD say why, but the next update to Windows 10 will be called the Anniversary Update (I guess 31 years is a nice round number).  Whatever the reason there were a number of new features that will be coming with the release that are worth looking at.  The three big features included security, ink and Linux (believe it or not). 

The one security feature that stood out is biometric logins from Edge.  This allows you to use something like a fingerprint reader to log into a web site.  My understanding is that this is an extension of the Windows Hello interface.

The second big feature is the ink enhancements.  The statement was that since most people still use a pen and paper so often that it should be front and center in your experience. This includes context sensitive handwriting recognition that can realize that if you write a word that implies a date it will be a link that can open Cortana and set a reminder.  This along with new highlighting feature, a new sketch pad and rulers that make it easier to draw lines and shapes the ability to use a pen on your computer becomes infinitely more powerful.

For the third announcement Microsoft introduced a Bash shell for Windows running Ubuntu Linux.  I’m still not sure where this is useful, but the fact that the two can live together and interact bears another look.


Here is where wishes come true.  It was rumored before last year’s BUILD that we would hear that Microsoft would buy Xamarin.  That announcement came earlier this year instead.  This week we really got our wish when Scott Gu announce on stage that Xamarin will come free to every Visual Studio user.  Not only that but we will also get access to the other Xamarin goodies like the iOS emulator, test recorder, and test cloud. 

BUT WAIT!  There’s more!  The Gu also announced that Xamarin will be open sourced through the Open Source Foundation.  Merry Christmas!


While it didn’t feature as prominently as it did last year, HoloLens still got some stage time.  It could be that your next classroom experience is with HoloLens if you happen to be a medical student at Case Western Reserve University.  Or you may find HoloLens at your next visit to the Kennedy Space Center where you can explore Mars with Buzz Aldrin.


Azure continues to be a home run and savior for Microsoft.  As PC sales decline and the types of devices we use diversify the cloud has become the backing service for everything.  You can see then why Azure is now in what will be mile long data centers and why almost the entire second day keynote of BUILD was dedicated to Azure.

Xbox And Gaming

Developers are finally getting the opportunities on Xbox One that they have been asking about since it was announced.  The combination of Universal Windows Platform (UWP) and DirectX 12 not only means that more games will be shipped for both Xbox One and PC, but developers will be able to able to write Xbox One apps and games more easily.  They will be able to test them by using the new developer mode that will be available on the Xbox One.  They will then be able to release it to a unified store.  What more can you ask for.


As we have seen over the last year, Cortana is everywhere.  Since every device, regardless of platform, can run Cortana it has the ability to help you in ways that other personal assistant AIs can’t.  They also showed off how Cortana will be integrated with Skype and Bots to give you access to entertainment, products and services that relate to your chat conversations.

Cognitive Services and Bots

I can’t say that the keynotes really made it clear what cognitive services and bots are.  We say where they play but there was not explicit definition of what they are.  From what I saw the cognitive services are pre-packaged services built on top of machine learning.  They are handy tools that you can incorporate into your applications to make them more human friendly like the ability to detect emotions from a person’s expressions.

Bots on the other hand are built on a new framework that is available to devs which integrates services with natural language syntax understanding.  It seems to be the next step in allowing developers to create components that will plug in as part of a greater AI type experience for users.


That is a lot to take in and a ton of new things for devs to learn.  Microsoft is making it easier for developers of all backgrounds to use Windows as their main development environment and a jumping off point to develop solutions that will live on other platforms.  At the same time they are building cloud and device features that have the potential to move computing light years forward.  Even though this year wasn’t about the hardware it is still an exciting time to be developing on the Microsoft platform.  Check out the content from BUILD on Channel9 and find out which new features you can apply to your solutions.

Do You Know How Much Your Azure VM Costs? Feb 09

You go through the Azure price calculator and figure out everything you think are going to need for your Azure VM and how much each resource will cost you on a monthly basis.  You then pick a template from the marketplace and implement it assuming you know what services are being stood up.  Do you really know?

What you may not realize is that if you didn’t go through the pricing calculator thuroughly you may be in for some surprises on your bill.  Not only do you get charged for the hardware that you have selected, but also the image that you choose to run on it. 

The cost per minute of each image is not posted on the image itself.  This is made up of each component you are using and can be figured by reviewing adding up all the costs listed here.  If you don’t know to look there then you won’t know that there are additional costs until you get the invoice at the end of your billing period, and these can really add up.

As I mentioned above this surprise can also be avoided by knowing server type you should select in the pricing calculator.  You may assume you are just getting a Windows server and then adding SQL Server too it, but if you pick SQL Server as the Type for you vitual machine you will see that the real cost almost doubles for you VM.  This is the server type that is actually used for the SQL Server templates.

In some cases you will find that licensing the software in the template costs much less than running the image.  Since you are renting SQL Server instead of buying it you are paying for it each month. 

If a SQL Server standard license cost you $600 per processor and you are running a 2 processor server you can put SQL server on it yourself for $1200.  The same VM loaded with SQL Server standard will cost you ~$300 a month.  At that rate you would pay for the license in 4 months.  You need to take this into account when making your decisions.

Of course if you are only running the server as a testing server that is shut down most of the time then your cost for a year may actually come in under the cost of a license.

The point is be educated about what your Azure VM is really going to cost you and what your return on investment is.

No Excuse For Not Developing For Windows Phone Dec 10

Ok, I’m biased.  Let’s get that out of the way up front.  I am a fan of the Windows Phone and it’s user interface.  I think the live tiles, informative lock screen and application contracts offer a far superior experience to Android and iOS.  Regardless of my preference I believe that at this point it is inexcusable for all but the smallest companies to ignore Windows Phone.

There has been one big reason for the lack of adoption Windows Phone: Apps!  About 75% (not a scientific number) of the people that I have talked to would prefer a Windows Phone over Apple or Android if the apps were there.  Microsoft has a chicken and egg problem though.  They can’t get better market share without more key apps, but no one wants to put there apps on a platform that doesn’t have market share.

I know the stats: Windows Phone has 2% market share.  I don’t think that is the real story.  That ignores that fact that this still equates to over 50 million active users.  That is a significant number of your customers that you are choosing to neglect.  The good will of your customers is worth more than the cost of development and maintenance.

Universal apps mean that you can reach more users than any other platform with a single code base.  With over 110 million installations of Windows 10 and a much larger pool of potential Windows users your app can reach a wide and profitable margin.  Add to that tools like Xamarin which allow you to write once and deploy to iOS, Android and Windows along with reusing your back end architecture and any arguments against writing for Windows Phone get really thin.

Lastly, the business adoption of the Microsoft Surface and the rumored Surface Phone give another potential market for Windows Phone.  This opens line of business application development.  While not a large user base for each individual app, it gives an infinite number of opportunities.

In the end, the variety of value opportunities make a strong case for investing in Windows Phone development.  Spend some time with the tools and ecosystem.  You will find the experience rewarding.

Open Live Writer Released Dec 09


Windows Live Writer has been my blog writing tool of choice since it first came out.  When Microsoft announced that it would no longer support and upgrade the product I was understandably disappointed.

Some time ago we heard (I believe from Scott Hansleman) that they were looking at open sourcing the tool.  While anyone who reads my blog knows OS is not my first choice I anticipated the change because I don’t want to lose this productive and flexible tool.

Now it is here. No more worrying about an end of life situation for WLW now that OLW has been release.  The interface is the same and it even seems to use the same directory structure so you won’t lose work in progress.

I just wanted to say thank you to the team that made this happen.


Azure Sketchnote Collection: Part 2 Nov 25

This is the second in a series of sketchnotes documenting different aspects of Azure and related technologies.  Hopefully you find a few gems that lead to a better understanding of Azure.

Why Azure


Azure For Developers


Azure Redis Cache


Power BI


Hybrid Cloud


Azure Application Component Deployment Nov 05

I think I can! I think I can!

One of the aspects of Azure development that I have found the least amount of information written about is the deployment of your application components.  This is especially the case when it comes to ALM (Application Lifecycle Management) approaches are considered.  As with most things you get the WSYWG demo, but not how things should actually be done in an enterprise environment.  This post will try to cover as many deployment approaches as possible.  While it won’t be comprehensive it will give you enough alternatives to start coming up with your own processes.

Visual Studio

This is usually where every demo of Azure development begins and ends.  You right your web app or cloud service and “Poof!”, your solution magically ends up in your Azure environment.  In this scenario you use the publish option of the project context menu to open a wizard that allows you to connect to an Azure subscription and define where you what site or service you want to publish too.  The process is even simpler if you defined these parameters when you created the project.


Zip Files

While creating web jobs I came across this method of deployment.  You zip up your web job solution and go to Web Jobs under Settings for your Web App and you will see the blade shown below.  You can learn more about this in my earlier post here.



This is the point where we get to a manageable deployment process.  Once you have finished coding your Cloud Service you can go to the project in Visual Studio and create a deployment package using the context menu shown below.


Once you have that visit your cloud service in the portal and select the Update button.  The blade in the figure below will appear and allow you to upload the package and the appropriate configuration.  Azure will then complete the deployment from the provided resources.



If you like to be hands on FTP may be the deployment approach that is right for your team.  It should be familiar to anyone who is used to manually copying their files to a web server.  Once you go into Deployment Credentials for your Web App as shown below and then grab the FTP host name from the properties page you will be able to navigate straight to the wwwroot directory and copy your application files to the server.


From Source Control

Any of us who have been in this game for a couple of decades know that automated builds and deployments save a lot of manual deployment mistakes.  Thankfully we have a number of options for deploying from source control to Azure.  Rather than explain each I’ll put a couple of links here that do a good job of explaining the process of setting these scenarios up..

Visual Studio Online

TFS On Premis


This post gives just a quick taste of Azure deployments from the quick and dirty options to methods better suited for enterprise developments processes.  Be sure to try as many of them out as possible to understand they fit with your development team.

Can Sketch Noting Help You Keep Up With Technology? Oct 14


I saw a post from someone who had created a Sketchnote of one of Scott Hanselman’s talks.  It was the first time I had seen this as an defined process for note taking.  As I get older and technology moves faster I am finding that it is getting harder to keep up and remember everything I need to learn.  This approach looks like it could be part of the solution.  This post documents my findings as I start to use sketchnoting.

One of the things I noticed as I learned more about sketchnotes is that I have seen this approach used before in industry books.  Specifically the “Head First” series had the look and feel of a sketchnote.  It seems the authority on sketchnotes is Mike Rohde.  I took the time to go through his workbook and videos.  I wish I had started with his handbook.

Not being an artist by any stretch of the imagination I wasn’t sure how difficult learning this skill would be.  I’m always up for a challenge though and I am finding it fun to exercise my drawing skills.  One thing that I have found that makes it easier is to Bing other people’s drawings to get ideas.

As has been mentioned in a number of articles I perused it is difficult to take notes on a tablet.  Most of this has to do with the touch control available in most of the current generation of devices.  Of course your mileage will vary.  I have tried drawing with both my Surface Pro and HP Spectre 360 with varying success.  I think newer generations like the Surface Pro 4 and Surface Book will do much better.

I took a look at Moleskines but I like having a bigger drawing surface.  I am finding that a 8 1/2 x 11 graph paper spiral note book is my sweet spot.  It makes getting your fonts right easier and better alignment.  The thinner the pens you are using for your fonts can also make things look better.  The biggest problem with some of these thin pens is that they tend to bleed ink making it harder to keep clean lines, but those are the trade-offs.

Overall I am enjoying the process and it is helping me remember more of what I am working on even if it is mostly just because I am writing more.  It takes more time, but the relaxation factor is also a benefit.  It also gives you an easy way to review what you have been learning which will re-enforce topics so I would say it indeed will help you keep up with technology if implemented regularly.  I would suggest that anyone give this a try and see if it fits your style.  Have fun.

Azure Sketchnote Collection: Pt 1 Oct 02

I recently started sketchnoting to better understand topics with as many new technologies and languages come out every day.  This post is simply a collection of Azure related sketchnotes that I created.  It is meant as a quick overview of some of the key components and concepts around Azure.  I’ll post more in a future post.  I hope at least a few people find them helpful and I invite feedback.

AzureCon 2015






Azure Security Center


Azure Machine Learning


Earn Your Playing Time Oct 02

FalconsWheaton20150906 (151)

It is aggravating being a coach and a parent watching other parents complain that their child doesn’t get their fair share of playing time.  I could have done this with my own son this season, but instead I told him to work harder and he is now a starter.  Those who show effort and willingness to learn will earn their playing time.  We do our children a disservice by expecting someone to give them a role they haven’t put in the work for or don’t have the skill to perform.

We have to realize this applies to ourselves as well in our business lives.  You need to show to your company that you have value and that they are better off with you as a starter.  As a developer this may mean that you need to spend your own time writing a proof of concept.  Another approach is to ask what areas the company has skill deficiencies and make an effort to gain those skills.  You should also see if you can find a mentor.  Often this will make the road easier and both of you can improve your game.

The more you show that you have the ability and drive to make the company successful the more often they will come to you first for the important projects.  Work hard, make yourself visible and earn your playing time.

Learning The Azure Cloud Sep 18

HiddenLake20141204 (2)_3)_4)_5)_tonemapped

The cloud is everywhere around us and if you are building systems in the Microsoft space the cloud means Azure.  So how do you get started.  To my way of thinking you need to understand the front end, batch processing and storage offerings along with the toolset.  This post will outline some of the resources that I have found are helpful to getting started.

Trial Azure Subscription

The first thing anyone who is interested in Azure should do is sign-up for a free trial subscription.  If you are lucky enough to have an MSDN subscription you can also use your $100/month allowance that comes with it.  Either way nothing can ever replacing getting your hands dirty.

Once you setup a subscription you want to make sure you get the most out of it.  One of the greatest thing with Azure is that there are a certain amount of resources that you can always get for free.

Resource sites

All of the resources I have listed here are from Microsoft themselves.  There are a number of other great sites out there, but this should be enough to get you started.

The main online resource site is on the Azure site itself.  This gives you a number of scenarios and examples for developers, administrators and architects.  If you are looking for some free lectures and associated code check out the Microsoft Virtual Academy.  While you are there check out the variety of material on other subjects they have available.

The last site I would suggest for beginners is the Channel 9 Azure Friday site.  Scott Hanselman is always a great presenter and is able to boil down just about any subject to understandable nuggets.  They cover a diverse array of Azure related subjects so everyone should be able to find some pearls of wisdom.


Learning Microsoft Azure by Geoff Webber-Cross gives a good starting point for a rounded understanding of the basics involved with building Azure solutions.  It is a little out of date at this point, but then again anything in print is these days.  The concepts are still valid.

For those of you who get more advanced or have an architecture bent you probably also want to check out Building Hybrid Applications in the Cloud on Windows Azure.  This one was written even earlier, but it is from the Patterns and Practices team which I have trusted for the past 15 years.

This list is by no means comprehensive, but hopefully it will give you are jumping off point to begin your Azure journey.

What Should Your Goals Be When Developing Sep 18

Waiting For Football

This post was prompted by a number of Twitter posts that were discussing if developers thought about who would be maintaining the code they wrote.  Of course the answer is “it depends” as any good consultant will tell you.  No two developers are the same.  Some are more aware of the consequences of their decisions than others.  The real question is what should your goals be as you are developing?

The main trade off we struggle with are speed to market versus maintainability.  Every project is under time pressure and every organization struggles to keep maintenance costs down.  How do you strike a balance that gives you the best return on investment?

Thankfully many of the coding practices that make a piece of code more maintainable are patterns that can be learned and honed to the point where they do not impede progress adversely.

On the other hand, many of the abstractions used to make code more unit testable, such as dependency injection, also drastically increase maintenance cost.  This is especially true as your object graphs get deeper and each dependency relies on another above it.  The tests help greatly with making sure that you don’t break specific scenarios when you change code, but finding a new bug and the right place to add a new feature have a large increase in cost as the abstractions make understanding the code paths challenging.

They way I see it a balance needs to be struck between maintainability, testability and time to market.  How much weight each of those factors have depends on the size of your product, your market and your staff’s capabilities.  Review your company’s priorities and learn to leverage your tools and processes to match those priorities.  In the end this is a game of try, learn and repeat.  Keep your head up and keep improving.

HP Spectre x360: Review May 29


I finally unboxed my Spectre x360 from the Microsoft BUILD conference and fired it up.  I thought it might be useful to prospective buyers to cover the pros and cons of this machine.


My first impressions are that the form factor is very thin.  If fits very easily as a second machine into my backpack adding extra compute capabilities.  It has a bright, wide screen making it easier to get work done.  Generally it will also run all day on one charge depending on how process intensive the apps are that you are running.

Another plus is that with a real laptop mode, an acceptable processor, RAM and SSD, and a full keyboard makes this a viable secondary development machine.  This is something that my Surface Pro with the loosely connected keyboard and very little storage can’t do.


Power and Windows buttons are hard to find.  It would be better if there was a Windows button in the bezel like other machines that operate as tablets.  The screen also has a lot of bounce to it when you touch it in laptop mode.

After using my original Surface Pro for so long I am really missing having a stylus.  I’ve tried using the Surface stylus and it doesn’t recognize that anything is there.  OneNote on a tablet with a stylus is a great combination for meetings and conferences.


In the final evaluation it is a good machine for someone what need a lightweight machine with good battery life and decent horse power.  If you just need an email machine there are much cheaper machines.   So if you are in the right audience give it a look.