12 August 2011 0 Comments

Real-World F# Programming Articles on MSDN

The F# team are very excited to pass on the news that Tomas Petricek’s Real-World F# Programming Articles are now available on MSDN !! Congratulations to Tomas, Keith, Yin and Gordon who have worked so hard on this. Here’s the chapter outline: Chapter I : Introducing Functional Programming This chapter explains the basic concepts behind functional programming such as immutability,  first-class functions and expression-based programming. Many of the concepts are demonstrated in C# to guide programmers without   prior experience with F# or functional programming.

7 May 2011 0 Comments

The F# Journal: Low Latency Allocationless Programming on .NET

The latest article from The F# Journal is on a topic I sometimes get asked about when talking to people doing low-latency financial trading systems: Allocationless programming on .NET “An extreme technique used in some latency-critical applications is to completely circumvent the garbage collector by replacing all heap allocations with the use of pre-allocated arrays of value types, effectively implementing manual memory management inside a managed programming language. This might be called Fortran-style programming on .NET but the advantage is that stalls due to garbage collection can be made less frequent or even eliminated entirely…” This article has reminded me what a wealth of material is available in the archives of The F# Journal

16 April 2011 0 Comments

Soma – Sql Oriented MApping framework for F#

One of the things I haven’t blogged about much is the many F# projects up on CodePlex . The one that caught my eye today is Soma – a “Sql Oriented Mapping Framework” . (Partly, it’s the fact that Soma is documented in Japanese that made me take notice – I have seen from Twitter and elsewhere the many F# tweets in Japanese.) Soma implements an F#-oriented, code-first approach to O/R mapping.

2 April 2011 0 Comments

Little-known gems: Atomic conditional removals from ConcurrentDictionary

ConcurrentDictionary<TKey,TValue>, first introduced in .NET 4, is an efficient dictionary data structure that enables thread-safe reading and writing, meaning that multiple threads may all be accessing the dictionary at the same time without corrupting it.  It supports adding through its TryAdd method, conditional updates through its TryUpdate method, non-conditional adds or updates through its indexer’s setter, and removals through its TryRemove method, through which a key/value pair is removed if the user-provided key matches.  It also has several compound methods, such as GetOrAdd and AddOrUpdate.  Lately, however, we’ve seen several folks ask for further support on ConcurrentDictionary, that of removing a key/value pair only if both the user-provided key and value match the corresponding pair currently stored in the dictionary.  You want it, you got it!  I mean, literally, you already have it.  As with Dictionary<TKey,TValue>, ConcurrentDictionary<TKey,TValue> implements ICollection<KeyValuePair<TKey,TValue>>. ICollection<T> exposes a Remove<T> method, so ICollection<KeyValuePair<TKey,TValue>> has a Remove(KeyValuePair<TKey,TValue>) method.  Dictionary<TKey,TValue> implements Remove such that it only removes the element if both the key and the value match the data in the dictionary, and thus ConcurrentDictionary<TKey,TValue> does the same.  And as it’s a concurrent data structure, ConcurrentDictionary<TKey,TValue> ensures that the comparison is done atomically with the removal.  Tada! Of course, just as with Dictionary<TKey,TValue>, ConcurrentDictionary<TKey,TValue> implements ICollection<KeyValuePair<TKey,TValue>> explicitly, so if you want access to this method, you’ll need to first cast the dictionary to the interface.  Here’s an extension method to help you with that cause: public static bool TryRemove<TKey, TValue>(     this ConcurrentDictionary<TKey, TValue> dictionary, TKey key, TValue value) {     if (dictionary == null) throw new ArgumentNullException(“dictionary”);     return ((ICollection<KeyValuePair<TKey, TValue>>)dictionary).Remove(         new KeyValuePair<TKey, TValue>(key, value)); } Enjoy!

25 March 2011 0 Comments

유명 웹사이트들도 W3C Validation Service 검사 결과에서 에러가 발생하는 이유?

W3C 의 표준은 표준을 준수하는지 여부를 인증해주는 프로그램을 제공하지 않으며 , 타 표준 단체의 표준 (Standards) 용어 대신에 권장 (Recommendations) 용어를 취하고 있고 표준 준수를 강제하지 않는다 .

19 March 2011 0 Comments

Video: F# for XBox Path of Go and Project Emporia

A podcast of David Stern’s recent talk on Microsoft’s use of F# for the XBox Live Arcade Path of Go and for Project Emporia is now up.

17 February 2011 0 Comments

Forefront Endpoint Protection (FEP): what changed

Forefront Client Security (FCS) was replaced by Forefront Endpoint Security in January 2011. While this might just sound like a rebranding exercise, it’s actually a lot more, both from a product functionality and a licensing standpoint.

23 January 2011 0 Comments

The F# Team Are Hiring! Come and be the Senior Program Manager for F#…

The F# Team are Hiring!!! Do you have a love for modern, industry-leading programming technologies? Can you help us take the F# language to the next level

21 January 2011 0 Comments

F# Machine Learning in Finance Job (Switzerland)

Those who read my blog will know that rom time to time I post F# job listings as a favour to the F# community. This one is from Lawrence Austen. Trafigura is searching for an exceptional candidate interested in applying Machine Learning to the commodities markets .  The ideal candidate will have: Exceptional analytical skills.

14 January 2011 0 Comments

F# for Non-Functional Programmers with Jeffry Borror (Part 1)

 The New York City F# Meetup Group is very fortunate to have Jeffry Borror presenting a series ” F# for Non-Functional Programmers “. Jeffry recently designed and delivered a 5 day course on F# for Morgan Stanley and the material is drawn from this.

Tags: , , , , , , ,
4 December 2010 0 Comments

Creating a compelling visual story

One thing that I’ve become fascinated with over the past few years is the difference between people who have good ideas, and people who use good ideas to bring about change. I’m not alone to notice that the folks who originate a concept are usually NOT the ones who get the credit for it… it is the person most associated with sharing that idea with the widest number of people in the most consumable manner.  We see this in all fields: technology, industry, science, math, politics, etc.  No matter what field you are in, the ability to create an original idea is not the most important thing: the ability to make that idea understandable, compelling, and consumable is.  In fact, the idea does not have to be new to be made new through a compelling and interesting presentation. For Enterprise Architects, this is a huge concern.  Most EA folks rise through the ranks of technology or business, in fields that traditionally value accurate and specialized outputs.  For a technologist, this could be source code, a BPMN business process model, an excellent project plan, or a UML architectural diagram with very specific semantics.  For a business person, this could be a financial analysis, a process dashboard, or a quality control performance review.  Specific technical outputs like this are rewarded and people rise through the ranks, many landing in business management, planning, or enterprise architecture positions.  But now, a new skill is required: the ability to influence your peers .  Business and Enterprise Architects frequently find that their transition into this role is a rocky one, because they go from a world of detailed, well-defined, well ordered artifacts that people use to perform their jobs, to a near-cacophony of variable deliverables that are useful because they motivate leaders and SMEs to change things.  Technical architecture roles are usually design roles.  EA and BA are change-agents.  Talented architects can stop their forward progress at this point, and many will.  Using your considerable technical skills to convince people is not appealing to everyone, and many folks prefer to stay in the world of specific, accurate, and measurable artifacts that well-motivated people are simply expected to use.  We need to go from presenting data to telling stories

3 December 2010 0 Comments

August, 2000

I recall reading this in August 2000 and being deeply struck by it. Now certainly a piece of history..