Thursday, August 04, 2011

Microsoft Press Free Books, eReader style (ePub and Mobi versions of a number of previously released as PDF MS Press books)

Microsoft Press - New Formats for Free Microsoft Press eBooks

"From time to time Microsoft Press has been pleased to offer free downloadable eBooks available as either PDF or XPS files. We are now very happy to announce that five of these same eBooks can be downloaded in two additional formats, DRM-free EPUB and MOBI. These new formats enable you to read these eBooks on ereaders such as Amazon’s Kindle, Barnes and Noble’s Nook, Sony Reader and Kobo eReader, as well as on iOS devices such as the iPad. Of course these files can also be read with ereading apps for the various devices (and other reading applications like Adobe Digital Editions) on netbooks, laptops, and desktop PCs. The key difference between these formats and the previously-offered PDF and XPS files is that the text is “reflowable,” meaning that it recomposes depending on the width of the screen (or as you resize a Window). For reading on Kindles, Kindle apps, or the Mobipocket readers for various devices, use the MOBI files. For reading on most other ereaders and ereading apps, including Nook, Sony, and iPad, as well as on PCs, use the EPUB files.

..."

Here's a round up of the books

  • Programming Windows Phone 7 by Charles Petzold (EPUBMOBI)
  • Moving to Microsoft Visual Studio 2010 by Patrice Pelland, Pascal ParĂ©, and Ken Haines (EPUB, MOBI)
  • Introducing Microsoft SQL Server 2008 R2 by Ross Mistry and Stacia Misner  (EPUB, MOBI)
  • Introducing Windows Server 2008 R2 by Charlie Russel and Craig Zacker with the Windows Server Team at Microsoft (EPUB, MOBI)
  • Own Your Future, Update Your Skills with Resouces and Career Ideas from Microsoft by Katherine Murray(EPUB, MOBI)

Yeah, I know I said I was on vacation, but how can I resist this? I mean my kindle still has a bit room free... :P

(via @scottisafool - tweet -> Microsoft UK Students - A pile of Microsoft technical e-books now free for Kindle and iPad)

Tuesday, August 02, 2011

It’s going to be quite around here for a bit…

Just a quick heads up that it’s that time of year again, time to take a some days off, relax, regroup and reset. In short, its vacation time.

We’re heading back to Charlottetown, Prince Edwards Island. If there’s anyone there who’d like to meet up, drop me a line (my contact info is on the main page, top left,“Connect…”) and we’ll see if we can connect (I doubt it, but can’t hurt to try! ;)

Posts will be very few and far between for a bit (If not my wife will kill me… lol).

See you when we get back…

Developing a “Real” Outlook Social Connector Provider

MSDN Code Gallery - Outlook 2010: Developing a Real Outlook Social Connector Provider

“Introduction

Learn how to develop a real provider for the Microsoft Outlook Social Connector (OSC) by using the OSC Provider Proxy Library. This sample accompanies a series of four Visual How-To articles,Developing a Real Outlook Social Connector Provider, in the MSDN Library.

Description

The Microsoft Outlook Social Connector (OSC) provides a communication hub for personal and professional communications. Just by selecting an Outlook item such as an email or meeting request and clicking the sender or a recipient of that item, users can see, in the People Pane, activities, photos, and status updates for the person on their favorite social networks.

The sample solution contains two projects:

  • OSCProvider—This project is an unmodified version of the OSC Provider Proxy Library that is used to simplify the creation of the OfficeTalk OSC provider.
  • OfficeTalkOSCProvider—This project includes the source code files that are specific to the OfficeTalk OSC provider.

The OfficeTalkOSCProvider project includes the following source code files:

  • OfficeTalkHelper—This class contains helper methods that are used throughout the sample solution.
  • OTProvider—This is a partial class that contains the OSC Provider Proxy Library override methods that return information about the OSC provider, information about the social network, and information for the currently logged-on user.
  • OTProvider_Activities—This is a partial class that contains the OSC Provider Proxy Library override methods that return activity information.
  • OTProvider_Friends—This is a partial class that contains the OSC Provider Proxy Library override methods that return friends information.

…”

Developing a Real Outlook Social Connector Provider

“This section contains a set of four Visual How Tos that shows how to develop a real provider for the Microsoft Outlook Social Connector (OSC) by using the OSC Provider Proxy Library.

An OSC provider allows Outlook users to view, in the People Pane, an aggregation of social information updates that are applied on a professional or social network site. An OSC provider is a Component Object Model (COM) DLL. The OSC provider extensibility interfaces form the medium through which the OSC and an OSC provider communicate. OSC provider extensibility consists of a set of interfaces that is available as an open platform. These interfaces allow the OSC to access social network data in a way that is independent of the APIs of each social network. An OSC provider obtains social network data from the corresponding social network and, through implementing the extensibility interfaces, feeds that social network data to the OSC.

The OSC Provider Proxy Library simplifies the implementation of the OSC provider extensibility interfaces. Instead of a provider explicitly implementing the OSC provider extensibility interfaces, the proxy library implements them, to call a set of abstract and virtual methods in the proxy library. A provider, in turn, overrides this set of abstract and virtual methods with the business logic specific to the social network, to return social network data that the OSC requires.

To show how a provider can use the OSC Provider Proxy Library, this set of Visual How Tos describes a real provider for OfficeTalk. OfficeTalk is a social network in a private corporate environment and is not publicly available. Nonetheless, it is a good example of the kind of social network that you might want to develop a custom OSC provider for. You can use the procedures for creating the OSC provider for OfficeTalk to create a custom OSC provider for any social network.

In This Section

  • Part 1: Developing a Real Outlook Social Connector Provider by Using a Proxy Library
  • Part 2: Getting Friends Information by Using the Proxy Library for Outlook Social Connector Provider Extensibility
  • Part 3: Getting Activities Information by Using the Proxy Library for Outlook Social Connector Provider Extensibility
  • Part 4: Building an Installation Package for a Real Outlook Social Connector Provider

…”

Been a while since I’ve seen much/any traffic on the Outlook Social Connector. It was hot when Office 2010 shipped, but not much recently. That could mean a number of things. It’s dead in the water. It’s prefect as is and there’s no need for any more Connectors. It’s too hard.

In case of the last, these posts and code could be of some help…

HTML5 Periodic Table of Elements (as in HTML5 Tags… )

Calc Result - Periodic Table of HTML5 Elements

“The table below shows all valid elements in the current HTML5 specification. They are grouped and coloured based on their "Content Model" i.e. what type of element it may contain. Items shown with red text have complex requirements but are shown alongside elements with similar content models. Unlike the Mendelevian Periodic Table that is used in Chemistry, there is no fundamental ordering to the elements within a group, and no significance to the presence of a few empty spaces.

image

…”

I thought this was pretty cool and something that would help me grok HTML5…

(via {quickly code} - Periodic Table of HTML5 Elements)

A basket of 31 Mango’s… “31 days with Windows Phone 7” post series

Kunal's Blog  - 31 Days with WP7 - A Collection of Windows Phone 7 (Mango) Tutorials You Must Read

“Recently I had started exploring Windows Phone 7 with first Mango update and accumulated a no. of beginners tutorial in my blog. In this post, I am going to share all the chapters of the series as "31 days with WP7" - a must needed guide for a beginner who wants to learn about Windows Phone 7 programming.

Hope, this will be helpful to you to understand the basics before jump start to the application development. This post is on popular demand and I am dedicating this to all my blog readers. Thank you everyone for your support.

Find all the chapters of the beginner series of the Windows Phone 7 (Mango) Tutorial here and don't forget to share it to others. Feedback and suggestions are always appreciated.

…”

Here’s a summary/round-up of the posts (click through for more details and links);

  • Download Windows Phone Developer Tools 7.1 Beta - Web and Offline Installer
  • Download Windows Phone SDK 7.1 Beta 2 (Mango) - Web and Offline Installer
  • What’s New in Windows Phone Developer Tools 7.1 Beta?
  • How to Create a Hello World Application?
  • What is Windows Phone 7 Page, Navigation Context, Navigation Service and Navigation Cache Mode?
  • What is Phone Application Page, Supported Page Orientation, Page Orientation and Application Bar?
  • What is Application Bar?
  • What are the Design Guidelines for Application Bar?
  • How to Create Page Navigation?
  • What is Application Lifecycle in Windows Phone 7?
  • What is Page State?
  • How to Manage the State of a Windows Phone 7 Page?
  • What is Application State?
  • How to Manage the Application State?
  • How to use Isolated Storage to Store and Retrieve Data?
  • What is Tombstoning?
  • How to Show and Hide the onscreen keyboard in Emulator?
  • How to Detect the Network Information of the Device?
  • How to Detect the Device Information?
  • How to Create a WP7 Alarm Application?
  • How to Create a WP7 Reminder Application?
  • What are the various Phone Tasks available?
  • What is WP7 Accelerometer?
  • What is Accelerometer Tool?
  • How to Create a Small Accelerometer Application?
  • What is Local Database Support in new Public Beta and How to Create a DataContext?
  • How to Configure the Project for Accessing the Local Database?
  • How to do CRUD operation in Local Database of Windows Phone 7 Application?
  • What is Database Connection String and it's Parameters?
  • What is Input Scope?
  • How to Detect whether the Network is Available?
  • How to Detect the Current Theme?

Looks like some cool WP7 posts doesn’t it?  :)

 

Related Past Post XRef:
19 Mango's in 15... 19 "How Do I" 15 minute videos from MSDN on WP7 Mango dev
Fertilizer for your Mango [development]
How to Mango... MSDN How To Index for Windows Phone 7.1
How to Grow your Mango (knowledge that is) - Mango Training Course
Dev Dude's Guide to Mango Series - "Windows Phone Mango–What’s New?" in 8 parts (Think "Code trucks filled with many Mango's")

Monday, August 01, 2011

Veracity, do we need another DVCS? (Hint "Yes, because there's still room for innovation for the 3G VCS's...")

Eric Sync - Why Another DVCS?

"The first reaction from many folks when they see Veracity is to ask us why we built another DVCS. Having responded to this question many times now, I have finally learned that it is actually two different questions.

Some folks are trying to ask the following question:

How is Veracity different from Git?

The chart on the front page of veracity-scm.com contains some answers.

However, other folks are trying to ask this question:

Eric, you clueless idiot, what recreational pharmaceutical were you smoking when you decided to build yet another DVCS that has no chance of survival because Git has won and all other tools will eventually be crushed under the weight of the awesomeness of Torvalds and his disciples?

This question requires a somewhat different answer.

...

SNAGHTML67087bff

Oh geez. That picture turned out to be somewhat ruder than I intended it. Let me clarify a thing or two:

  • I mean no criticism here of Git. It's an outstanding piece of software in many ways.
  • Any criticism of Git's fans or users is intended to be constructive, accompanied with much brotherly love and support.

Seriously, Git fans, you and I are on the same team here. We're DVCS fans.

But, well, sometimes when I meet some of the more evangelistic Git fans, I just want to tell them to get out more. See a broader perspective.

..."

That Venn diagram made me snort laugh and had all the animals looking at me funny (which is a fairly usual occurrence, but that's beside the point). PLEASE understand that it's a joke, to get a laugh, make a point and maybe snap you out of your "Case of the Monday's..." (I know that that is apparent given how over the top it is, but you never know).

I think DVCS's are an interesting idea and am keeping an eye on them and their progress...

 

Related Past Post XRef:
“Version Control By Example” - Free ebook from Eric Sync (Think “226 pages focusing on DVCS, GIT, Mercurial, Veracity and SVN”)
Different POV's of DVCS

Windows Azure Toolkit for Social Games Preview 2 Released

Windows Azure Toolkit for Social Games - Windows Azure Toolkit for Social Games PREVIEW 2

"This is the second preview release of the Windows Azure Toolkit for Social Games. This release contains the full source for the game Tankster (www.tankster.net), bug fixes, and additional APIs. ..."

Nice iteration cycle, very encouraging... :)

 

Related Past Post XRef:
"Windows Azure Toolkit for Social Games" preview released - Toolkit to help you Social your .Net or HTML5 games...
WAT is to Social Gaming, as Windows Azure is to...

Can we get a little Unity?

Developers' Hangout Blog - Introduction to Unity Application Block 2.1

“In this post I would like to do a simple introduction to Unity Application Block. Unity is a framework that supports dependency injection (DI) in constructors, properties, and method calls. Unity also supports intercepting method calls which I may cover in a later post.

The documentation for Unity is pretty detailed, so it is probably a good place to start for background information. I’ve also included a link to the download area in the references section at the bottom of the post.

What is Unity and why would you use it?

When you start a project, the code base is usually small so it is not difficult to maintain or test. As the project gets larger, it is often the case that it gets broken down into components, and each component is created separately, and then integrated into the rest of the project.

In the beginning, the components are self contained and testable on their own if the person doing the work was paying attention to object oriented design principles. Even if the component was carefully constructed, at some point during integration it is usually the case that component boundaries begin to break down and components start having strong dependencies on each other.

Part of the break down of component boundaries happens because components start to inherit responsibility for configuring the dependencies with other components. Once a component has built in knowledge on how to create and configure another component, it becomes difficult to separate the components and test them independently.

This is where Unity comes in. Not only does Unity take the responsibility for creating and configuring components, it does so in a consistent way. Components don’t have to know where their dependent components come from. In addition, Unity can automatically create the dependent components if, necessary, or use existing instances.

…”

Been a good while since I’ve blogged about, or [sheepish grin] looked at, Unity so a review of it, what it can do and how it can help use build better apps is timely…

 

Related Past Post XRef:
IoC? What? Man, I’m just a line of business dev trying to get through my day… What is this inversion of control/IoC, Dependency Injection thing?
Still trying to figure out what DI/IoC but are afraid to speak up?

Writing a MMC Plugin, with MVP and Unity
The Microsoft Patterns & Practices Catalog Cheat Sheet
Microsoft Enterprise Library 5.0 and Unity 2.0 RTW (& EntLib 3.x, 4.x to 5.0, Unity 1.x to 2 Migration Guide)

.Net vs Managed in the image manipulation world, one ISV’s story (or “How F# helped save the day…”)

Steve's Tech Talk - Building Pure Managed DotImage

“We recently released DotImage 10 and if you’ve been following us for a while, you know that we are committed to building the best .NET imaging components. Since I started at Atalasoft, I have been looking at the issue of making as much of our internals in entirely managed code. From the very beginning, it was a daunting task. I estimated that to do the entire project would be around three person years of engineering time. This begs the question, “is it really worth it?”

On the down side:

  • managed code runs, on average, 1.5x slower than unmanaged code. In image processing, this time stacks up quickly. Operations are routinely repeated billions of times, so we really have to keep an eye on costs.
  • Translating to managed code appears to not add much value as the code appears to be the same – no features added

On the plus side:

  • dotImage will run on the client in Silverlight applications as well as hosted .NET where unmanaged code isn’t allowed
  • Managed code is far more stable – array bounds checking alone is a big win
  • Managed code is simpler to author to and simpler to deploy
  • Managed code is future proof on different processors/OSes
  • Managed code is easier to scale across multiple cores/CPUs

How did we do this? I’ve been playing a chess game with our API over the past 5 years.

This laid the ground work. The next step was to apply a set of porting strategies. My goal was to reuse as much code as possible in this port. This meant using our regular C# code (slam dunk), removing any unsafe code, porting C/C++ (and in some cases choosing to use the new code in both managed and unmanaged ports), adapting APIs when possible (Silverlight doesn’t have System.Drawing, which means no Rectangle, Point, Size or Color objects), writing unit tests that ensure that output matches, running benchmarks to find and eliminate bottlenecks, and so on.

Finally, there is a new secret weapon in our arsenal. A fair amount of DotImage 10 is written in F#.

Yes, you read that right. …

…Since each of these are inlines, the F# optimizer can actually do something useful with the code. In my experience so far, the C# optimizer doesn’t really do much, if anything. So why do we care about this? It’s that lurking 1.5x managed code cost. In my measurements, C#->IL->target CPU does about 1.5x the work of C++->target CPU. Quite honestly, for a virtual language to a virtual machine, this is a very low cost. By using F#, we were able to address this cost by using inlining, code profiling, scanline caching, memoization and other techniques. In many cases we ended up with code that ran in equivalent time to C++ code or in some cases faster.

This is not to say that we didn’t have issues with F#. I found several compiler bugs for which we got some quick work-arounds from Don Syme and his team. I also found some interesting .NET interoperability challenges, but in the end I was able to meet one of my prime rules for picking F#: any object written in F# should be method signature identical to the C# equivalent so that our customers shouldn’t need to know or care about the .NET language implementation choice under the hood. The code should work, it should work well and with no surprises.

…”

This was a great post and I applaud Steve for taking the time to write and Atalasoft for supporting him in allowing it. It’s not every company that will let their people blog about things that are this close to the core.

Also it’s great seeing a real world success story for F#…

Streaming your music at home on the cheap… Using IIS to stream your music to your Windows Phone 7 (or iPhone/Android)

IIS Workstation - How do I listen to songs from my laptop on my Windows Phone 7?

“I have about 6 GB of audio collection saved under folder ("Songs") on my machine. I never felt it practical to sync my entire collection, however, every now and then I would miss listening to a song I hadn't synced yet ... so I had to find a solution to this problem... The answer to the above question is fairly simple - I used IIS
3 things I am using for this setup to work are: My laptop, Windows Phone 7 Device and a wireless router.
The laptop and HTC HD 7 are using the linksys router for obtaining an IP. Therefore they are pingable to each other. Once you confirm the ping, install IIS on your laptop or desktop machine in case you dont have it installed already. once IIS is installed, do the following:

Well, that's about it. You can now browse your website by opening up IE on WP 7 and accessing your machine IP address. Following are a few things you should know about what kind of files you can place in this folder as not all files that play on your machine will play on your windows phone 7.
a. MP3 will be streamed automatically from your machine to your windows phone 7 device. There is nothing you have to do to make this work.
b. WMV will be streamed by default as well. For details, check: http://msdn.microsoft.com/en-us/library/ff462087(v=VS.92).aspx
c. You are not using any dynamic technology here. You are *NOT* using silverlight or Flash. Therefore, your MP3 files will work perfectly on an iPhone or an Android device as well.
d. If you want to make the page look good, you can download various custom directory browsing modules available on the internet.
e. This setup will of course work only in your home network
…”
The geek level, yet its simplicity, is cool.
Please note that you should do this with care and caution. You don’t want to do this on a notebook you travel with, etc.