Thursday, November 29, 2012

When do you stop for UX in SCRUM?

I've been struggling with the question of integrating User Experience (UX) into our release cycle. Here is an article that suggests a pretty good solution: Fitting Big-Picture UX Into Agile Development

Tuesday, November 27, 2012

See what your SQL Queries are costing you

Here is a neat script that will tell you what the most costly queries are on your SQL Server:


SELECT  creation_time 
        ,last_execution_time
        ,total_physical_reads
        ,total_logical_reads 
        ,total_logical_writes
        , execution_count
        , total_worker_time
        , total_elapsed_time
        , total_elapsed_time / execution_count avg_elapsed_time
        ,CAST('' AS XML) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY total_elapsed_time / execution_count DESC;

Tuesday, October 16, 2012

FIXED: "Invalid type owner for DynamicMethod" error in Nhibernate

If you recieve the "Invalid type owner for DynamicMethod" error while initializing you NHibernate SessionFactory then it's pretty likely that you are using generic methods on some of your lazy loaded/proxied classes.

Nhibernate incorporates a reflection optimization that speeds up the creation of proxy classes. This reflection optimization does not play well with generics. The error it throws is "Invalid type owner for DynamicMethod". Not very friendly.

So, to fix this you must either stop using generic methods OR turn off the optimization. To turn off the optimization you must run the following code before you initialize your SessionFactory.

NHibernate.Cfg.Environment.UseReflectionOptimizer = false;

Thursday, May 26, 2011

Good article on Mulit-Thread Applications in C#

I was very pleased to find this. Been using it as a reference:

http://www.albahari.com/threading/

Make a 5 Second Video from Image using FFMPEG

Been playing with FFMpeg and Mencoder to create videos from a list of Images and an audio file.
Here is the command I used:


ffmpeg -loop_input -vframes 50 -f image2 -i foo-1.png -r 10  foo1.avi
ffmpeg -loop_input -vframes 50 -f image2 -i foo-2.png -r 10  foo2.avi
ffmpeg -loop_input -vframes 25 -f image2 -i foo-3.png -r 10  foo3.avi
ffmpeg -loop_input -vframes 25 -f image2 -i foo-4.png -r 10  foo4.avi
mencoder -audiofile foo.wav  -oac copy -ovc copy -o output.avi foo1.avi foo2.avi foo3.avi foo4.avi

Thursday, April 28, 2011

Making the leap to QueryOver

So, if you are using the ActiveRecord/NHibernate stack I highly recommend switching to query over. The syntax is cleaner and it's type-safe.

Here is an example of a criterion based query:


Here is an example of the same query in QueryOver:



Unlike the Linq language for Nhibernate QueryOver is just a translation layer for Criterion.

Tuesday, April 26, 2011

Silverlight: Getting your Listbox Items to stretch

I was having some trouble getting my ListBox items to stretch across the entire ListBox. I did not want to get into the game of dropping into code to fix layout issues. Here is what I had to do.

This first attempt did not work:


I had assumed that the HorizontalContentAlignment attribute would do the trick. For most controls it does. I was wrong. Here is what I finally had to do:



Notice the addition of the container style. As far as I can tell this is a bug. I found the original answer here.