No Free Time

Because my therapist says I need to let things out

The Hanselman Bump

leave a comment »

@shanselman mentioned my website the other day:

And check out the effect it had on my stats!

That’s right – 7 more visitors in one day! Damn!

Written by Andrew Myhre

January 19, 2011 at 2:59 pm

Posted in Uncategorized

Postal – Easy ASP.Net email templating

leave a comment »

Just saw this – Postal is a .Net library that uses the ASP.Net MVC view engine infrastructure for email templating. Slick.

http://aboutcode.net/2010/11/17/going-postal-generating-email-with-aspnet-mvc-view-engines.html

Written by Andrew Myhre

November 19, 2010 at 10:10 am

Posted in Uncategorized

TFS – I’m sorry, I’m not allowed to argue anymore

with 2 comments

So I created some files in my TFS workspace, then forgot about them. Then the branch they were part of was deleted on the server. Oh no!

No I have a whole bunch of ‘Pending Changes’ where the files actually don’t exist in TFS *or* my computer (I deleted them locally too). I can’t Undo them – TFS tells me “No pending changes were found for [file]”. I can’t commit them then delete them. Basically I can’t get rid of them.

This is irrational. Basically TFS is being quite obstinate about it’s belief about the state of my workspace even in the face of the facts that:
a) the files physically don’t exist anymore
b) I *say* they don’t exist anymore

Why is TFS contradicting me? Why can’t TFS just believe me when I say “those files can be totally disregarded, they’re gone, I don’t care, *THIS* is what my workspace should look like”. Instead TFS replies “no it isn’t”.

“Yes it is”
“No it isn’t”
“Yes it is!”
“No it isn’t!”

Sigh.

Written by Andrew Myhre

September 15, 2010 at 2:52 pm

Posted in Uncategorized

Tagged with

DON’T FREAK OUT

leave a comment »

I just updated my blog’s theme. No big deal.

Written by Andrew Myhre

February 21, 2010 at 12:59 pm

Posted in Uncategorized

Yes it’s a post about buzz

leave a comment »

Speculating about whether Google Buzz will ‘halve Facebook’s value‘ is an interesting diversion but not ultimately satisfying to me. As a developer I want to consider the ways in which Buzz can change the way the web works, and the way that users can use the web. I’m particularly interested in understanding Buzz’s place in the platform ecosystem, how it relates to Twitter and, of most curiousity to me, Wave.

So far Wave has not been the game-changer Google suggested it would be, but I’m not discounting it. As far as I’m concerned it’s Email 2, and Google would only have to roll out Wave as a ‘new version’ of the current Gmail to all of a sudden garner a lot of interest.

But again that’s pure speculation and not what I’m interested in writing about today. A particular aspect of these services has caught my attention, in particular the embedding features.

Mashable have added a ‘Buzz This’ button to their blog, which looks like a little hack on Google Reader:

<a rel="nofollow external" target="_blank"
href="http://www.google.com/reader/link?url=http://mashable.com/2010/02/10/google-buzz-contest/&amp;title=Google+Buzz+Contest%3A+Win+a+Google+Nexus+One&amp;srcURL=http://mashable.com/">
<img height="58" width="50" alt="" src="http://mashable.com/wp-content/plugins/wp-digg-this/i/google-buzz.png" original="http://mashable.com/wp-content/plugins/wp-digg-this/i/google-buzz.png">
</a>

The link provides a prompt to add a comment and post the item in your Buzz profile. It’s a really simple way to blogs to push their content out through Buzz.

Wave as it’s own embed strategy, which is to actually embed a Wave into a page, as @kevinblake demonstrates in this example post.

At the moment these two features are disparate, but they indicate an overriding theme that Google have hinted at before in rhetoric around Wave – a ubiquitous sharing and conversation platform across the web. Layers over the web that unify individual websites into a single whole. This is, to me anyway, an exciting idea.

I also see Buzz as a way to blog.  There’s currently no direct integration between WordPress and Buzz (nor with Blogger at this stage), and until Buzz offers the kind of features that make WordPress useful to me (stats, mainly) I wouldn’t use it as such. I would however cross-post, which is what I’m going to do today.

Google’s vision is just much bigger than Facebook’s. So perhaps Buzz could hurt Facebook, but I also imagine Google aren’t bothered. Facebook is one of the engines that keeps the web churning. Google on the other hand is more about infrastructure, they’re the banks that the river flows between. What would the river be without something to produce a current?

Written by Andrew Myhre

February 11, 2010 at 11:53 am

Posted in Uncategorized

Tagged with , , , ,

Cucumber, IronRuby, Exasperation

with 3 comments

I’ve spent the last couple of days trying to get IronRuby running Cucumber on my Win7 machine. I’ve hit a wall with it and I’m appealing to anyone who can help me.

I followed this tutorial: http://blog.webintellix.com/2009/10/how-to-use-cucumber-with-net-and-c.html

And when I reached step 5 and executed ‘icucumber features’ (in my case I called the batch file icuc.bat for brevity) I get this result:

Fail. Incidentally I’m using Ruby 1.9.1 and IronRuby 1.0 RC 1 which at the time of writing are the latest versions. I updated the paths given in the tutorial to match the appropriate paths on my machine.

Written by Andrew Myhre

February 8, 2010 at 12:11 am

Posted in infrastructure

The Visitor Pattern, Double Dispatch and Reflection Performance

leave a comment »

Was listening to Herding Code #70 this morning and heard the Visitor Pattern mentioned. It was new to me (in theory but not in practise) so I was led merrily down the garden path.

Background and definition of the Visitor Pattern.

An example of the visitor pattern in C# using double-dispatch and reflection.

A great article about reflection and MemberInfo cache.

Written by Andrew Myhre

January 29, 2010 at 12:23 am

Posted in patterns

Tagged with ,

Silverlight Preloader Project on Google Code

leave a comment »

I set up a project on Google Code for my Silverlight Preloader. Flash already has at least one solution for queueing up content to be pre-loaded, Silverlight to my knowledge does not. So here’s a first stab at one.

I’m going to have a good look at the VideoLoader. Currently I’m relying on the MediaElement control doing the legwork of downloading the file for me, but I’m positive I could use a WebRequest object to stream the bytes directly. The only difficulty would be in providing regular progress reports to the queue manager.

So, if anyone’s interested, here it is: http://code.google.com/p/silverlightpreloader/

Written by Andrew Myhre

January 28, 2010 at 12:24 pm

Posted in silverlight preloader

Tagged with

Silverlight MediaElement Complaints and Grievances

with 2 comments

In my opinion the Silverlight MediaElement control is shoddy work. No disrespect to the Silverlight dev team, but while I think the product as a whole is great, there are a few issues with the MediaElement that make it really annoying to work with.

This post will continue to be revised as I get around to enumerate all the issues I have with it and writing posts describing each issue in detail.

Complaints and Grievances

  1. State change events seem to be based on guesswork.
  2. The DownloadProgress property isn’t always what it seems
  3. MediaElement class combines responsibilities for both loading and rendering video making it impossible to make use of just one of these aspects

Written by Andrew Myhre

January 28, 2010 at 5:56 am

CurrentState Guesswork with Silverlight MediaElement

with 2 comments

The Silverlight MediaElement control has an event CurrentStateChanged. If you’re building a Silverlight app that makes use of video this is crucial to being able to implement state logic. You may want some other UI elements to wait until a video is ready to play before they do their thing, for instance. The idea is that you listen for the event and when it’s fire you check the _mediaElement.CurrentState property to see what state it’s in. CurrentState will be a value like Buffering, Paused, Stopped, Playing etc.

Well annoyingly the CurrentState value isn’t always what it should be. I’ve worked with MediaElement a lot over the last few months and I’ve noticed that when a video finishes buffering its state could be any one of

  • Stopped
  • Paused
  • Closed
  • Opening
  • Pondering
  • Being coy

I guess that external factors like browser cache, video format and progressive downloading might play a part but, come on, seriously, the runtime really should be providing the solutions or workarounds to these problems so that I don’t have to. In a lot of cases there simply is no workaround. Very aggravating indeed.

    Written by Andrew Myhre

    January 28, 2010 at 5:45 am