Nov 132009

This is a proof of concept of an interactive collaborative development environment I built using  F# Interactive. The aim here is to explore different ideas for further development, not so much as to present an alternative to Visual Studio :) Source code here (zip).  ”Make it pink” code (txt), and Space Scene code (txt).

The video demonstrates a server and two clients collaborating on the same machine.

The way it works is that there are two different roles, the server (EchoServer) and the client (EchoClient). The role of the server is to act as repeater between the clients. When one client inputs source code the code is automatically sent to all the other clients. The server stores the code so when a new client joins it can be brought up to speed with all of the other clients.

This has the following advantages;

  • Everyone is on the same page with the latest version of the software
  • All developers work with the very latest source code
  • The source code is continuously integrated in real time
  • ‘Build’ breaks are noticed (and fixed) immediately

There are also a number of disadvantages;

  • Cannot undo certain operations with side effects
  • Code from the network is being downloaded and run on your machine
  • The entire source code is a stored as single string

The reason I am playing with this is prepare for my next move into Domain Specific Modeling tools.

I’ve included the source code below. It is prototype code, so there are probably a few bugs in it, and as always feedback is greatly appreciated.

Continue reading »

Posted by Matt Tagged with: , , ,
Nov 052009

*Update: Custom WPF Controls in F# is now available on Codeplex at http://wpffsharp.codeplex.com. You can still download the source from my site here. (Works best withVSTS2010 Beta1)

Screen Shot

Screen Shot

It is a translation of SAMS WPF Control Development Unleashed: Building Advanced User Interfaces written by Pavan Podila, and Kevin Hoffman to F#. I picked this book for translation as it covers many advanced topics that other books shy away from. I have been a reader of Pavan Podila’s blog Pixel in Gene for some time, and I have also been waiting for a book dedicated advanced UIs, so when I heard that he was coming out with such a book I knew it was going to be exactly what I needed.

WPF Control Development Unleashed

WPF Control Development

The aim behind this project is to serve as an extensive collection non trivial examples of WPF/F# UI. As I introduce people to F#, one thing I am constantly  asked is; can it do GUI. Now I can say yes, … well sort of. So far I have only translated 3,500 lines of F# code, and I am still not finished.

I’m doing this primarily as a learning experience and as a forcing function. I have already learned a lot about WPF and F#, and I plan on continuously improving the code as I learn more. Other contributions to the project would be very welcome, and if you spot mistakes or know of any better implementations please don’t hesitate to let me know.

I hope that you find this code to be useful to your WPF and F# projects , and happy coding.

-Matt

Read on for a list of known bugs;

Continue reading »

Posted by Matt Tagged with: , , , , ,
Jul 192009

This is an experiment in interactive user generated network graph layout. The video demonstrates the ability to specify a domain meta-model (class diagram) and then specify a model in the domain. The layout engine is force directed with a modified gradient decent algorithm for convergence.

Graph & Forces meta model
Meta-model

Tsunami
Tsunami
Posted by Matt Tagged with: , , ,
Jun 032009

This is essentially a 3D browser for Visual Studio Team Foundation Server Work Items. Each of the cubes represents a Work Item, and each of the lines represents a Work Item Link.

Just after adding a large number of nodes

Just after adding a large number of nodes

Before layout

A large network before layout

Continue reading »

Posted by Matt Tagged with: , , , ,
Mar 152009

Procedural modeling is an incredible technique for generating highly detailed scenes, as can be seen in the YouTube video. The screen shots below are from my little F# procedural modeling engine.

A point rotated around to make a circle and then revolved to make a sphere
A point rotated around to make a circle and then revolved to make a sphere

Continue reading »

Posted by Matt Tagged with: , , ,
Mar 152009
A pace scene

A space scene

A closer look

A closer look

Interaction with normal 2D wpf controls

3D Interaction with normal 2D wpf controls

Posted by Matt Tagged with: , , ,
Mar 142009
Now supporting bitmaps, procedural textures, and polygons

Showing off bitmaps, procedural textures, and polygons

I built this ray tracer for a computer graphics course. It’s based on Dr. Jon Harrop F# ray tracer and has been significantly refactored and extended to include the ability to support polygons, bitmap and procedural textures.

Dr John Harrops ray tracer

Dr Jon Harrops ray tracer

Posted by Matt Tagged with: , ,
Sep 082008

Try it out using click once deployment: 3D Wikipedia Browser

Browsing the vast Wikipedia informational network using a little app I built using C#, WPF, graph layout techniques and XML parsing.

Continue reading »

Posted by admin Tagged with: , , ,