Monday, 25 February 2013

Could not load file or assembly msshrtmi or one of its dependencies

So, I recently upgraded my Azure Tools to October 2012, and everything decided to fall apart in my deployment environment. Great. Thanks Microsoft.

I installed the latest tools, fixed the code caused by the breaking changes in the Azure Storage Client Library and then having tested locally - fired off a deployment to Azure.

I then got greeted with a YSOD saying:

Could not load file or assembly msshrtmi or one of its dependencies

Erm, say what now? I don't even have a reference to this anywhere in my project. However, I know that when that is the case, this is normally some low-level GAC'd thing that is causing the problems.

A quick Google reveals that I am far from alone on this issue. I ended up trying out the steps outlined

All to no avail..

I Found This Fix

I then did this - and it worked!

  • Right-click your Azure project (the one with the blue globe).
  • Click the "Application" tab.
  • Note that there is a button telling you that you have a newer SDK installed?
  • CLICK IT!
So, it turns out that some minor changes get made to a few files that make all the difference:
  • .csdef file - 'schemaVersion' is updated.
  • .ccproj - 'ProductVersion' and 'CloudExtensionsDir' are updated.
  • .csproj - You're Azure SDK references will be updated (ServiceRuntime, Diagnostics etc.)

I think the killer was the 'CloudExtensionsDir' for me, this changed FROM:

<CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\1.7\</CloudExtensionsDir>

TO:

<CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\1.8\</CloudExtensionsDir>

There you have it - check for the button in the Cloud Project Properties "Application" tab, and make sure your 'CloudExtensionsDir' is pointing to the latest install of your SDKs, which are located:

C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK

I hope this helps!

Tuesday, 5 February 2013

I'm Debt Free!

Hello Ladies and Gentlemen!

I've just logged into my Internet banking and confirmed it - I'm finally debt free.

Loan Status

The last payment on my last loan went out yesterday, and the only credit I have now is on a air miles card that I pay off in full every month.

My money is my own again.

This is awesome stuff - not only for the financial gain, but also for the immense emotional relief this gives me.

To Be Cathartic..

There was a lot of bad emotion and memories attached to this loan in particular, here's some mental associations that spring to mind:

  • Not being able to afford proper food - basically living on pasta and ketchup during the worst parts.
  • This of course had the knock-on effect of making me unhealthy, I was sick - a lot.
  • No hot water or heating - this actually did wonders for my ability to take cold showers!
  • The banging of the front door as debt collectors wanted to get money I didn't have.
  • The constant stream of red letters, legal threats, phone calls hassling me (I ended up disconnecting the phone).
  • Even when I started to get some cash (after clearing off smaller loans) - I'd still have to toss-up "food" or "heating" over "geek book to improve my skills and get out of this dead-end job".
But the one that really broke my heart - having to lie to my mother and tell her I was OK and not to worry about me.

People sometimes ask me "why?" - why didn't you ask for help, and then I tell them:
… because I got myself into the mess, I had to get myself out.
I made some bad, stupid decisions. I got myself into a bad situation. I was weak and almost ready to throw in the towel. I thought I was done.
 
But when we are at our weakest is when we show our true strength.
 
I had to get through it, for me - for my own.. Manliness! I had to know that I could right the wrongs and come out better for it. Otherwise, what was the point?
 
What kind of person would it make me if I did all this stuff, took money and property from companies that were built by people just trying to put food on the table for their families  and said "ohhh I can't afford to pay you because I am a fucking idiot who jumped into things that I couldn't handle". I'm not that guy. If I screw up, I fix it. No question.

Get Out of the Hole

So I did all I know how to do. I worked. I studied. I gritted my teeth.
 
I also cried, got frustrated, wanted to give up, got depressed, cried some more and got angry. It's really easy to get sucked into this spiral when you can never afford to go out and can't afford TV to distract you etc.
 
But I carried on working, I carried on studying and I carried on gritting my teeth and smiling to the outside world.
 
Then I cleared a debt. Some crappy high interest card loan that I got to pay off another. (LOL)
Then I cleared another - these guys must have loved me because they kept sending me new ones after I chopped it up - and they were so kind to give me more money (I kept chopping them up - I made it my new personal goal to see if I could chop up enough cards to cover the stupid amount of interest I paid them).
 
Then I felt it - momentum.
 
I was on to something. I realised that it wasn't about the penny-pinching and meticulous planning. It was about focusing on the most wasteful parts of your budget and getting them down as low as you can go. Two things come out of this:
  1. You make money. Last week there was no money, now you've found some. Yay.
  2. You lose the stress. Everything else is in hand and you're focusing on the few things you can actually do something about.

Make It Fun

I was always amazed how people that had to deal with horrific things made games out of them (for example, paramedics that score points based on damage at a roadside traffic accident). It sounds sick, but it's a coping mechanism. If you focus on the game side of it, it removes all the emotional stress that you'd normally have so you can actually focus on the task at hand.

I made it a game. Each month I would pick an item from my budget to pick on, then see "how low I could go". My favourite - "Weekly Groceries". Got that down to £10/week. Impossible? No. Boring? Kinda :) Helped me kick ass? Definitely*.

* this actually freed up about £150 a month. Would you say "no" to an extra £150?

Are You OK?

As my momentum picked up, I continued smashing debt - then one day I awoke and realised something..

I wasn't lying to my mother after all. I was OK.

Grit your teeth. Do the work. It may not be easy work, and it will take time. Sometimes there's only one way out of a situation. Toil.

Fast-forward a few years. It's all over.. I now live a life that I truly love. I have amazing friends that challenge me, help me grow and become a better person. I'm not only financially richer - but I'm mentally richer. I'm good. I'm really, really good!

Lastly...

I have to say a big "thank you" to my friends and family - you're everything to me. There are times when you have saved me and you don't even know it.

I love you all.

Now, I have to get back to work ;)

Tuesday, 27 November 2012

HSBC "Fast Balance" App for iPhone - Unable to Verify *RESOLVED*

Wow, this is just a nice big bag of fail..

I recently downloaded HSBC "Fast Balance" since it'll make keeping my budget up to date, but I was having epic problems registering my account with them, I kept getting an error message saying "Unable to Verify" and something about my address not matching up.

Well, after trying about 500 permutations of my address, I was about ready to give up. I ended up getting on the phone to Internet Banking Support (08456 002 290) and walking through it with them..

Turns out, their address validation doesn't seem to like flat numbers. My address is similar to:

Flat X
A Number Some Street
London
POSTCODE

Turns out, in order to get it to validate, I had to do this:

A Number
Some Street
London
POSTCODE

Which in my mind, is a completely different address. Also keep in mind that when I log into Internet Banking, it appears exactly like the top one.. So as far as I was concerned, that's how they had it on the system.

So, dear app developers for HSBC - as one developer to another GET IT TOGETHER!

I hope others find this useful :)

On a similar note - if you bank with Barclays, check out their iPhone app - it's a polar opposite experience. Well designed, easy to use, feature rich and worked first time. Serious kudos to the Barclays development team. 

Tuesday, 9 October 2012

Lean Startup Machine London Review

29 hours across 3 days, 25 interviews, 3 pivots, 1 idea.

Last weekend I attended the Lean Startup Machine (LSM) here in London. I wasn't really sure what to expect since I don't know anyone who had already been to one. I definitely wanted to go to something practical and hands-on, because while I feel I "get" the Lean books ("The Lean Startup" and "Running Lean") in terms of why they outline the Customer Development (I really recommend "The Startup Owners Manual" to learn about this) they do - where I was struggling was the how to do it.

What's Lean Startup Machine?

It's an event that will really get you focused on the first part of the 3 stages of a startup* - Problem/Solution Fit. Before we start worry about producing the end-product we need to ensure that it's designed to solve a problem that people actually have.

* At least this one was - there may be future events focused on other areas.

Why Should I Go to Lean Startup Machine?

If you're new to Lean principles, or having problems with really feeling confident about your ideas before implementation - this is for you. TBH, I would even go so far as to say "do it regardless".

Go to LSM to radically change the way you approach innovative product development. You don't have to be working on a startup, the "startup" bit is a bit of a misnomer, go if you're looking to do something innovative.

What Happens at Lean Startup Machine?

Simply put, you become part of a team that essentially validates an idea to see if it has problem/solution fit.

The Idea

You can either bring your own idea and pitch it to the group, or you can jump in on someone elses.

What I would say is this "the actual idea is pretty much meaningless, what's important for the weekend is process".

Team Size

I saw a few teams really struggling at the 4+ mark. This weekend is intense. It's imperative that you are in a small (2-4 people) team that gets on well.

There are times you will be tired, times where you will be confused and times where you might feel completely lost. Only a good team can pull you through this.

I was in a two-man team (we splintered off from another large team) and while we got on absolutely great - we found that we kind of burned each other out quite fast. Therefore, I would recommend a team of 3-4 people.

The Process

At an incredible rate, you will go from "just an idea pitch" to getting out on the streets, finding your target customer and talking to them.

I think it's fair to say that a lot of us were really outside our comfort zone with this. For many, it was a complete baptism of fire. We just aren't used to profiling and finding people, let alone forming a good question flow and conversing in the right way to validate our assumptions.

The key focal point is the Validation Board, on which you place your target customer segment, the key problem you are solving for them and all your core assumptions. Ideas are always loaded with them - "people want my solution", "people have the problem", "they would use a mobile app", "everyone would LOVE to get involved" etc.

Once your core assumptions are on the board, you pick the next riskiest one (the one that if proved would mean you need to seriously re-think how this thing is going to work). For most, the first iteration on this is normally "do they even have the problem I am defining". Once you have some hard data, you then decide to pivot (change an integral part of the problem/solution) or persevere (continue on to the next riskiest assumption).

One key point to note here - the term 'pivot' is often thrown around by those that have read the "lean" books. A pivot is a fundamental change in you business strategy, like changing customer segments, the problem you are actually trying to solve or the pricing model etc.

Validation

How do we validate? Getting out of the building! At LSM, you don't have a choice! You will be herded out and expected to come back with results! This is really important. We had some amazing conversations with people throughout the weekend and it's really changed how I approach new ideas.

"Getting Out of the Building" can mean:

  • Face-to-face with actual customers.
  • Online surveys.
  • Focus groups.
  • Testing your pitch via landing pages.

Why is the first one in bold? Simply because that should always be the most preferable one. Seriously, I am a convert - it's amazing.

Homing in

Once you have pivoted and persevered a few times, you will start to realise a couple of things:

  1. Your idea where you are at now is quite different to your original hotshot idea.
  2. You feel a lot more confident about what your idea is.

You are now in a much better position to decide if you want to start "getting serious" about this idea (i.e. investing some money into it).

Wrapping Up

This weekend was really intense, I came away exhausted but absolutely buzzing with ideas to implement in my own startup.

The validation process we were taught at LSM really helped us focus on getting our assumptions tested - and in many cases, invalidated. This is a good thing. I was talking to my team mate Ben at the end and said:

"Oh man, you realise that if I had run off with the original idea and started coding, I would have been working for 6 months, easy".

This original idea was binned on the 2nd iteration of our validation board. It cost us about 2 hours in terms of having conversations and assimilating the results.

Lean Startup Machine works.

For my team, we were getting some very strong signals that we are on to something with our idea at the end of the weekend (hence why I have not gone into too much detail about the idea yet). We will likely be running some more validation in the short term. Watch this space! :)

Lastly, I would just like to say a big "thank you" to everyone that helped make it happen, especially the organisers (Ryan and Obe), you are all amazing.

(I will do the rounds and list them here soon).

 

Monday, 24 September 2012

Apple MBP Cracked Screen - AppleCare "The Worlds Most Archaic Support"

Sad times, today I dropped my Macbook Pro while leaving the office. Got home to find that I had a series of small fractures across the screen. Thankfully, the LCD is still intact, so only the glass needs to be replaced.

Naturally, I get on the phone to Apple Care:

  • After spending 25 minutes on the phone on hold (having given all the problem details to a robot woman), I finally get through to someone.
  • I then have to re-state all the information that I gave to the robot woman to the gent on the phone.
  • I then explain the level of damage to the screen, as ask for a quote at what the cost would be (roughly) to get it replaced. I get told "£150 for an older model".
  • I ask "Is my [early 2011] model considered old? Is that what it would cost for this model?" - the response is "no" to both. He doesn't know what it would cost "since we don't know the extent of the damage".
  • I repeat the level of damage. Support guy then says "allow £100-£150". OK, at this point I know he just doesn't know and decide to move on.
  • "OK, can I go ahead and get booked in to see someone at the store to get this sorted?". After waiting for a minute or two while he checks individual stores, I get told ALL the stores in central London are fully booked for the week, with one exception on Sunday afternoon.
  • I make the booking, accepting my fate that I now have to work with a cracked screen for a week. Not only that, I actually don't know if/when this is going to be fixed.
Ask yourself this, Apple - is this acceptable?

I fundamentally think that companies boasting profits as much as Apple's really should get their basics in order. In my view, this is how it should work:

  • I ring up, give my details to robot woman including MBP serial number and a chance to describe the problem in 10 seconds.
  • I get told there is a queue, and expected wait time.
  • I then get the choice to wait on hold, or get given a call back.
  • If they don't have my number (i.e. I am blocking it), I get asked to enter it.
  • Agent gets message from the system, opens up my account info, and listens to my problem. He now has the scene set before he calls me.
  • Nice things can happen here like getting relevant info ready on his machine. Possible repair charges, nearest stores with availability etc. You know, relevant information that means I don't get kept waiting while they try and find it.
  • We discuss issue, and make appropriate plans.
Why is a company that boasts having "the worlds smartest software" and insane profits still running call centres that are dumb?

I do genuinely love my Apple products, but man their support is terrible. You are more than just products now Apple, get it together.

UPDATE: Glad to report that all is finally resolved, with a final fee of £150. Unfortunately, Apple said that they had (and always have to) replace the entire screen assembly. Seems rather wasteful, but hey - there product I guess. I complained that that seems incredibly steep for what is actually relatively minor damage. So they waived the labour fee (£25). Just glad to have my baby back in one piece. Just wish the whole process was more organised and less stressful!