.NET general

OpenWrap – A Package Management System for .NET

At Progressive.NET one of the sessions I attended was Sebastien Lambla’s talk on OpenWrap. OpenWrap is a package management system for .NET projects. I’m excited about this project for a very simple reason: it’s something the .NET Open Source community desperately needs. What is package management? Package manager is basically a piece of software that allows you to install the software or components you need on to your system. In one sense in the windows world this is handled by MSI, but that’s only half the picture of a package management system; ideally a package management system would provide a centralised...

My Talks in London: The F# User Group & At Progressive.NET

I’ve been in London for the past few days. I arrived Tuesday afternoon and gave at talk at “The F#unctional Londoners Meetup Group” on the Tuesday evening. The talk was entitled “Using Language Oriented Programming to Execute Computations on the GPU” and thanks to the efficiency of the good folks at Skills Matter the talk is already available on line. The event was very well attended, with around 50 people turning up. The talk covers more the Language Oriented Programming aspects than the knitty gritty details for detailing with the GPU and the audience seemed to enjoy it. It was...

Beginning F# Workshop and Progressive.Net

I’ll in London on the 10th/11th May giving a two day course entitle “Beginning F# Workshop” in conjunction with the lovely folks at Skills Matter. I think I give a fairly good description of the course on the workshop webpage, so I wanted to use this blog post to talk about why you would want to attend. I believe, as I stated in my book, that functional programming will be the next big wave in programming, and that F# will be one of the languages at the forefront of this functional programming renaissance. I don’t believe this will be sole...

What I’ve Been Doing

Now that the F# CTP is out, you may be wondering what I think of it. Well I’m planning to tell you in a later post, first let me explain what I’ve been up to: If you’re a follower of this blog you’ve probably noticed that there hasn’t been a lot of activity lately (apart from the short announcement about JAOO.dk). This is largely due to the fact I’ve moved house and have been doing a lot of gardening and DIY lately. I haven’t been entirely slack on the code front, I’ve started a couple of new projects, which probably deserve...

Prochaine réunion d’alt.net de Paris - mercredi 4 juin, 20h00 - Le Café des Initiés

La prochain réunion d’alt.net de Paris aura lieu mercredi 4 juin, 20h00 à le « Le Café des Initiés », 3, Place des Deux Ecus, 75001 Paris. Moi, Julien et Symon sera là, et vous ? ---- The next meeting of alt.net Paris will take place on Wednesday 4th June at the “Café des Inities”, 3, Place des Deux Ecus, 75001 Paris. Symon, Julien and I will be there, will you?

Instrumentation of Your F# Applications with Custom Performance Counters

Although the performance counters built into the CLR give you a pretty good handle on what’s going, there’s nothing quite like having your own counters to help you monitor your applications performance. There’s nothing quite like being able to see your own counters alongside the build in ones in perfmon. There are several things that make this a little tricky, first you must install your counter to make it visible to perfmon, then you need to create instances of the counters for the application to use, finally you need to remove your counters when there done with to ensure old...

Reportage : le première alt.net de Paris réunion

La première réunion a très bien passé, nous étions cinq, pas mal pour une réunion organisé en moins qu’une semaine. On s’est vu dans le « frog et rosbif », peut-être pas le meilleur choisi de lieu, normalement j’aime bien cette pub, mais ce soir là ils ont eu un match de foot à la télé et c’était trop bruyant. Donc, on a bu un verre d’hors de la pub et on est allé au « les têtes brûlées » juste à côté qui était plus calme et plus agréable. On a beaucoup discuté NHibernant, qui était très utilise pour moi, parce que je ne...

alt.net de Paris

Le mouvement alt.net s’agit de un groupe  des développeurs qui s’organisent eux-mêmes et qui sont intéressés par l’amélioration du processus de la création de logiciel. Ils sont intéressés par des outils .NET open source comme nunit, nant, et cruisecontrol.net mais surtout dans des techniques comme « agile », « test driven development », et « design patterns ». Après le réussit de leur conférence global à Seattle il y a un vague des groupes locale qui s’organise, et donc des adhérents de la liste alt.net parisien ont décidé de organise un alt.net de Paris. La première réunion d’alt.net de Paris aura lieu mercredi 30 avril, 20h00 à le...

IronRuby PreAlpha1 Release – A Little Disappointing

When I saw that IronRuby had been released I thought I’d put it through its paces seeing how the language preformed with respect to IronPython and of course F#. Perhaps a little unfair for a number of reasons, firstly this is a pre-alpha release so one can’t really expect much, we need to give it time to mature and two, ruby generally performs slow than python in the “Computer Language Bench Mark Game”,  (http://shootout.alioth.debian.org/) so one wouldn’t really except IronRuby to outperform either IronPython or F#. However I thought what the heck and downloaded the source for the ruby bench...

F# versus IronPython

“Comparisons are odious” as my Mum used to say, but I hope this little comparison doesn’t pong too much. I have a range a little competitions of my own, a language bench mark, based on “The Computer Language Benchmarks Game” (http://shootout.alioth.debian.org), between IronPython and F#, with measurements for C# thrown in as a kind of control group. I would have liked to chuck in the new IronRuby language too, but I had problems finding a current release. This was largely inspired by the benchmarks Ben Jackson posted to the hubfs.net (http://cs.hubfs.net/forums/thread/3196.aspx), thanks Ben! Now obviously as an author of a book...

Reflecting Over Generic Types – Careful Now!

Today was I was on holiday, doing a « faire le ponte » between the weekend and the public holiday toussaint (all saints day). I had chance to get lots of little jobs out of the way, such as tidying the garden and making the Christmas puddings. In between that I installed Visual Studio 2005 RTM on my laptop as apposed to a virtual machine.   So I thought I’d also take some time to write up some notes on things that I have noticed reflecting over generic types in framework version 2.0. In, what I shall...

C# 3.0 – The var “keyword” and anonymous classes

This is an explanation of why the var “keyword” is like it is, and how this effects anonymous classes. I should probably point out I’m nothing to do with the C# design team, so these are merely my own opinions.   The var is all about type inference, it’s important to remember this is still static typing. The var keyword informs the compiler that it should try and infer the type of variable; if it can not do this a compile error is generated. One very important aspect of the var keyword is that it...

Web lambdas

Last night we ate at the palace kitchen, why? Because Don Box recommended it to us! And very good it was too, we enjoyed a nice bottle of west coast red wine, which even my French friend Eric thought was good.   Anyway when our small party met him he was in the middle of a discussion with another Microsoft guy about xaml. They were talking about the possibility of using xaml to generate in memory only assemblies, of course while this is fun it does raise all sort of security issues, so Don suggest...

Arg Parsing – The Chris Sells Challenge

A couple of days ago Chris Sells made this post about the way best to parse command line augments. Given an xml document describing the structure of a command line augment, he wants to know would it be best to use code gen or an interpreter to parse command line arguments. Here is the xml structure he was talking about.   <args description="Two wrongs don't make a right, but three lefts do">  <arg name="lefts" description="Number of left turns" type="int" default=4" />  <arg name="attitude" description="Driver attitude" required="true" type="string" /></args>   F# (and the ML languages in general) offers a...

Functional Programming in C# 2.0 - Bidirectional Folding

Last time we took a look at folding. It may not have escaped the readers notice that some operations are dependent on the order the parameters are processed. For instance in the string concatenation example the order the parameters are processed affects the order they appear in the output string. But in this example to reverse the order of result does not actually require access to the list in both directions, it is only necessary to reverse the order that the parameters are concatenated in:   // intList = {1, 2, 3, 4, 5, 6} string...

Functional Programming in C# 2.0 - Folding

Late there has been quite a lot of talk about functional programming in C#. Efforts by Don Box, have been note and used on this blog several times and now that and now Sriram Krishnan has produced this nice piece on currying in C# 2.0.   One area that seams to have been over looked so far is folding. A folding function is similar to a mapping function and mapping functions are supported by the framework library in version 2.0, expect it calls it ConvertAll. For example, the framework defines the following method on the...

Subtle problem

The following two lines of code look innocent enough, but they create a problem that took us ages to track down. (Well not these exact lines of code but you get the idea).   IPAddress address = IPAddress.Parse(""); Console.WriteLine(address.ToString());   The problem is on Windows XP (SP 1) this works fine, on Windows 2003 this code throws a FormatException. The reason is although you’re running exactly the same managed code the framework relies on unmanaged code to do most of the work, it p/invokes a method “inet_addr” in “ws2_32.dll” and this must be different between the two platforms....

Much ASP.NET 2.0 hackery

I’ve always been interested in the inner workings of ASP.NET, and with ASP.NET 2.0 coming out along with a new version of F# I decided I’d have a better stab at creating some kind of support of ASP.NET in F#.   To create a page the framework compiles the aspx source into a .NET type that derives from System.Web.UI.Page. In the frameworks version 1.0 and 1.1 the API that did the compilation of ASP.NET pages was very closed. Most of the classes in them were declared as internal. Sure the model was extensible you control...

Behaviour of SQL statement RaiseError with DataSets and IDataReaders

A developer at work queried me to why RaiseError generates an exception when working with a DataSet but not when working with an IDataReader. Here is a short code fragement that demonstrates the problem.   using System; using System.Data; using System.Data.SqlClient;   class TestRaiseError {       static void Main(string[] args)       {             SqlConnection connection = new SqlConnection("server=myServer;database=northwind;uid=sa;pwd=password");             SqlCommand command = new SqlCommand("select * from Employees RAISERROR ('raise an error', 16, 1)", connection);             IDataReader reader = null;             try             {                   connection.Open();                   reader = command.ExecuteReader();                   while (reader.Read())                   {                         Console.WriteLine(reader.GetString(1));                   }             }             finally             {                   if (reader != null)                   {                        ...

 Subscribe in a reader

Links

CVMy CV
stackoverflowMy Stack Overflow CV
Twitter Follow me on Twitter
FaceBook View my Facebook
LinkedIn View my LinkedIn Profile
Viadeo Viadeo Profile (Fran�ais)

Conferences/Workshops

Robert Pickering:Robert Pickering's Beginning F# Workshop,  Robert Pickering's Beginning F# Workshop
2 DAY COURSE. Featuring Robert Pickering
London, Monday, May 10th
Progressive .NET Tutorials, Progressive .NET Tutorials
CONFERENCE (3 DAYS)
London, Wednesday, May 12th BOOK NOW!

Badges


Progressive .NET Tutorials 2009

Disclaimer

The views expressed on this weblog are mine and do not necessarily reflect the views of my employer.

All postings are provided "AS IS" with no warranties, and confer no rights.

www.flickr.com
This is a Flickr badge showing public photos and videos from Robert Pickering. Make your own badge here.