Granville Barnett

April 2008 - Posts

A great resource for F# - F# Journal

I'm on a mission to ramp my F# posts up but before I do I just wanted to point out that Jon Harrop has being relentlessly posting some great articles in his F# Journal.

One of the things that I must give Jon great credit for is that he is very honest to the nature of functional programming - his articles are littered with great insight (if like me you are not one for reading code snippets, rather you just want the theory and then take that and run with it - F# Journal is very good for that...of course there are code snippets as well though).

The best thing though for me about F# Journal is that the articles are not on the typical subjects, rather they are quite varied and I must say very interesting, here are a few titles of recent articles in F# Journal:

  • Factoring numerical methods using combinators
  • Numerical Libraries: special functions, interpolation and random numbers
  • Reducing development costs with Static Typing
  • Numerical Libraries: linear algebra and spectral methods

Oh his blog is called F# News. Some more interesting stuff on there as well.

Posted: Apr 27 2008, 04:01 PM by gbarnett | with 5 comment(s)
Filed under:
C++ portability guide

I was looking for this document a while ago and couldn't seem to find it but I stumbled across it moments ago almost by chance. It's the the Mozilla guidance for C++ portability - give it a read here if you are interested in that stuff it is full of subtle pointers that make sense (and some that are not that obvious).

If you have a spare few minutes give it a read, it is fairly comprehensive but at the same time I would take some of it with a pinch of salt.

Posted: Apr 20 2008, 07:16 PM by gbarnett
Filed under: , ,
Lack of a good free UML designer for .NET, or just in general

I have found that .NET really lacks in this space, needless to say I've been scouring the web for a decent free UML designer.

Annoyingly most of the free UML tools have heavy restrictions on there use (VP, MagicDraw), oh and Visio is hopeless for complex diagrams.

NetBeans comes with an awesome UML designer built in and supports the 8 core diagram types.

The discouraging thing about the Visual Studio space is there hasn't been word of class diagrams, or the modelling space in general since MS announced support for C++ class diagrams in March 2007.

With all the designers that are in VS now for literally anything you would sort of think that this UML stuff would of crept in somewhere along the line.

Maybe in the next VS release there will be something on this???

Impressive author lineup over at DotNetSlackers

I must say Sonu has to be congratulated on his success to lure the likes of Dino Esposito, Bertrand Le Roy, Alessandro Gallo, and more into writing for DotNetSlackers.

The author list has to be amongst, if not the most impressive on any online community right now - what's more this is all free!

Here are a list of some of the articles:

Seriously go check this stuff out!

Posted: Apr 13 2008, 01:32 PM by gbarnett
Filed under:
Something I let pass me by - VC++ TR1 released

If you have been using the Boost libraries then you will probably not see anything major that's not already in the Boost TR1 library BUT officially VC++ now has a TR1 implementation which is always a good thing.

Information about TR1 (and the MFC update - which is itself is a major improvement!), and the download link.

Also of note Herb Sutter has moved blogs again! This guy changes blog every year it seems but he's worth tracking!

Herb stop it!

Enjoy this, its a nice update to VC++.

CPU Scheduling Simulator 1.0 released!

I've said it all before in recent posts, but here it is again - CPUSS is a framework that allows you to design and analyse CPU scheduling algorithms.

Download CPUSS 1.0

There is a tonne of stuff in CPUSS! Most of which is not exposed by the report generation tool (CPUSSRG). Using the CPUSS API  you can look at very atomic stats of each and every process that was in the simulation, events for process start, completion, preemption, and resuming.

Download CPUSS 1.0

You can use CPUSS to analyse your won custom algorithms very easily, go to the download page of CPUSS 1.0 and grab the PDF file that explains how to do it, and the API document is quite comprehensive.

Download CPUSS 1.0

If you are interested in scheduling algorithm (strategy) design and analysis then give it a go!

This will be the only release of CPUSS, I may update it a little if there are any major bugs found but it started off as a research project so it won't go any further - it has proved what it needed to prove.

Download CPUSS 1.0

Seriously go check it out if you are into this stuff.

Oh, and finally a BIG thank you to everyone who downloaded the releases and played with them! Thank you!

CPU Scheduling Simulator 0.9 RC released!

Download CPUSS 0.9!

In this release I have fixed a few things, as well as added a few new minor features to make analysis of scheduling algorithms a lot quicker, some of which include:

  • CPU Utilization %
  • Turnaround times for each process
  • Response times for each process
  • Throughout time windows

I have also included a tidy binary distribution as well, so if you can't be bothered looking at the source code and you just want to take a few bits of CPUSS out for a spin then simply download that. There is also a brief users guide in there as well which will help you get on your feet.

Using CPUSS Report Generator (CPUSSRG)

This tool is very simple to use, but of course I would say that! What this tool allows you to do is invoke a scheduling algorithm against some defined processes n times and then the data is aggregated into a HTML report for viewing.


Step 1: Define the simulation

This is going to be a really trivial guide as using the tool is trivial, but anyway's here we go...

CWindowssystem32cmd.exe (2)

What has that just done? It's used a process load containing processes of three various groups, each of which has varying properties that make it valid in that group using an algorithm called ShortestJobFirstExpert (first integer represents ready queue poll time, second is the % threshold of large processes in the ready queue at any one time - if this is breached then the expert rules will kick in to elevate the processes priorities) and has been repeated 30 times to gather a more distributed value range.

Step 2: Analyse

I won't go through much of this, rather screen shots will suffice - if you want to dig more into the data then be my guest - run a simulation for yourself!

Shortest Job First Expert (Poll Time = 2, Threshold = 35%) - Windows Internet Explorer

Shortest Job First Expert (Poll Time = 2, Threshold = 35%) - Windows Internet Explorer (2)

Shortest Job First Expert (Poll Time = 2, Threshold = 35%) - Windows Internet Explorer (3)

Shortest Job First Expert (Poll Time = 2, Threshold = 35%) - Windows Internet Explorer (4)

The omission in the report tool is that of the throughput, but don't worry this feature will in the 1.0 release (it's actually in the 0.9 release but I'm thinking about the best way to show the data).

Download CPUSS 0.9!

EDIT: One thing I didn't mention, if you want to create your own algorithms and use them with CPUSSRG then just make sure you implement IStrategy and then pop the containing assembly in the Plugins folder of the CPUSSRG tool.

More Posts