Web Pages That Suck!

One way of figuring out what represents good design is by looking at bad design. Web Pages That Suck by Vincent Flanders is a great way of doing that. It’s also a laugh! I took a peek at one of this year’s contenders, Havenworks and I fear I will never be the same again!

Street Fighting Mathematics

Listen up homes!! MIT OpenCourse have published this introduction to solving things without proofs or exact calculations: Street-Fighting Mathematics. The course notes can be downloaded in a single .pdf here.

This course teaches the art of guessing results and solving problems without
doing a proof or an exact calculation. Techniques include extreme-cases
reasoning, dimensional analysis, successive approximation, discretization,
generalization, and pictorial analysis
.

Manning Free .NET ebook per Day

Developers love free stuff right? Fancy a chance of getting a free .NET ebook or if your luck is in, the complete Manning .NET library?

To enter click on the advert below. One person will be drawn every day through July 17th, and one lucky entrant will receive Manning’s complete .NET library. (Thanks to Jon Skeet’s blog for the heads up)

What does the “Could not find resource assembly” error message mean?

If you are developing for a mobile device using the .NET Compact Framework and you get either of these error messages: “Could not find resource assembly” or “An error message cannot be displayed because an optional resource assembly containing it cannot be found”, the primary error is not caused because it could not find the resource assembly. [Both error messages are exactly the same. The first one was used in .NET CF V1 and second one is from .NET CF V2]

Basically, this means that some exception has occurred in your application for which a corresponding error message string could not be loaded due to a missing language dependent resource assembly. Having the actual error message would obviously be helpful in debugging what went wrong.

Why is the resource assembly missing? Quoting directly from the .NET Compact Framework team blog:

“Since the user is never expected to see this error message if the program works as expected and all exceptions are handled appropriately, it was decided (due to size constraints) that the resource assembly that has these error strings are never put on a user’s device. Thus the main target audience of these error strings are developers who would like to debug issues. Hence, when you do an F5 deploy onto the device, the System.SR.dll assembly which have these error strings are copied to the device and the developer can see the error messages. But in case .Net Compact Framework is installed from a redistributable or you are using .Net Compact Framework that come with the device, the System.SR.dll is not present on the device. Hence, if the application did come upon an exceptional condition that wasn’t handled by the application, this “Could not find resource assembly” message would be shown to the user.”

Personally, I think it was a mistake to not install the English resource assemblies by default. If you install the System.SR cab for your language then this error message should be replaced by the localized error message for what actually went wrong.

If Visual Studio does not install the SR cab when you deploy your solution, you can manually copy it to the device and run it there. Note: The cabs are named System_SR_ for non windows mobile devices (e.g. CE 4.2) and System_SR__wm for windows mobile devices.

With Visual Studio 2005 installed all the SR cabs can be found here:
C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\Diagnostics

Or if you installed from a distributable they can be found here:
C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\Diagnostics

Book Review: C# in Depth, Jon Skeet


So you want to be a C# expert? I think I have just the book for you…

At 392 pages, this is not a long book. Jon intended this book not to be one of those ‘massive tome[s]’ that adorn the bookshelves. It’s lean and gets straight to the point, whilst keeping the writing style engaging; not an easy feat. The ‘frictionless’ code examples are so clearly explained, you can glide through them without constantly having to back track into the text.

If there is one thing that sets this book apart from the others, it is the way is it structured to take the reader from C# version 1.1 to C# 2.0 and then through to C# 3. This would be especially useful for developers who are about to embark on a C# upgrade project, and want to be sure to use all the new language features to best effect.

This is the book I’ll be reaching for to answer those hard and best practice C# questions. It‘s an excellent resource for updating your C# development skills and taking them to the next level. If you write code in C#, you should read this book. Highly recommended.

Extra material can be found at: http://csharpindepth.com/Articles.aspx. The bluffer’s guides to C# 2 and 3 are a good way to get a rough overview of some of the new features. This web site also contains notes, online resources, and downloads.

I will try to obtain a copy of the book for the user group library…

Disclosure: A review copy of this book was supplied by Manning.