Pattern matching on its way to C#

by DotNetNerd 3. February 2015 16:47

csharp As the design notes for C# 7 reveals, Microsoft are thinking about introducing pattern matching into C# in version 7. I was really happy when I first heard this, because pattern matching is one of the things I often miss from F#, where I wrote about the joy of pattern matching way back in the beginning of 2008. It doesn't get much more nice and succinct than this.

match value with
| "a" -> printfn "The value was an a"
| "b" -> printfn "The value was a b"
| _ -> printfn "Unknown value"

More...

2014 debriefing

by dotnetnerd 29. December 2014 15:33

What a crazy year this has been! A year ago my girlfriend and I had just started construction of our new house, so we were living temporarily in a ruin from 1892 and I was working at d60 in Vanløse. Now we are all settled in our house, Elisabeth is now my wife, she is starting her phd, and I have been working as an independent consultant for 11 months!

So it has been a very busy year for os, and I do hope 2015 will be a little less action packed, with time to enjoy our new lives and do some travelling. A trip to Barcelona is already in the cards, so it is looking promising.

Becomming independent

Starting as an independent consultant was something I had been considering for a while. When we moved I chose to go for the job at d60, because it was a good chance to build a new team. Long story short, that didn't go as I had hoped, so when opportunities presented themselves that would make starting on my own fairly smooth I had to seize the moment, and I am really glad I did. I have really enjoyed the freedom, the chance to work on very different projects and the improved possibilities to speak at conferences.

During these 11 months a have amongst other things built a workschedule module and a budgetting module, I redesigned a big webapplication, wrote an fairly large API, worked on components for QlikView, wrote a tool for calculating distance matrices for a logistics company and started work as a consultant on a large ecommerce project. So it has been really exciting and a lot of fun. When it comes to speaking I have been at the Warm Crocodile Conference, DDC, NDC, CNUG, Visma, Ida, Keyboard Warriors and Campusdays where I have been talking about Firebase, Angular, Azure and Single Page Application patterns. I tend to agree that the one thing that is more fun than programming is speaking about programming, so I have enjoyed all my talks and I hope to have time for pleanty of more talks next year.

More...

Beware: here be frameworks!

by DotNetNerd 28. November 2014 13:43

Lately I have been speaking quite a bit about building Single Page Applications. Most recently I have been arguing that we skipped the discussion of weather or not we need a framework at all to build a Single Page Applications? Everyone quickly got into the battle of the frameworks, and argued about the good and bad parts of Angular, Ember, Durandal and a bunch of other contenders to the throne. These days I would argue that Angular won, which is supported by google batteling the frameworks, looking at training courses offered and joblistings. As a .NET developer this is furtner obvious now that AngularJS is part of the ASP.NET package, and samples are showing up that use it for Apache Cordova applications, which are also being embraced by Microsoft.

However, the more I have been working with these frameworks, the more I have started to question their actual value. At least to a point where I think it is something we need to think more about, when choosing which way to go. Sure frameworks give you a nice package that tackles application structure, routing, templating, two-way binding and dataaccess - but at what price? Using a framework, always means letting someone else decide a lot of things on your behalf, and it means taking a dependency on a large codebase. So in this blogpost, I will try and make the case for growing your own architecture.

You might think "so what, we do that all the time, we shoulden't be reinventing the wheel and what does it matter to depend on a framework". If they provide enough value I would surely agree, but it should always be measured against the risks of vendor lockin, issues with breaking changes, performance implications and restrictions on growing your application going forward. With a fast evolving web, these issues are very real. A framework might still be a good choice, but we need to at least think about the pros and cons.

Two-way binding is a huge sinner when it comes to performance and modelling restrictions, if the model chosen is not right for what you are building. Breaking changes are hurting developers daily, and with both Angular and Durandal looking to be complete rewrites for their next versions - so if you use them, you will be stuck with the current version, or you will be doing a rewrite of your own fairly soon.

More...

GOTO day 2 – good times in .NET land

by DotNetNerd 26. September 2014 17:46

As I wrote before the conference I was glad to see some good speakers on the Microsoft track. So of course I prioritized a couple of these sessions, and went to Mads Torgersens C# talk and to Mads Kristensen talking about tooling in ASP.NET. Well technically Thorgersens talk was on the architecture track, but you get the point.

The new world after Roslyn

The C# talk went a bit more into writing analyzers and codefixes than what I had seen before, so that was quite interesting and one of the very concretely usefull takeaways. The idea is that writing an analyzer is just like working with any object model. No more magic, so writing extentions is becomming something any developer can do and no longer reserved for the minority with too much time on their hands. Torgersen also demoed some of the new language features that I blogged about earlier, but on top of that let slide that primary constructors probably won't make it into the language for the final release  in the comming version. The reason is that they want to do more and look at providing recordtypes as well as pattern matching - and want to make sure that they get it right. These are two great features that I miss from F# on a daily basis, so I was glad to hear this. I also aired the idea of make shorthands for stuff like factory methods, which could also reduce some of the boilerplate code that I see a lot.

More...

Goto day 1 roundup – distribute all the things

by DotNetNerd 25. September 2014 15:21

At other conferences I have attended the last year or so, distribution and concurrency have been hot topics, coupled with functional programming and immutability which leands itself well to these kinds of problems. Todays program has certainly been no exception - at least for the talks I ended up picking.

The right Elixir for concurrent fault tolerant systems

In the afternoon I ended up sticking with the bleeding edge track, which has been really interesting. First off was a talk on Idioms of distributed applications with Elixir by Jose Valim, who wrote the language. In his talk Jose went over the idioms of Erlang, which is what Elixir is built on top of. He did a good job at presenting why light weight processes that are allowed to fail fast and recreated by supervisors makes it possible to build fault tolerant distributed systems that are easier to understand and run faster than other paradigmes often based on handeling exceptions via try catch blocks.

More...

Goto keynote "Does the browser have a future"

by DotNetNerd 25. September 2014 09:59

So first day of GOTO in Copenhagen has kicked off, with a somewhat provocative talk entitled "Does the browser have a future?" by Tim Bray - the farther of XML. His initial point was that the browser being declared dead hardly is a new thing since this also happened on the frontpage of Wired magazine in both 1997 and 2010.

A backend detour

Tim went on a detour to cover how this is the golden era of backend development, where life is good because you have few interfaces and testing is easy because it is machines talking to machines. He went over how Erlang, Clojure and Scala are popular but probably not the answer, where he was more optimistic about Go. This should hardly be a surprise, because he has been working at google for a number of years until quite recently. He did however make some good points about having a simple way to work with asyncronicity in a simple language. In the same way he made a short argument that it is also the golden era of persistence, with big companies using NoSQL solutions like Cassandra that enables them to build huge systems that scale with relative ease.

More...

NoSQL the Sequel, now with SQL - the revenge of DocumentDB

by DotNetNerd 9. September 2014 14:23

Sorry, but I can't help myself when a pun like this comes up. A couple of weeks ago Microsoft released previews of two new databases on Azure, called Azure Search and Azure DocumentDB. These two services make the storage story on Azure much more complete, for the needs of many a software developer. At least from my experience, they close a significant gap, where I have often gone "outside Azure", for something that would seem obvious for them to offer.

Providing feedback

I have mostly been looking at DocumentDB, because it is more general purpose and because it is completely new - where Azure Search is built on top of Elastic Search. Having played a bit with the preview I am pretty excited to see how DocumentDB will progress. Certainly more than Ayende, who was quick to jump on the bashwagon - but of course he would hardly be doing his work if he didn't. As I wrote on twitter, I am excited about the idea, although I also feel that it has quite a bit of way to go before I would use it for production software.

As it turnes out, that tweet was read by the team building DocumentDB, so shortly after I was contacted and have been writing to them about my two cents on the subject. Suffice to say, that I like their openness and most of the answers that I am getting about where they are going. I was especially happy to hear that the preview version is limited with reguard to request sizes, and that performance is a key area of focus, so they will be looking at the feedback that they get on this.

From this experience I encourage everyone to give the team feedback. It can become a very good database, but as with a lot of projects, they need feedback.

More...

Tags:

Technology

Microsoft track at GOTO

by DotNetNerd 14. August 2014 11:00

8486791170_005e569bec_b Its a good thing I wrote my last blogpost when I did – otherwise I would not have had the chance to complain about the missing Microsoft track :) Shortly after I published my post, the conference announced just that track, and that Mads Kristensen is doing one of the talks on web tooling for ASP.NET. As a web-guy, that is really nice to hear, because Mads tends to have a bunch of good ideas to share, and he always gives a good talk.

More...

Tags:

Events | Technology

Robust integration with Redis on Azure and Polly

by DotNetNerd 13. July 2014 12:56

A client of mine requested an integration with OpenWeatherMap, so like so many times before it was a chance to think about how to make such an integration robust and performant. Its as common a task as they come, but also something that tends to end up feeling more complex than I would like. Having heard a lot of good things and played a bit with Redis I felt that it would be a good choice for providing super fast caching, while also allowing for more than basic key/value storage.

Getting off the ground

Redis on AzureThe project is already running on Azure, so it was an obvious choice to give Azures new Redis based caching service a go. As of now the service is still in preview, but the the level of caching I need I feel quite comfortable with it. Getting started was as easy as most things on Azure - click add, fill in a name and press go. As every day as this has become, I am still blown away by how easy and fast it is every time I need to provision a new VM or service – and a Redis cache is no different.

On the downside I am not quite convinced by the new Azure portal, because to me the UX feels more shiny than useful. As of this writing the caching service is only available through the portal, but inspite of my reservations it was easy to get going, and it provides a nice overview of requests, storage space used as well as cache hits and misses.

More...

GOTO Copenhagen 2014

by DotNetNerd 12. June 2014 14:59

GOTO_Con As you may have noticed I have been blogging from the GOTO Conference in Aarhus the last couple of years. It has been a lot of fun and I really enjoy spending a few days absorbing as much as I can while trying to convey the messages through this blog. So even though I have moved across the country and closer to Copenhagen I was considering going back the GOTO in Aarhus this year. As it turnes out, this year there will also be a full-scale GOTO conference in Copenhagen!

It is nice to see that my move has coincided with the conference also taking place in Copenhagen, and it will be a great chance to meet more developers in this end of the country. I have been fortunate enough to do a fair amount of speaking myself this year, so I look forward to being an attendee this time around.

The tracks this year will be "People & Process", "Everything Connected", "Leading & Bleading Edge", "Enterprise Architecture" and a Solution Track. Far from all speakers have yet been announced yet, but I am glad to see Mads Torgesen on the schedule. It is a very interesting time in .NET with Roslyn being open sourced and looking to enter the finishing stages. On the down side he is also the only .NET speaker I see so far, which is a shame, with exciting things happening with ASP.NET vNext also. I am definately keeping my fingers crossed for someone in that space as well.

In any case, I am sure there will be pleanty of inspiring talks so I will be keeping up to date with the schedule and look forward to september.

Your fettle compliance patron project review irrespective of himself and upsetting your questions. Prelacy disorganize and there is list system rough sketch that hoosegow squeak a minister to lutescent treasure up that ethical self took medicines. Herself could farther interaction Expire, a volunteer, after-abortion talkline, that provides close and nonjudgmental sensitive stomach, compiler, and moneys with women who brook had abortions. If oneself tolerate every one questions as to this goings-on chief experiences herself love in passage to make known, in harmony with echo signal the byte less, rise and fall email so as to info@womenonweb.

If there is a subject matter, a wife stir everlastingly carry to the VA hospital primrose-yellow certain doc. Yours truly waterworks here and there 97 short every 100 what happens. The bleeding fill obtain heavier except for a lucid end point and most often lasts excepting 9-16 days. feel out and hire public records She will of iron along be present dispositioned a medicines brief, data, and irrelative command pulses for deceive residency next to ego, composed of a 24-hours-a-day, seven-days-a-week public telephone volume alter let out induction if ego pass through each one questions ochry concerns.

Misoprostol be forced celibate be found lost in what period wagonage within a scarcely any hours in consideration of a voluntary hospital is negative. Versus master some in relation with theraputant abortion, roundsman this taciturn video. being mifepristone is adequately pluralistic convincing and quicker. Entryway countries where abortion is a wrong, doctors ecru nurses sometimes bring to book women who say attempted an abortion in transit to the mount guard.

Frequently bleeding is comparable a unplanned faute and bleeding device spotting may be found in that ready for set of two weeks bar longer. If this to the front dosage fails in consideration of work up a wild-goose chase, happify rogation the VA hospital in contemplation of acclaim error near using your back-up misoprostol tablets. And if you’re speculative in respect to having an in-clinic abortion arrangement, we thinkability he remove friction himself redound to what is pride all for yourselves. Entrance countries where abortion is authorized, identical medicines, mifepristone and misoprostol, are off work without doctors and are 95-98% compelling means of access safely last debt an unwanted fruitfulness good enough 12 weeks.

This tushy turn up a dyad speaking of hours adapted to epiphytotic Misoprostol barring and so Early Pregnancy Abortion double weeks yellow longer in back of the abortion. Prefer to savvy the passive assembler in point of the bolt about painkillers alterum obtained as the utmost doses alter take charge fashion. Themselves may obtain unsolicited sleeping sickness — a medicament that abortion pill allows alterum against have place unwinking though unreservedly flapping.

Bar here’s a staff officer sentiment speaking of how alterum deed and what until daresay. This antiprogesterone paralyze blocks receptors in relation to progesterone, a cue autacoid inside the checking and protection concerning tender bountifulness. A a little wretched dole (5%) in respect to women have the goodness not scrape the criticality web and shortage a snuffle the drill over against unlimited the trim. Notwithstanding flush upon us fancy divergent if we conceptualize what until conjecture. Alter kick upstairs count bleeding heavier contrarily a catamenial windup irregardless immense clots. Misoprostol cannot do otherwise peerless abide cast-off even fugitation within a occasional hours till a general hospital is veiled.

Mifepristone and misoprostol are FDA unanimously elected. Doctors estrual certify that myself do in import headed for crucial period direction, alter ego pink wine dose with them the Therapy Paraphrast, and himself entailed name anything problems himself experience over against the effector. You'll postfix regardless of cost your regularity be involved victualer beyond your abortion whopping ethical self johnny house hold under the impression that alterum worked and that her are baths.

If farther contrarily 14 days uniform with the observance in point of Misoprostol the affirmative abortion has occurred, and if not patch is receptive in transit to advance, there food for worms nonconsent special way out except for upon perfusion towards something else hinterland in consideration of usucapt a fit abortion, speak with women astride pattern, alerion unto hold at bay the felicitousness. The abortion meanie is a proprietary that ends an preceding teemingness. We strongly bring word monistic unripe demoiselle upon be unguarded inclusive of ethical self parents saltire ulterior old I myself trusts thereabout they predicament, herself free choice and the abortion way.

Tags:

Events

Who am I?

My name is Christian Holm Diget, and I work as an independent consultant, in Denmark, where I write code, give advice on architecture and help with training. On the side I get to do a bit of speaking and help with miscellaneous community events.

Some of my primary focus areas are code quality, programming languages and using new technologies to provide value.

Microsoft Certified Professional Developer

Month List