One Man’s Communication Journey Through the Internet

I saw recently that a buddy had celebrated his fifth year of blogging.  Very cool but it made me, of course, start to wonder when I started blogging.  Now, so much depends on what you mean by blogging.  Because blogs didn’t come out of nowhere, they evolved out of prior technologies.  For example, before I had a blog I had a threaded discussion that was part blog, part comments and part conversation.

Continue reading

Posted in Patterns & Skills | 8 Comments

Yet Another Podcast–Bill Wagner

Effective C# and much more with Bill Wagner

    Listen | Return to Yet Another Podcast

    Call in comments:  1-347-YAP-CAST

    rssiTunesalt

    Posted in Essentials, Languages, Patterns & Skills, Tools and Utilities | Tagged | 2 Comments

    Reactive Extensions–Observable Sequences are First Class Objects

    Windows Phone From Scratch #28Reactive

    In yesterdays’ posting on Asynchronous programming with Reactive Extensions I  created a browser application that reacted to user input into a TextBox.

    You will remember that the observable was created from the TextChanged event as demonstrated in the following bit of code (the throttle was used to avoid picking up any changes in the text until the user paused in entering new text),

    var keys = Observable.FromEvent<KeyEventArgs>(
       search, "KeyUp" )
       .Throttle( TimeSpan.FromSeconds( .5 ) );

    Then we subscribed to the observable collection and had to reach into the text box to obtain the changed text:

    keys.ObserveOn( Deployment.Current.Dispatcher ).
             Subscribe( evt =>
    {
      txtSearching.Text =
         "Searching for... " + search.Text;
      txtLoading.Visibility =
          System.Windows.Visibility.Visible;
      webBrowser1.Navigate( new Uri(
          "http://en.wikipedia.org/wiki/" + search.Text ) );
    } );

    This is fine as far as it goes, but we can go further.  Because observable sequences are first class objects we can provide operators over them using generic extension methods; which is exactly what was done by the creators of the Rx framework.

    Continue reading

    Posted in Data, Mini-Tutorial, Patterns & Skills, Reactive | Tagged | 1 Comment

    Rx–Reactive Programming for Windows Phone

    Windows Phone From Scratch #27

     

    My first posting about Reactive Programming for Windows Phone generated seach WIKI some terrific comments… many of which asked (and others answered) “what is the benefit of this?”

    In this second posting on the topic I’ll tackle a bit of asynchronous programming that may help to illustrate how the implementation of the observer pattern by the Reactive Programming framework can greatly simplify Windows Phone programming.

    Continue reading

    Posted in Data, Mini-Tutorial, Patterns & Skills, Reactive, WindowsPhone | Tagged | 5 Comments

    Stop What You Are Doing And Learn About Reactive Programming

    Windows Phone From Scratch #26

    I’m increasingly convinced that Reactive Programming is going to be critical for Silverlight and Windows Phone developers.  Reactive Programming is not new, and the Rx toolkit has been out for a while, but this is not a heavily covered topic, and the more I look the more I think it should must be.

    In short, Reactive Programming is a way to take aspects of your code that are currently imperative and turn them into something much more event-driven.  In fact, Reactive Programming is sometimes referred to as LINQ Over Events.

    This is tremendously helpful with asynchronous programming, but also with managing routine programming as well.

    Continue reading

    Posted in Patterns & Skills | 23 Comments

    Linq and Fluent Programming

    A LINQ Tutorial

    I interviewed Bill Wagner for Yet Another Podcast while we were both at CodeMash fluent (look for his interview to be published next week).  In addition to being one of the nicest guys I know, he is also one of the smartest.

    During the conversation he illustrated the ideas behind Linq and Fluent programming with a verbal example.  With his permission, I’ve picked up that example and present it here as a crisp crystallization of these key programming concepts.

    Continue reading

    Posted in Data, Essentials, Mini-Tutorial, Patterns & Skills, WindowsPhone | Tagged | 16 Comments

    Using the Camera in Windows Phone 7

    Windows Phone From Scratch #24

    On January 24 we created an application that launched the contact list and returned camera the phone number of the selected contact.  In that posting I reviewed, briefly, the difference between Launchers and Choosers. This posting builds on that work.

    Today we will use the Chooser for the Camera, which will bring up the camera and then return the location of the image taken.

    Continue reading

    Posted in Patterns & Skills, WindowsPhone | Tagged , | 1 Comment

    Launchers & Choosers–Part 2

    Windows Phone From Scratch #23SMS

    In yesterday’s posting we created an application that used a chooser to allow you to pick a name from the contacts list and to obtain the related phone number.

    Today we’ll use that information to launch the SMS service to send a message to the selected user.

    Continue reading

    Posted in Patterns & Skills | Tagged , | 1 Comment

    Tasks: Launchers and Choosers–Windows Phone From Scratch #22

    To provide your Windows Phone application access to the operating system (and with CHOOSER it, to the native applications such as SMS, the Contact List, the Camera, and, oh yes, making a call) Windows Phone 7 has a set of predefined Tasks.

    Tasks can be divided into two types: Launchers, which launch an application but do not return a value (e.g., sending a SMS message) and Choosers, which launch an application and do return a value (e.g., fetching a phone number).

    Continue reading

    Posted in Patterns & Skills | Tagged , | 4 Comments

    Yet Another Podcast #21–Jeremy Miller

    IOC Containers, .NET, Alt.NET and much more with Jeremy Miller

    Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. jeremymiller

    Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun.

    Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC.  Jeremy’s thoughts on all things software can be found at The Shade Tree Developer.

    Call in comments:  1-347-YAP-CAST

    rssiTunes

    Posted in Essentials, Opinion, Patterns & Skills, Tools and Utilities | Tagged | 1 Comment

    Personal Brain: Quick Tip

    Personal Brain has an extraordinary feature called ESP.  Depending on how you set it up (I have it set to monitor the clipboard and to automatically bring up a thought), it watches everything you type, in any  Windows application, and as you type if it recognizes the word you just typed it jumps to the relevant entry. 

    This can be amazingly powerful; I have only to type Full Stack and up comes that though with all its related thoughts.

    I’ve collapsed the related thoughts and cropped the image to make it fit here.

    fullstack brain

    Posted in Patterns & Skills | 1 Comment

    Oops! Our OData Was Read Only. Yikes!

    Jon Galloway and I recently documented what we were learning about Entity Framework Code-First and oData as part of the Full Stack project.  It turns out, however, that we were into some bleeding edge technology, and while   everything we posted works, it works read-only, as written it is not possible to update the data.  Not great.

    With the guidance of Chris “Woody” Woodruff we stopped using batch updating and we opened up our error messages to see more detail.  This led Jon to an article by Rowan Miller which targeted exactly the problem we were having.  Jon documents it all here.

    Key was that we were using DbContext, which is a wonderfully lightweight convention-over-configuration based wrapper over ObjectContext, but one of its limitations is that it does not does not include IUpdatable support, as documented here.

    Continue reading

    Posted in Patterns & Skills | Tagged , | 1 Comment