Some of you will no doubt know that I started a project a while ago now that was intent on bringing implementations of various algorithms and data structures to .NET - but with a different take on things.
Well, after a recent detour with CPUSS (a project that analyses CPU scheduling algorithms - interesting project, give it a download!) in less than a week DSA will receive a lot of time again (next Thursday signals the end of a busy spell of work).
I wanted to thank the few hundred or so who have downloaded DSA 0.4 - you're participation itself is motivation. I have some news for DSA 0.6 that is interesting but I will save that for when DSA 0.5 is released.
I am looking for suggestions of things to add to DSA 1.0 (bare in mind that graphs are on the schedule) so if you can think of a pretty rare data structure or algorithm that you think would be nice to implement then please let me know as I can see whether or not (depending on time constraints) I can get it into DSA 1.0.
The plan is to hopefully release DSA 1.0 by the end of summer (think early September) so I am really expecting things to move quick from a weeks time.
Thank you to all those who have downloaded, there are some exciting things to come!
I missed this as I was doing a lot of work at the time (was release a few days back) as via Don's blog, and he has a post on it here.
I gave it a quick install this morning and this release still doesn't fix the VS 2008 integration with F# interactive, i.e. the add-in doesn't register itself correctly so you have to always enable the add-in manually which is really annoying. The reason I mention this is that I saw some improvements mentioned on Don's blog regarding this release, and I rather hoped that this would be one of them.
I did note that Don states that this release doesn't include any investment they have for the VS integration later down the line, but I would of thought that this issue would of been addressed.
Download F# 1.9.4
I seem to remember this particular issue making some ground in terms of verbal noise a year or so ago (actually it was more like 3 years ago) and although I don't particularly find VS support for multi-monitors that bad (although dragging windows isn't that intuitive) it maybe the time to actually recognize a many monitor development scenario natively.
Most people I speak to use more than one monitor in their dev setup, and I imagine (I know) that people at MS do as well.
My question to folks out there - have you heard any rumblings about this that suggests, or at least hints that this is on the agenda of forthcoming versions of VS?
Actually does anyone know of an IDE (regardless of its target language) that actually supports natively multi-monitor features?
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.
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.
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???
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:
- Accessible UpdatePanel, Bertrand Le Roy
- Inside the LINQ-to-SQLs DataContext Class, Dino Esposito
- ASP.NET AJAX meets Virtual Earth – Part Three, Allessandro Gallo
- ASP.NET AJAX meets Virtual Earth – Part Two, Allessandro Gallo
- A first look at the Dynamic Data Engine—the DynamicGridView Control, Dino Esposito
- ASP.NET AJAX meets Virtual Earth – Part One, Allessandro Gallo
- Handling the back button from server code, Bertrand Le Roy
- Client History Points in ASP.NET 3.5 Extensions, Dino Esposito
- A First Look at ASP.NET Extensions 3.5—History Points, Dino Esposito
- An Architectural View of the ASP.NET MVC Framework, Dino Esposito
Seriously go check this stuff out!
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++.
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!
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...
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!
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
Next page »