Saturday, January 08, 2011

In browser web video conferencing, Silverlight style… Alanta Web Conferencing goes Beta (or “Look Ma, no headphones video conferencing!”)

Confessions of a Would-Be Theologian - Alanta Web Conferencing Released to Beta

“I’m pleased to announce that the product the small team at Alanta has been working on for the last 18 months is finally in beta. Now, this is a true beta, rather than a Google-style “forever-beta”, so use at your own risk. But we’ve been dog-fooding it ourselves for the better part of six months, and we decided it was time to let other folks start banging on it. As Matt Mullenwegg said, “If you’re not embarrassed when you ship your first version you waited too long.” And if that’s true, well, we haven’t exactly waited too long.

If you have only a small amount of courage, you can start using it here:  http://alanta.com/

Some Details

Alanta is the first completely in-browser web conferencing and collaboration solution with acoustic echo cancellation. There are other in-browser solutions, like DimDim and TokBox, but because they use Flash, and because Flash has no echo cancellation, they’re basically unusable unless everyone in the conference is wearing headphones. We managed to add echo cancellation by using Silverlight as our platform, which gave us raw access to the audio and video streams, though precious little else. As a result, we ended up having to rebuild the entire web conferencing stack, more-or-less from scratch: but the result is a solution that can offer features nobody else has.  

clip_image001[6]

Some Additional Details

  1. This all free at the moment – we haven’t even built the piece to charge folks. We anticipate that we’ll eventually offer a free and several paid levels.
  2. This is all written in Silverlight. Some folks have wondered about our choice of platform, mostly because of the limited reach of Silverlight compared to Flash. We don’t think this is going to be an issue in the long term: Silverlight had ~25% reach when we started, is now up to ~70%, and is continuing to grow at ~2% a month (see riastats for details).  HTML5 isn’t going to be an option for at least five years, as the W3C/IETF committee tasked with working on realtime web conferencing technologies only spun up last month, and is likely years away from a working spec, let alone widespread browser adoption.

Because all this is happening is completely in-browser, the next step in our strategy is to offer a simple API that websites can use to add real-time communications to their own sites.  Imagine car dealerships talking with customers in real-time as they’re browsing their site, or Nordstrom’s “personal shoppers” talking with their clients, or, really, any website with a high-touch sales model. Or use it to turn casual games into social games …”

Ken’s a friend and a co-worker from a previous life, so when I saw his post about his team’s new beta, I thought I’d help spread the word. I also thought it cool that they used Silverlight for this project.

Remember folks, this is beta, as in real, it might not work right away or all the time and they are still actively working it, beta.

From C/C++ to C#, libjpeg/libtiff’s journey from the unmanaged to managed world (Think “Porting code Tips and Tricks”)

CodeProject - Adapting old code to new realities

“This article describes a useful technics for transforming old-style C/C++ code to fully managed C# code. These methods were used for porting classic libjpeg and libtiff libraries to .NET Framework

Table of contents

  • Introduction
  • 1. Prerequisites
  • 2. Transfer process
  • 2.1 Removing the unnecessary code
  • 2.2 Preprocessor and conditional compilation.
  • 2.3 switch and goto operators
  • 2.4 Time to gather stones
  • 2.5 Preprocessor again and multiple inheritance
  • 2.6 typedef operator
  • 2.7. Pointer arithmetic
  • 2.8 Function pointers
  • 2.9 Isolation of the "problem code"
  • 2.10 Changing compiler
  • 2.11 Making it all work

Introduction

In this article I shall describe one of the methods that can be used to transform C/C++ code into C# code with the least amount of effort. The principles laid out in this article are also suitable for other pairs of languages, though. I want to warn you straight-off that this method is not applicable to porting of any GUI-related code.

What is this useful for? For example, I have used this method to port libtiff, the well-known TIFF library, to C# (and libjpeg too). This allowed me to reuse work of many people contributed to libtiff along with the .NET Framework Class Library in my program. Code examples in my article are taken mainly from libtiff / libjpeg libraries.

Adapting old code to new realities - CodeProject…”

I missed this article when it first came out in November, 2010, but better late than never. I liked how it fairly methodically wakes us through the steps the author took in his real world porting of an existing C/C++ code to C#. We’re talking PInvoke, but actual code porting.

(via bitmiracle - Transforming C/C++ code to fully managed C# code.)

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  ;)