Friday, January 07, 2011

A Windows Phone 7 Development/Design Guidelines/Certification Requirements Cheat sheet/Checklist

Silverlight SDK - Windows Phone 7 Design Guidelines – Cheat Sheet

“One of the tasks I am trying to accomplish as I write the documentation to accompany the FuelTracker project, is to incorporate the design guidelines and certification requirements where they are pertinent. As a side effect of this effort, I’ve generated this little “cheat sheet” of various design hints and app requirements gleaned from these documents. Most of these hints pertain to issues we ran into when implementing Fuel Tracker so it assumes some basic familiarity with Silverlight controls and other features that are covered in detail in the design guidelines. I expect to be adding to this list, but  I am posting what I have so far, as I think it has some value.

Navigation, frames and pages

Application Bar

Back button

Screen orientations

Application icon

Tiles and tile notification

Themes

Application settings

Touch input

On-screen keyboard

Canvas/Grid for layout

Panorama control/pivot considerations

Text guidelines

pagesnap…”

One of these days I’ll be getting a Verizon WP7 (sometime in the first half of 2011,  I hear) and so will keep gathering WP7 dev resources like this. What I dug about this one was the summarized, checklist, cheat sheet nature of it. It provides just enough information to help you “know what you don’t know”.

[Humor] How to write good code flowchart from xkcd

xkcd - Good Code

good_code[1]

LOL… True, so true…

Using Templify and NuGet to automate and share Visual Studio Solution creation

Maarten Balliauw {blog} - Tools for the lazy: Templify and NuGet

“In this blog post, I will cover two interesting tools that, when combined, can bring great value and speed at the beginning of any new software project that has to meet standards that are to be re-used for every project. The tools? Templify and NuGet.

You know the drill. Starting off with a new project usually consists of boring, repetitive tasks, often enforced by (good!) practices defined by the company you work for (or by yourself for that company). To give you an example of a project I’ve recently done:

  1. Create a new ASP.NET MVC application in Visual Studio
  2. Add 2 new projects: <project>.ViewModels and <project>.Controllers
  3. Do some juggling by moving classes into the right project and setting up the correct references between these projects

Maybe you are planning to use jQuery UI?

  1. Add the required JavaScript and CSS files to the project.

Oh right and what was that class you needed to work with MEF inside ASP.NET MVC? Let’s add that one as well:

  • Add the class for that
  • Add a reference to System.ComponentModel.Composition to the project

Admit it: these tasks are boring, time consuming and boring. Oh and time consuming. And boring. What if there were tools to automate a lot of this? And when I say a lot, I mean a LOT! Meet Templify and NuGet

pagesnap…”

This is the first time I’ve seen Templify. It’s definitely something I’m going to be keeping an eye open for in the future.

 

Related Past Post XRef:
Another way to deploy/share code and code snippets… NuGet

A “Hello [NuGet] World”
NuPack = NuGet (Think “A New way to Get libraries”)
I “Nu” I needed you… NuPack v1 Developer Preview/CTP 1 Released (Think, “Where have you been all my dev life… finally an package management system/installer for .Net”)

SQL Compact 4.0 CTP + NuPack = Painless project package plus’age
One man’s debugging tale - How he hunts down a bug in NuPack, with his friends WinDbg and Reflector
New background on NuPack - A little about how it came about

Thursday, January 06, 2011

“Effective Clustered Indexes” (Think “Clustered Indexes in-depth from a real world, major SQL Server shop, DBA”)

simple-talk - Learn SQL Server  -  Effective Clustered Indexes

“As a gridline, clustered Indexes should be Narrow, Unique, Static and Ever Increasing (NUSE).  Michelle Ufford Explains why.

Clustered indexes are the cornerstone of good database design. A poorly-chosen clustered index doesn't just lead to high execution times; it has a 'waterfall effect' on the entire system, causing wasted disk space, poor IO, heavy fragmentation, and more.

This article will present all the attributes that I believe make up an efficient clustered index key, which are:

  • Narrow – as narrow as possible, in terms of the number of bytes it stores
  • Unique – to avoid the need for SQL Server to add a "uniqueifier" to duplicate key values
  • Static – ideally, never updated
  • Ever-increasing – to avoid fragmentation and improve write performance

By explaining how SQL Server stores clustered indexes and how they work, I will demonstrate why these attributes are so essential in the design of a good, high-performance clustered index

Summary

In this article, I've discussed the most desirable attributes of a clustered index: narrow, unique, static, and ever-increasing. I've explained what each attribute is and why each is important. I've also presented the basics of B-tree structure for clustered and non-clustered indexes. The topic of "indexing strategy" is vast topic and we've only scratched the surface. Beyond what I presented in this article, there are also many application-specific considerations when choosing a clustering key, such as how data will be accessed and the ability to use the clustered index in range-scan queries. As such, I'd like to stress that the attributes discussed in this article are not concrete rules but rather time-proven guidelines. The best thing to do if you're not sure if you've chosen the best clustering key is to test and compare the performance of different strategies.

pagesnap…”

I liked that this article was the fact that it was a “From a DBA for DBA’s” article, that the author lives and breaths SQL Server in her day to day life in a major way (Michelle Ufford is a Senior SQL Server Developer at GoDaddy.com). That’s pretty “real world” in my book…

Also I really liked the presentation style and how the two usual key types, ID/Int and UniqueIdentifier/GUID, were used (Please, lets not get into a debate about those key types, there’s good and bad for both and the answer to the “right” type is usually “it depends…” ;)

Redactions and PDF’s, the right way…

Acrobat for Legal Professionals - Rick’s Acrobat X Redaction Guide

“Redaction is the permanent deletion of data from documents.

In the past, markers were used to black out information on documents.

These days, it simply doesn’t make sense to print out a document to redact it. The process is slow, expensive and inefficient.

Law firms, government agencies and corporations around the world rely on Adobe Acrobat to safely and permanently remove content from the data stream of documents.

Adobe first offered redaction tools starting with Acrobat 8 and redaction capabilities have continued to improve with each new release.

In Acrobat X Pro, several new Redaction features were introduced:

  1. Repeat Redaction Mark across Pages
    Useful for redacting headers and footers from documents
  2. Right-click to apply Exemption Codes
    Add case codes and privacy codes as overlay text to redaction marks.
  3. Ability to apply multiple Exemption Codes
    Multiple exemption codes may be listed as overlay text on a redaction mark
  4. Partial Pattern Redaction
    Use this feature to mark part of a pattern for redaction. For example, you could mark part of a Social Security Number or Credit card number. Useful for cases where you need to identify individuals in part of a case without revealing personal identifying information.
  5. Set Appearance of Redaction Marks
    You can now set the appearance of the Redaction marks during review. For example, you can mark items with a transparent red overlay if desired.
  6. Overlay Text indicated in Comments List
    You can now view overlay text in the Comment list for quick review.

So, you want to redact some documents. How do you get started?

To help, I bring you Guide to Using Redaction in Acrobat X Pro. This article is and update of my earlier article for Acrobat 9 and offers a step-by-step guide to using these tools in your firm or organization.

In this article I cover:

  • Redaction Preferences
  • How to mark text and graphics for redaction
  • Setting common redaction properties
  • Adding Overlay Text and Exemption codes to a redaction
  • Creating a report of redactions
  • Applying redactions to permanently remove information
  • Using an Action to automate the redaction workflow

pagesnap…”

Given how many times I’ve blogged about PDF redactions gone bad (see below), I felt it only right to blog about how to do them the right way…

 

Related Past Post XRef:
And AGAIN a PDF Redaction gone wrong... When will you get the message!?
PDF’s and Redaction gone wrong… again…
Another PDF Redaction Snafu
US Military PDF Redaction "Issue"
CSI Trick of the day: How do you look “under” black Magic Marker’ed text?

"Clean Up After Your PDFs"

Wednesday, January 05, 2011

How about 118+ free (legally) Science Fiction eBooks from top tier authors? Check out the “Baen Free Library” (Or “I tripped over my Kindle and landed in Science Fiction eBook heaven”)

WebScription.net - Bean Free Library

“Introducing the Baen Free Library
by Eric Flint

Baen Books is now making available — for free — a number of its titles in electronic format. We're calling it the Baen Free Library. Anyone who wishes can read these titles online — no conditions, no strings attached. (Later we may ask for an extremely simple, name & email only, registration. ) Or, if you prefer, you can download the books in one of several formats. Again, with no conditions or strings attached. (URLs to sites which offer the readers for these format are also listed. )

By popular request we've added a "Donate to Free Library" button which allows you to "purchase" a free book to show support for the authors and their donations. It works like the normal "Add to Cart" button and you can do one donation per book.

We do it this way rather than direct donations because the minute we start accepting money for books under copyright, all sorts of royalty complications come into play.

pagesnap

pagesnap

pagesnap2…”

We’re talking full/complete books (as far as I can tell, having downloaded a couple) from some of the best authors in science fiction today. David Drake, Harry Turtledove, John Ringo, David Weber, Eric Flint, James P. Hogan and many many more. The books are usually the first couple in a series or a older titles, but many are also classics in their own right.

These books are offered directly by Baen, the publisher, and so appear to be 100% legitimate. As you can see in the snap above, there’s a wide number of eBook formats available too (The “Ebook Price” line is for if you want to “Donate to Free Library”, to help keep these books, free. The book is indeed really free, without even registration required)

I’ve read at least half of these books, but I’m a re-reader kind of guy and have been looking for a reasonably priced, and legal, means of getting some of these exact books. This Free Library is simply awesome…

XNA 3.1 to XNA 4.0 Cheatsheet (well cheat page… okay, long cheat page… almost a cheat book… anyway, you get the idea…)

Nelxon Studio  - XNA 3.1 to XNA 4.0 Cheat Sheet

“Nelxon here again providing yet another resource for XNA Game developers. There are a few sites available to help us convert those XNA 3.1 projects to XNA 4.0, but it seems many of us are still have problems migrating successfully and easily. Its a pain to visit multiple sites and pages only to find corrections for 1 to 3 errors and still have hundreds more left.

After losing many hours of production time, I decided it would be more convenient to have a simple cheat sheet  - (collection of code snippets XNA 3.1 to XNA 4.0)  to help me convert projects faster with less difficulty. So far, this cheat sheet has helped me convert over a dozen XNA 3.1 projects, which removed at least 90% of the errors due to the code breaking changes from XNA 4.0. The remaining errors I could resolve myself or simply ask for help on the forums. 5 errors are better than 50…

I decided to share this cheat sheet because I am constantly reading forums where developers discuss having the same problems converting their projects. I figured maybe other developers would find this useful as well. These code snippets were created from comparing the XNA 3.1 creator’s club educational samples to the newer XNA 4.0 samples. However do no consider this page as a tutorial, it is a list of examples to help you see the difference between XNA 3.1 and XNA 4.0 syntax and provided to help you learn by example.

pagesnap[GD: This is only a partial page thumbnail due to the page’s length]…”

An uber code-heavy XNA 3 to 4 conversion helper cheat sheet/page/book. I liked how the errors resolved are summarized at the beginning and the before/after format

(via Shawn Hargreaves Blog - XNA 3.1 to 4.0 cheat sheet)

Free (Reg-ware) SQL Server Perfmon Counters Poster. Counters + Descriptions + “values you want to see” = Happy DBA

Quest - SQL Server Perfmon Counters Poster

“When it comes to performance monitoring, few tools offer as much reliability and universal access as Perfmon — and that alone makes it worth learning. Its counter thresholds give you a clear picture, so you can diagnose the root-cause of your SQL Server issues right away. And now you can do it all even faster with this unique reference. 
This poster — produced by our world-class SQL Server experts at Quest — provides valuable tips and tricks to remember when using Perfmon. It will help you quickly build a hypothesis and uncover the slowest components on your servers.
…”
UPDATE 4/21/2017: Looks like Quest has remove this poster... :(

What I really like about this poster is how not only are the counters listed, with description, but what the normally acceptable values of those counters should be. Given that there’s 1.9 gazillion perform counters, knowing the “good ones” and their values is a step toward SQL Server guru’ism. 
image
image
(via Troubleshooting Microsoft SQL Server - Free Windows/SQL Perfmon Counter poster from Quest Software)

40+ hours of free SQL Server 2008 Microsoft Certified Master (MCM) training videos from SQLskills and Microsoft

SQLskills  - SQLskills Free Online MCM Training

“SQLskills.com has teamed up with Microsoft to provide 40 hours of online training geared towards the SQL Server 2008 MCM certification.

These videos are designed to give you an overview of the breadth of subject knowledge required, plus some indication of the depth to which you should know it. The four weeks of intensive training that SQLskills.com provides has a little overlap with the content in the videos, but most material in the class is not available anywhere online.

This page gives links to all the videos, grouped together to match our training classes.

Make sure to also check out the MCM Pre-Reading List that accompanies the videos!

Master Immersion Event on Internals and Performance

Master Immersion Event on Performance Tuning

Master Immersion Event on HA+DR

Master Immersion Event on Security and Development Support

pagesnap…”

TechNet - SQL Server 2008 Microsoft Certified Master (MCM) Readiness Videos

“The Microsoft Certified Masters Program for Microsoft SQL Server provides the most experienced and talented IT Professionals with worldwide validation and recognition of their deep technical expertise in SQL Server. The SQL Server 2008 Microsoft Certified Master program has been re-launched in a more scalable format because of the increased interest and global demand for the program. For more information, see the Microsoft Learning SQL Server 2008 Microsoft Certified Master program site.

The following readiness videos provide candidates who want to pursue SQL Server 2008 Microsoft Certified Master certification with an overview of what you need to know to prepare for the SQL Server 2008 Microsoft Certified Master Knowledge Exam and Lab Exam.

Each module establishes the level of depth and breadth required to achieve this certification and also includes an MCM-level deep dive of one or more aspects of the specific subject area. Each module ends with a pointer to a comprehensive list of additional readiness resources (whitepapers, blog posts, other videos, and applicable SQL Server Books Online sections).

pagesnap2…”

If you want to be a MCM (which is supposed to be “officially really hard”) or not, having the knowledge of one is almost as good, right? Especially when gathering some of that knowledge acquisition is free… (which is a hard deal to beat).

(via In Recovery… (Paul S. Randal) - All MCM free training videos now available

4/2011 is? The end of mainstream/free support for SourceSafe… Use this as a kick-in-the-butt to move to a modern version control solution.

MSDN UK Team blog - End of support for Visual SourceSafe

“Don’t forget that mainstream support for Microsoft Visual SourceSafe ends in April 2011. After this date you’ll still be able to access extended (paid for) support, as detailed in this Microsoft Support Lifecycle blog post.

There’s also a wealth of Visual SourceSafe information at your fingertips on MSDN, and if you’d like to find out about migrating from Visual SourceSafe to Team Foundation Server, register for our LiveMeeting on 8th February.[GD: Post leached in full]

I know many of you are going to roll your eyes at this, laugh and say, “BFD, NO one uses that any more do they?” And then there’s going to be many of you, probably business/corporate/etc. dev’s, who secretly say, “Oh, I guess we better finally move off of SourceSafe…”

I know you’re out there. I know that VSS has worked well enough for you to get the job done. Well enough that you couldn’t convince Management/Business Owners/etc. to invest the time to migrate to a modern version control system.

NOW is your chance! Use the end of free VSS support as the lever, ammo, power-up, whatever to migrate off it.

You can do it. It might be painful moving to a new version control system, but if you’re still on VSS, after moving any modern system you’ll probably wonder why you waited so long. VSS has it’s day in the sun, but that day is over… It’s time to join the

You say, “but I’m still supporting VB6 code!” (sigh… Yeah, me too). So? TFS works great for VB6 code (been there, done that and loving using TFS to host my VB6 code base).

Doesn’t matter what version control system you decide on, as long as it’s “modern”. TFS, SVN, a DVCS, like GIT, doesn’t really matter. Look around, play around, but whatever one you finally pick, I think you, and Management/Business owners/etc. will happier in the end. (You’ll get real/true Branching and Merging… ZOMG… lol  ;)

Saturday, January 01, 2011

The top 150 Geek-a-licious Windows utilities list by AddictiveTips

AddictiveTips150 Best Windows Applications Of Year 2010 [Editor's Pick]

AddictiveTips is popular for covering the latest and greatest desktop applications, having one of the largest collection of Windows freeware reviews on the web. Now that 2010 has come to an end, we take a look back at the best 150 applications.

We plan to cover more topics in 2011, including Cloud OS, Mobile (Android, WP7, iOS), Mac, and much more, apart from extensive Windows coverage. The AddictiveTips team wishes you a very Happy New Year!

Without further ado, here are the best 150 desktop applications (in order from January to December) that we covered in 2010. It is going to be a long ride, so grab a cup of coffee (which will finish by the time you reach 50 apps) and enjoy!

150 Best Windows Applications Of Year 2010  Editor s Pick[GD:This is only a snap of the top 10 of the 150]…”

There is literally something for everyone on this list, but seems much more geek focused than not (any list that includes a utility to make NTFS Directory/Junction Points/Symbolic Links maker is a geeky list IMHO ;)

If you’re a Windows Utility Junky, Power User, Dev or IT person, this is a must review list.

The “Behind Baseball” view of just how the Windows Azure Storage is architected

Windows Azure Storage Team Blog - Windows Azure Storage Architecture Overview

“In this posting we provide an overview of the Windows Azure Storage architecture to give some understanding of how it works. Windows Azure Storage is a distributed storage software stack built completely by Microsoft for the cloud.

Before diving into the details of this post, please read the prior posting on Windows Azure Storage Abstractions and their Scalability Targets to get an understanding of the storage abstractions (Blobs, Tables and Queues) provided and the concept of partitions.

pagespap…”

I I find these kinds of articles interesting reads. I dig seeing behind the curtains and hearing about how stuff is built. While I doubt I’ll ever need to implement anything on the scale of Azure Storage, seeing how Microsoft implemented this massive solution is fascinating (okay… so I’m a geek… ;)

Also I found it cool that DFS is used in such a mission critical way. I’ve heard of/seen/read about/etc DFS but  have never seen it fully implemented in a real world environment (i.e. in an IT/work/my day life/etc environment… Not from lack of trying though, let’s not get me started…). Now the next time DFS comes up and there are “questions or concerns” about it, this article will be another data bit I can use in support.

“I got your P/Invoke… right here…” But is it right?

Kate Gregory's Blog - PInvoke Signatures: "it compiled ok" is not enough

Many people really don't understand where P/Invoke signatures come from, or what they mean. They head over to pinvoke.net, which - don't get me wrong - is a hugely important resource, and then blindly paste in whatever they find and try compiling and running their code. Or they use the superbly helpful P/Invoke Interop Assistant. Again, paste, build, run, works on my machine.

This is a great way to start. The problem is assuming that once one run worked, you're done. You need to read and understand the P/Invoke signature you are using. …

…Sorry, but you need to understand this stuff in order to interop successfully. That's where the phrase "head spinning interop" came from, after all.

Don't like it? Don't want to learn it? Then use an interop library like the Code Pack that takes care of those sorts of things for you and exposes an entirely managed interface. Have to learn it whether you want to or not? Consider using the Code Pack as a reference for how to do interop properly. The full source code is available, and nicely commented too.”

I’ve been following the Windows API Code Pack for forever (since it was the Vista Bridge project…) and I never thought to use it as Kate suggests, as a P/Invoke Reference. In hindsight using it as such seems so logical. I mean that’s the whole purpose for the code pack, to bridge some of the the managed/unmanaged Windows worlds. So dugh, it’s just FULL of yummy P/Invoke’ness! :P

 

Related Past Post XRef:
Windows API Code Pack v1.1 Released (Think “Bug fix, new Shell/Thumbnail/Preview features, VS2010, xUnit, string localization, signed assemblies and more” release)
More Windows Code Pack and Windows 7 developing delightfulness
Windows 7 Code Pack v1.0 Released – Managed code to help get at the yummy Windows 7 filling…
Bridging to Managed Windows 7 Development – Vista Bridge to Windows Code Pack

.Net, Native, P/Invoke marshaling just like magic… “Marshaling with C# Pocket Reference” (Think “Marshalling Guide for the Busy Dev Guy”)
Signature/Data Type Conversion P/Invoke Cheat Sheet – aka What do you convert a wChar_t to .Net?
Marshall Fixed Length TCHAR Strings between Managed and Unmanaged Code

The PInvoke Interop Assistant Source is now on CodePlex
The PInvoke tool you've been looking for all this time... the "PInvoke Interop Assistant"

“Simple MVVM Toolkit for Silverlight” v1 Release

Tony Sneed's Blog - Life Just Got Easier: Simple MVVM Toolkit for Silverlight

“If you’ve made a decision to start using the Model-View-ViewModel pattern (abbreviated as MVVM) for Silverlight development, you’re faced with a rather steep learning curve and a scarcity of of accepted standards and best practices.  I’ve read no less than three Silverlight books. All of them have a chapter on MVVM, in which the pattern is explained and some fairly basic examples are provided.  But when it comes to taking on some controversial issues, such as how to display modal dialogs, they tend to sidestep the issue and recommend that you pick up an MVVM toolkit.

The approach of these authors reflects the reality that a) there is more than one way to do MVVM, and b) you should not attempt to build a serious MVVM app without the aid of a toolkit.  The problem is that, if you are coming up to speed on MVVM, learning the ins and outs of a particular toolkit can be daunting…

Rather than shying away from some of the more controversial aspects of MVVM, I’ve decided as much as possible to address them directly.  Much of it boils down to your needs and preferences. A good example is going for zero (or almost zero) code-behind.  That might be a laudable goal if you have a team of visual designers using Blend that must be able to work independently from developers.  I’ve found, however, that many shops have developers building the UI.  In this case, achieving zero code-behind results in greater complexity and lowers developer productivity.  …

Another topic where there are diverging opinions is on how to communicate between various components, such as between the view and view-model or among view-models.  One approach is to use a message bus of some sort.  While that does make sense in many scenarios, especially communicating among view-models, I felt that a simpler approach using events is more practical and easier to use. …

Another area where there are different approaches concerns the use of commands.  Many MVVM toolkits include a delegating command which is used by the view-model to expose a command property that an element such as a button can bind to, so that the click event results in calling a method wired up to the command.  My personal feeling is that using commands for every button click (or other events by means of an event-to-command behavior) requires a lot of extra code in the view-model that is basically unnecessary. …

pagespap…”

CodePlex - Simple MVVM Toolkit for Silverlight - Simple MVVM Toolkit v1

“…

Release Notes

The download simply consists of a zip file, which contains the following folder structure:
Toolkit
- Helpers
- Snippets
- Templates
Samples
- SimpleMvvm-Main
- SimpleMvvm-Other
Misc
- Images
- Template Files

…”

How else to start off the year than with a MVVM post! lol Anyway… What caught my eye was the pragmatic approach Tony, and this toolkit, take. It feels very “real world” and “man, I just need to code this beast, can we leave the ‘religious’ arguments aside for now?”

One day my guess is that there will be an “official in-the-VS-box MVVM implementation from Microsoft, but until then, and even then, these kinds of toolkits/frameworks and their author’s approaches are interesting to watch…

 

Related Past Post XRef:
The MVVM Framework Tour – This time, Silverlight styling!
A MVVM framework “…three hour tour…”

A short diagramed guide of a few Model-View-* patterns

How about some free MVVM training/hands on/walkthroughs right in the VS box? “In the Box – MVVM Training” from Karl Shifflett (Oh yeah, with some WPF, Test, Moc, and Prism too)
One man’s introduction to MVVM with Visual Basic story OR zomg a MVVM article that’s not in C#!
MEF’ing in VB and SilverLight 4, with a little MVVM thrown in for flavor, from Glenn Block
SilverLight 4, RIA Services, MEF and MVVM, oh my… A four part series from the mind of Shawn Wildermuth (updated for VS2010/SL4 RTM)
MVVM Explained
The MVVM Framework Tour – This time, Silverlight styling!
A MVVM framework “…three hour tour…”
From code-behind to MVVM in 90 Minutes - Jason Dolinger on MVVM
The WPF Starter Kit – A simple, barebones, pick it up in an afternoon, MVVM/Navigation/Commanding Framework
M-V-VM for… um… busy developers (not dummies… not dummies… okay, so I’m a dummy! ;)