DynamoDB.SQL – minor updates

Just a quick note to say that I have made some minor changes to DynamoDb.SQL to: Add sup­port for spec­i­fy­ing the ScanIn­dex­For­ward option(see DynamoDB API doc here for detail) in a Query oper­a­tion using an option­al “ORDER” clause Fixed a bug where when query­ing using the exten­sion meth­ods on the DynamoD­B­Con­text class, the LIMIT clause …

DynamoDB.SQL – minor updatesRead More »

JSON serializers benchmark updated – including MongoDB Driver

Just a quick note to say that I have updat­ed the JSON seri­al­iz­ers bench­mark to use the lat­est Nuget ver­sions of ServiceStack.Text, Json.Net and Json­FX. I have also includ­ed the JSON and BSON seri­al­iz­ers from the Mon­goDB C# Dri­ver in the test, and since BSON is a bina­ry for­mat I have includ­ed pro­­to­buf-net as a …

JSON seri­al­iz­ers bench­mark updat­ed – includ­ing Mon­goDB Dri­verRead More »

DynamoDb.SQL – a SQL-like external DSL for Amazon DynamoDB

Amazon’s DynamoDB is a won­der­ful prod­uct – scal­able, durable, fast, with pre­dictable laten­cy num­bers unlike Sim­pleDB. How­ev­er, the only gripe I have with DynamoDB is that there is no built-in sup­port for a query lan­guage, which makes life rather dif­fi­cult when you want to per­form a query or a scan against the data you have …

DynamoDb.SQL – a SQL-like exter­nal DSL for Ama­zon DynamoDBRead More »

C# – beware of async void in your code

In gen­er­al, when you see async void in your code it’s bad news, because: you can’t wait for its com­ple­tion (as men­tioned in this post already) any unhan­dled excep­tions will ter­mi­nate your process (ouch!)   Sup­pose you have a timer event that fires every once in a while and you want to do some asyn­chro­nous …

C# – beware of async void in your codeRead More »

F# – helper functions to convert between Async<unit> and Task

With the offi­cial release of .Net 4.5 and Visu­al Stu­dio 2012, I sus­pect many .Net devel­op­ers will be rush­ing to rewrite their data access or net­work lay­ers (amongst many many oth­er things!) to take advan­tage of the new async-await (see the excel­lent 101 exam­ples here) lan­guage fea­ture in C#, which means you’ll like­ly be work­ing …

F# – helper func­tions to con­vert between Async<unit> and TaskRead More »

F# – Starting an Agent with supervision

In Erlang, we have the Super­vi­sor behav­iour which makes it very easy to pro­vide the means to mon­i­tor and restart a whole net­work of work­ers and oth­er super­vi­sors based on some con­fig­ured strat­e­gy. The Mail­box­Proces­sor (aka agents) in F# doesn’t come with the same high­­er-lev­­el abstrac­tions (such as Erlang’s gen_server, gen_fsm behav­iours) by default, but …

F# – Start­ing an Agent with super­vi­sionRead More »

F# – Make extension methods visible to C#

In F# you can write an exten­sion method like this: Whilst this will work per­fect­ly fine in your F# code, the exten­sion method will not be vis­i­ble to any C# code using the File­In­fo type because F# and C# com­piles exten­sion meth­ods dif­fer­ent­ly. To make C#-compatible exten­sion meth­ods in F#, here’s what you need to …

F# – Make exten­sion meth­ods vis­i­ble to C#Read More »

Filbert – added BERT-RPC client + NuGet

Since my pre­vi­ous post on Fil­bert I have added a sim­ple but func­tion­al BERT-RPC client which I have man­aged to test against native Erlang mod­ules run­ning on Ernie. To make it eas­i­er for you to try it out I’ve uploaded the pack­age to NuGet, which you can down­load from here, or run the sim­ple NuGet …

Fil­bert – added BERT-RPC client + NuGetRead More »

Filbert – a BERT serializer for .Net

I spent the last cou­ple of nights and put togeth­er a small BERT seri­al­iz­er for .Net called Fil­bert.   What’s BERT? BERT (Bina­ry ERlang Term) is a bina­ry for­mat based on Erlang’s bina­ry seri­al­iza­tion for­mat (as used by erlang:term_to_binary/1) but sup­ports a cou­ple of com­plex types such as boolean, dic­tio­nary and time, in addi­tion­al to …

Fil­bert – a BERT seri­al­iz­er for .NetRead More »

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.