This is just a spot to keep miscellaneous links. It also shows you what a geek I am.
Thursday, March 10, 2011
Tuesday, February 22, 2011
Sunday, February 20, 2011
Reimplementing LINQ to Objects: Part 43 - Out-of-process queries with IQueryable - Jon Skeet: Coding Blog
Reimplementing LINQ to Objects: Part 43 - Out-of-process queries with IQueryable - Jon Skeet: Coding Blog
Interesting stuff throughout, but here's the summary at the end:
"This was really a whistlestop tour of the "other" side of LINQ - and without going into any of the details of the real providers such as LINQ to SQL. However, I hope it's given you enough of a flavour for what's going on to appreciate the general design. Highlights:
- Expression trees are used to capture logic in a data structure which can be examined relatively easily at execution time
- Lambda expressions can be converted into expression trees as well as delegates
- IQueryable
and IQueryable form a sort of parallel interface hierarchy to IEnumerable and IEnumerable - although the queryable forms extend the enumerable forms - IQueryProvider enables one query to be built based on another, or executed immediately where appropriate
- Queryable provides equivalent extension methods to most of the Enumerable LINQ operators, except that it uses IQueryable
sources and expression trees instead of delegates - Queryable doesn't handle the queries itself at all; it simply records what's been called and delegates the real processing to the query provider"
Reimplementing LINQ to Objects: Part 43 - Out-of-process queries with IQueryable - Jon Skeet: Coding Blog
Reimplementing LINQ to Objects: Part 43 - Out-of-process queries with IQueryable - Jon Skeet: Coding Blog
Interesting stuff throughout, but here's the summary at the end:
"This was really a whistlestop tour of the "other" side of LINQ - and without going into any of the details of the real providers such as LINQ to SQL. However, I hope it's given you enough of a flavour for what's going on to appreciate the general design. Highlights:
- Expression trees are used to capture logic in a data structure which can be examined relatively easily at execution time
- Lambda expressions can be converted into expression trees as well as delegates
- IQueryable
and IQueryable form a sort of parallel interface hierarchy to IEnumerable and IEnumerable - although the queryable forms extend the enumerable forms - IQueryProvider enables one query to be built based on another, or executed immediately where appropriate
- Queryable provides equivalent extension methods to most of the Enumerable LINQ operators, except that it uses IQueryable
sources and expression trees instead of delegates - Queryable doesn't handle the queries itself at all; it simply records what's been called and delegates the real processing to the query provider"
Friday, February 18, 2011
Formula for computing how many end users to interview
From http://www.measuringusability.com/blog/customers-observe.php:
We went to a customer's house or workplace and watched them do what they do and recorded their behavior and problems they encountered and how they solved them. Data from follow-me-homes were used for new product ideas and improving existing products. "
"Stalking Customers
When I worked at Intuit (makers of TurboTax, Quicken & QuickBooks) we used a method called "follow-me-home." It was as effective as it was simple in identifying customer problems and needs.We went to a customer's house or workplace and watched them do what they do and recorded their behavior and problems they encountered and how they solved them. Data from follow-me-homes were used for new product ideas and improving existing products. "
Tuesday, February 15, 2011
Scott Hanselman - Creating a NuGet Package in 7 easy steps - Plus using NuGet to integrate ASP.NET MVC 3 into existing Web Forms applications
Scott Hanselman - Creating a NuGet Package in 7 easy steps - Plus using NuGet to integrate ASP.NET MVC 3 into existing Web Forms applications
Also my comment on how to wire up the resultant .csproj file to have the MVC context menus:
Woot! I added the GUID {E53F8FEA-EAE0-44A6-8774-FFD645390401} to the ProjectTypeGuids node of the .csproj, and it's a bone fide MFC project with context menus in the Solution Explorer.
This is the result, with the new GUID underlined:
{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
Also my comment on how to wire up the resultant .csproj file to have the MVC context menus:
Woot! I added the GUID {E53F8FEA-EAE0-44A6-8774-FFD645390401} to the ProjectTypeGuids node of the .csproj, and it's a bone fide MFC project with context menus in the Solution Explorer.
This is the result, with the new GUID underlined:
Wednesday, February 09, 2011
The perils of using Func instead of Expression in an IQueryable
This is sort of a LINQ 101 thing, but I haven't had much of an opportunity to use LINQ to SQL yet, believe it or not.
I learned the hard way: when using IQueryable against a database, any predicates handed around should be Expression<func<type, bool>> instead of just Func<type, bool>. Func<type, bool> is evaluated in memory! That means that the entire table is fetched from the database, then filtered in memory. Bad, bad, bad!
I learned the hard way: when using IQueryable against a database, any predicates handed around should be Expression<func<type, bool>> instead of just Func<type, bool>. Func<type, bool> is evaluated in memory! That means that the entire table is fetched from the database, then filtered in memory. Bad, bad, bad!
Friday, February 04, 2011
Video Series: How To Give Great Presentations
Video Series: How To Give Great Presentations: "UGSS (Microsoft's User Group Support Services) have just published a video series that I recorded last year on How To Give Great Presentations. This free series of 8 videos covers the following subjects:-"
Friday, January 21, 2011
Scaffold your ASP.NET MVC 3 project with the MvcScaffolding package « Steve Sanderson’s blog
Very cool. This thing will generated CRUD support, list views, etc.
How To Use Amazon EC2 as Your Desktop - RestBackup™ Blog
How To Use Amazon EC2 as Your Desktop - RestBackup™ Blog: "In this article, I describe how I use EC2 as my Linux development desktop. I provide detailed instructions for every step of the setup process. This guide assumes that your client machine is Windows."
Scott Hanselman - Link Rollup: New Documentation and Tutorials from Web Platform and Tools
Scott Hanselman - Link Rollup: New Documentation and Tutorials from Web Platform and Tools:
"Intro to ASP.NET MVC 3 onboarding series.
Scott Hanselman and Rick Anderson collaboration and Mike Pope (Editor)
Both C# and VB versions:
- Intro to ASP.NET MVC 3
- Adding a Controller
- Adding a View
- Entity Framework Code-First Development
- Accessing your Model's Data from a Controller
- Adding a Create Method and Create View
- Adding Validation to the Model
- Adding a New Field to the Movie Model and Table
- Implementing Edit, Details and Delete
- Source code for this series"
Michael C. Kennedy's Weblog - 11 Killer Open Source Projects I Found with NuGet
Michael C. Kennedy's Weblog - 11 Killer Open Source Projects I Found with NuGet: "11 Killer Open Source Projects I Found with NuGet
Wednesday, January 19, 2011 5:18:17 PM (Pacific Standard Time, UTC-08:00)
So maybe I'm late to the party, but I recently started playing with NuGet. It's a killer new way to find, install, maintain, and manage references to open source libraries in Visual Studio 2010. Plenty of people have written about it (Phil Haack and Scott Hanselman for example). Let's just say you should learn about NuGet if you don't know it already.
What I want to talk about is all the cool open source projects I found just by flipping through the pages of the NuGet directory in the Visual Studio 'Add Library Package Reference' dialog."
Wednesday, January 19, 2011 5:18:17 PM (Pacific Standard Time, UTC-08:00)
So maybe I'm late to the party, but I recently started playing with NuGet. It's a killer new way to find, install, maintain, and manage references to open source libraries in Visual Studio 2010. Plenty of people have written about it (Phil Haack and Scott Hanselman for example). Let's just say you should learn about NuGet if you don't know it already.
What I want to talk about is all the cool open source projects I found just by flipping through the pages of the NuGet directory in the Visual Studio 'Add Library Package Reference' dialog."
Monday, December 27, 2010
Kill That Util Class!
According to him, a static "Helper" or "Util" class is an anti-pattern in a language like C#, which has extension methods, so kill it!
Interesting take. I'd agree that it can greatly reduce the incidence of such classes, yes.
Saturday, December 11, 2010
The protocol-relative URL
From Paul Irish: The protocol-relative URL: "There's this little trick you can get away with that'll save you some headaches:
<img src="//domain.com/img/logo.png">
If the browser is viewing that current page in through HTTPS, then it'll request that asset with the HTTPS protocol, otherwise it'll typically* request it with HTTP. This prevents that awful "This Page Contains Both Secure and Non-Secure Items" error message in IE, keeping all your asset requests within the same protocol."
Thursday, December 09, 2010
Algorithmia Source Code released on CodePlex - Frans Bouma's blog
This code library is used by the LLBLGen Pro 3.0 designer, so it's stable and tested.
The undo/redo looks intriguing.
The undo/redo looks intriguing.
Saturday, December 04, 2010
CODE Magazine - Article: Behavior-Driven Development
Uniting XP, Scrum, and BDD.
Wednesday, November 24, 2010
Naïve Bayesian Classification Using C# and ASP.NET
Gonna learn me some Bayesian inference. Maybe.
To understand and code for the na ve Bayesian algorithm, we will do some math to understand the procedure. The primary equation for the Bayes rule is:
P(A|B) = (P(B|A) * P(A)) / P(B)"
There's also this: http://nbayes.codeplex.com/
and this: Inference in Belief Networks - CodeProject
InfoQ: Testing Techniques for Applications With Zero Tests
InfoQ: Testing Techniques for Applications With Zero Tests: "Agile techniques recommend having adequate unit and acceptance tests to build a robust test harness around the application. However, in the real world, not all applications are fortunate enough to have a test harness. In an interesting discussion on the Agile Testing group, members suggested ways to test applications which do not have any automated tests."
A six-step approach is outlined.