Jeffrey van Gogh

Jeffrey van Gogh J.Van.Gogh

Niner since 2009



  • Wes Dyer and Jeffrey Van Gogh: Rx Virtual Time contains sample code, that hopefully will give you a headstart. We're  working on getting our tests shipping as well, but will take a bit more time..



  • Wes Dyer and Jeffrey Van Gogh: Rx Virtual Time



    you would create a scheduler that derives from VirtualScheduler, give it two type parameters that implement the absolute and relative part of your notion of time. For this to work, your notion of time will need to be able to :

    • Convert your notion of absolute time to DateTimeOffset
    • Convert TimeSpan to your notion of relative time
    • Increment your notion of absolute time with your notion of relative time to produce a new instance of your notion of absolute time.

  • Jeffrey Van Gogh: Testing Rx with Pex

    an internal source control system from before TFS (we're all old school Microsofties who have the old system's shortcuts in our fingers Smiley)

  • Jeffrey Van Gogh: Testing Rx with Pex

    We didn't integrate Pex with Tfs.


    In our team we use a checkin system popular inside Microsoft that does verification before checkin. Source changes get packaged up, send to a server. The server kicks off a build with the code changes, starts up a bunch of vms, installs the product and runs test on it. Only if everything passes the code is checked in by the server.


    In this system adding pex is very easy as you can write test scripts in any (scripting) language you want as long as there is a commandline to execute. Not sure how much work it would be to get it going in TFS...

  • Reactive Extensions API in depth: ​Combine​Latest

    Yup aware of the volume (and lighting) issues, recording on a Flip right now, which is great for home videos but less ideal for these kind of videos, getting a more professional camera soon...


    Thanks! Yes we'll definately bring the marble diagrams up with the doc team...

  • Reactive Extensions API in depth: ​Combine​Latest

    Definately, we already have the videos for the upcoming week or so recorded, but we'll include that in the next batch we'll record..


    CombineLatest is extremely useful in a scenario where you always need a pair of events e.g. you need to know the latest key pressed in combination of the latest position of the mouse cursor.

  • Reactive Extensions API in depth: Zip

    There is a Join operator that implements the Join-Calculus, we'll do a future video on that operator for sure!

  • Reactive Extensions API in depth: Zip

    That's actually what CombineLatest does. We're missing one that will not duplicate but does take the latest unused value (cache of one, with consumption), will talk to Wes and Erik to see if that would be a useful operator...

  • Reactive Extensions API in depth: Zip

    Zip will start caching. On Thursday we'll explain CombineLatest which is like what you're describing as the second option...

  • Reactive Extensions API in depth: Contract

    Hi JWeber,


    Rx allows all of the above options. It really depends on what you're looking for. option 1 would be the default behavior. if you had used a AsyncSubject or ReplaySubject, you could get option 3.  option 1 and 4 you'd have to implement manually using Observable.Create.


    Hope this helps,



  • Reactive Extensions API in depth: Primitives

    All Rx combinators have non-blocking subscribe, so OnNext is called on the SynchronizationContext. For Return's case this means that if you subscribe on the thread owning the SynchronizationContext you're guaranteed to be called after Subscribe returns, or if you're calling from a different thread, you're called either during or after your call to subscribe. In the first case, calling Dispose should guarantee not to make the OnNext call, where the latter you might or might not succeed to cancel subscription.

  • Erik Meijer: Rx in 15 Minutes - Rx is Here!!!!!

    Sounds like you have the June 2008 CTP version of Pfx installed on your machine, their version number was 1.0.3058.34407. Try going through your installed program list to see if it is still there by anychance and uninstall that before installing Rx...

View All