... all I'm offering is the truth. Nothing more. RSS 2.0
# Tuesday, November 11, 2008

Over the last few months I have installed more beta software on my main machine than I should have. This is always a risky proposition and on occasion this glut for knowledge can back fire. The two worst beta offenders have been IE8 and the now obsolete Silverlight 2 beta. Both products have combined to waste hours of my time during the initial use and subsequent uninstallation process.

As you can imagine I have been very reluctant to put any more new beta software on my PC (I should really start using Virtual PCs). One ray of light in the recent installation wars has been my adoption of Google Chrome. I have been really impressed by how snappy it is and when I saw that it has a task manager for plug-ins that are running in the browser there was no looking back!

 image

I  have been convincing myself that this is not a beta because it does not say so in the about screen. However, any version number under 1.0.0 cannot surely be anything else. Either way Chrome is giving me significantly less problems than IE8 and may actually be better than FireFox, and for that I will remain eternally grateful.

image

Technorati tags:
Tuesday, November 11, 2008 7:18:08 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Web browser
# Friday, November 07, 2008

I thought the Vectorform application for the Surface was awesome. The following is a demo that was recorded by Channel 9 at the 2008 PDC.


Surface beats with Vectorform


 

Technorati tags: ,
Friday, November 07, 2008 10:48:39 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Hardware | Microsoft | Music
# Thursday, November 06, 2008

I am surprised that the marriage of Netflix and Xbox has not garnered more attention. The marrying of a movie subscription model (Netflix instant watch queue)with a HD enabled gaming system should be a massive game changer. Xbox gold members who are also members of the Unlimited Netflix subscription plan have access to an additional 12,000 movies. That is in addition to the approximately 20,000 titles available for purchase or rent from the Xbox Live Market Place.

If the stars align correctly this Christmas I may get an Xbox, if not there are other Netflix compatible hardware options that one should consider. This includes:

No matter what option you choose it should negate the need to purchase non HD premium channels from your cable provider, and it also offers a better option than mailing in DVDs. It could also save me about $150 a year.

Technorati tags: ,
Thursday, November 06, 2008 11:37:44 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1] - Trackback
XBox
# Friday, October 31, 2008

I am a huge fan of extension methods and in a past post I have described how one could add useful methods to existing types within the .NET framework. This idea is sound, however, I remember almost within a week of the post Jeff Atwood posted a critique of the extension methods that bordered on hostile (I believe the timing was a complete coincidence).

Upon reading both posts again I realized that there should be additional discussion on Extension Methods within the scope of Interface design. What both posts did not look at was the potential impact of extension methods on the fundamental idea of interfaces in C#, vis-a-vis, having abstract method signatures with implementation code.

So lets look at a simple interface:

    public interface ITalk
    {
        void Shout(string words, bool whisper);
        void Shout(string words);                 //whisper is supposed to be false but an
                                                  //interface cannot implement this solution
    }

So if I am the architect of the interface and want to ensure that when developers use the ITalk.Shout(string words) signature, that the bool whisper parameter is always false, I would be forced to redesign this as a base class because this default value constraint is traditionally only enforceable in a base class.

However, with extension methods another options is made available to me, I can actually spot weld an implementation that forces default values to be used as follows:

    public interface ITalk
    {
        void Shout(string words, bool whisper);
        //I remove the Shout(string words) implementation
    }

    public static class ITalkExtensions
    {
        public static void Shout(this ITalk talk, string words)
        {
            talk.Shout(words, false);
        }
    }

So with the above example we actually solve the issue of using an interface while simultaneously providing a pseudo implementation that will provide default values. This technique also enables us to modify an interface without requiring wholesale updates to users of the the Interface. Our code using ITalk would look like this.

    public class Test1 : ITalk
    {

        #region ITalk Members

        public void Shout(string words, bool whisper)
        {
            throw new NotImplementedException();
        }

        #endregion

    }

In the following example, Test1 inherited ITalk and as you can see there is an extension method available to you.
image

Technorati tags: ,
Friday, October 31, 2008 10:49:40 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
C#
# Monday, October 27, 2008

By the time you read this blog entry the word ‘Azure may have a different meaning for most search engines. What is Azure? Well lets see what Microsoft says …

The Azure™ Services Platform (Azure) is an internet-scale cloud services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services that can be used individually or together. Azure’s flexible and interoperable platform can be used to build new applications to run from the cloud or enhance existing applications with cloud-based capabilities. Its open architecture gives developers the choice to build web applications, applications running on connected devices, PCs, servers, or hybrid solutions offering the best of online and on-premises.

Azure reduces the need for up-front technology purchases, and it enables developers to quickly and easily create applications running in the cloud by using their existing skills with the Microsoft Visual Studio development environment and the Microsoft .NET Framework. In addition to managed code languages supported by .NET, Azure will support more programming languages and development environments in the near future. Azure simplifies maintaining and operating applications by providing on-demand compute and storage to host, scale, and manage web and connected applications. Infrastructure management is automated with a platform that is designed for high availability and dynamic scaling to match usage needs with the option of a pay-as-you-go pricing model. Azure provides an open, standards-based and interoperable environment with support for multiple internet protocols, including HTTP, REST, SOAP, and XML.

 

Microsoft also offers cloud applications ready for consumption by customers such as Windows Live™, Microsoft Dynamics™, and other Microsoft Online Services for business such as Microsoft Exchange Online and SharePoint® Online. The Azure Services Platform lets developers provide their own unique customer offerings by offering the foundational components of compute, storage, and building block services to author and compose applications in the cloud.

servicesPlatform

 

Turning into a developer who is fundamentally focused on HTTP rather than C:\Windows may just pay off. You can register for the community preview here. Exciting times!!

 

Technorati tags:
Monday, October 27, 2008 1:18:47 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Windows
# Tuesday, October 21, 2008

I have been waiting for a while for the Windows Mobile 6.1 upgrade for the HTC Touch (Alltel), and finally HTC (Alltel and Microsoft) have released a 6.1 ROM upgrade.

The main problem with the mobile companies is that they all have slightly different implementations of Windows Mobile (WM) 6.1 based on the individual carrier requirements, as a result you cannot blindly update your phone with an off the shelf version of WM.

HTC and Alltel appear to have been very quiet about the upgrade, and I found out about its release by accident, to further the confusion it appears that the 6.0 upgrade will only be available for free until October 31st, a mere 3 weeks after 6.1 became available … very strange.

Tuesday, October 21, 2008 10:54:00 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] - Trackback
Phones
Blogroll
Statistics
Total Posts: 334
This Year: 22
This Month: 0
This Week: 0
Comments: 32
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Mark Downie
Sign In
All Content © 2010, Mark Downie
DasBlog theme 'Business' created by Christoph De Baene (delarou)