My take on this years GOTO program

by DotNetNerd 27. August 2013 08:12

In the spirit of being well prepared and with GOTO just over a month away it is time to look a bit at this years program. Personally I will try and get around and also pick some talks on topics that are outside my normal area of interest. I know you probably already heard this, but it pretty much always ends up as the talks I get the most value from.

Monday

“JS beyond the browser”, “Architectures” and “Microsoft Devices and Services” are the three obvious tracks for me on the first day. However I will probably start out with Dan North’s talk on the track “When the Agile Manifesto isn't enough” about “Embracing uncertainty” . Dan is a really good speaker and last year he gave some of the very best talks IMHO.

More...

Tags:

Events

Gearing up for GOTO 2013

by dotnetnerd 16. August 2013 10:34

GOTO 2013 is slowly getting closer, and once again I am lucky enough to be blogging from the conference. Next week the bloggers will meet up to get some practical information as well as to collect ideas for which tracks to follow and what to blog about.

Last year I think went really well both with reguard to picking some interesting talks and that I was pleasently surprised that I got to interview Scott Hanselman and Anders Hejlsberg. So when it was decided to repeat the success and invite bloggers to the conference I definately wanted to go again.

More...

Tags:

Events

New job at d60

by DotNetNerd 25. June 2013 08:02

logo After 4½ years at Vertica and 6½ years doing e-commerce I recently made the decision to look for new challanges. I am really happy with the years I have spent both with Hedal:Kruse:Brohus and Vertica doing e-commerce where I have learned a lot and had some great colleagues, but I really felt like making a change. Timing wise it made sense to do it now, because my girlfriend and I were looking to move to the other end of the country, where she got a job.

Looking around d60 caught my eye as a very interesting company, where things are evolving quickly and where I know they have a skilled group of developers - some of whom I already knew from the developer community. I sent them and email, and after a meeting there was no doubt that it was a good match, as a place where I can learn new skills as well as contribute new ideas.

More...

Azure Mobile Services

by DotNetNerd 17. May 2013 10:53

WAMobileServicesblueAzure is growing at an incredible pace and provides a good balance between lots of great services and easy ways to get started. I recently took a look at Azure mobile services, which seems to be an offering that has an interesting future with the rise of mobile development. So building a platform around features that you need to build these kinds of applications make all kinds of sense. Wanting to look more at Azure and with my recent focus on mobile it seems like a perfect fit for me.

Naming is hard

Diving into it you quickly become aware that the words "mobile services" are somewhat misleading, because although the service can be used for mobile it is just as much for building any other kind of small application. Only directly targeted mobile feature is push notifications. The featuers for working with data, scheduling and identity are very general purpose, but as a package this seems like a good idea - even though it name could be limiting to who will end up using it.

More...

SQL and NoSQL tools as you know and love them with F#

by DotNetNerd 6. May 2013 14:31

toolsWhile looking at how you can do your common scenarios in F# an obvious thing to look at is data access. I already covered type providers which are fantastic for consuming data. However type providers won't help you when you need to create data or in other ways interact with your SQL database, MongoDB, RavenDB or any other NoSQL solution you might be using. For this you will most likely want to use some of the libraries you already know and love - there is no reason to reinvent everything.

Working with existing libraries is mostly trivial, but F# likes types that are immutable which straight out of the box doesn't play well with serialization and mapping. This means that ORM's and libraries for MongoDB and RavenDB will throw exceptions when they try to construct your F# types. This basically boils down to the fact that code like the sample below won’t work, because the serializer can not instantiate the type and fill in the values.

More...

Canopy – web testing in 10 lines of code

by DotNetNerd 16. April 2013 13:22

With my latest dive into F# I recently came across Canopy, which is a really nice and simple web testing framework. It really is as simple as installing a package and writing a few lines in a console application.

More...

Type Providers – all you can eat data buffet

by DotNetNerd 28. March 2013 20:08

BuffetI shortly wrote about Type Providers for SQL databases and services in a blog post last year, and since then a range of new providers have been written by the community. Just a quick search and you can find providers for WMI, CSV, XML, Regular expressions, REST services, world bank and pretty much every other thing you can imagine. Especially FSharpX and some of the excellent work done by people like Tomas Petricek.

After looking around I was surprised to see some of the use-cases. I was thinking in the lines of what LINQ provides until I saw samples like the provider for regular expressions.

More...

Indulging in my love for programming languages

by DotNetNerd 3. February 2013 20:12

books-300x272I have started this year spending some spare time with two of my favourite languages, besides C# that I primarily use to earn a living. The two languages in question are F# and Python. The represent two other paradigms from the statically typed and object oriented ones that are by far the most main stream, with languages like Java, VB and all the C-family languages. Playing with other paradigms is a great way to learn how some problems may be solved more elegantly either by going polyglot or simply by implementing some of the basic ideas of another paradigm in the language that you work with on a daily basis.

More...

2012 debriefing

by DotNetNerd 23. December 2012 16:12

484Last year I did my first debriefing. I felt it was a good chance to take a quick look back and it felt good to reflect a bit and do a brain dump. So now I am at it again after a year that has flown by, in spite of some hard moments.

Personally this year had a tough start for my family, because the family business went bankrupt. I grew up in a house next to my parent’s greenhouse, so it was a central part of life in my upbringing. Acknowledging that it was the end of the road, and my dad had to move out of the house was frustrating. That said I am thankful that my siblings who both worked there have found new jobs, and my dad has adapted well to life as a pensioner.

Later on things have only gone forward. In the summer my girlfriend finished her masters, and just a few days ago she had her first scientific article accepted for publishing. I am really happy for her, and it makes for interesting prospects in the new year, where she will look to get a job and possibly start a PhD.

For me as a developer it has been a very exciting year, that offered plenty of opportunities. More...

Regain your sanity – a tale of Console2 and Powershell goodness

by DotNetNerd 19. December 2012 16:29

For some time I have grown weary by the ever increasing number of consoles and one-feature-applications I end up using during a work day. The good thing about being a developer is that it is my own fault, because I can just choose to do something about it - and so I did.

First step was based on two blogposts from Scott Hanselman that I remembered reading; "Console2 - A Better Windows Command Prompt" and "Awesome Visual Studio Command Prompt and PowerShell icons with Overlays". Those two posts gave me a place to start so I could get rid of seperate icons on my desktop for cmd, Visual Studio cmd, Powershell, MongoDb, Ryby, Python, Node, Clojure etc. Basically I can now use Powershell with the capabilities of the Visual Studio Command prompt, and have the rest open in other tabs in Console2.

Of course I made a few tweaks of my own, but all credit goes to Scott for a great blogpost. Only thing I was disliking was choosing the kermit green foreground color, because it overrides coloring of eg. error messages.

Second step was reducing the number of one-feature-applications and long cryptic commands that I had to remember or keep in Evernote, .txt files, .bat files and so on. This turned out to be easy by using my profile in Powershell to store functions.

New-Item -ItemType File -Path $profile -Force
notepad $profile

In my profile I can make naming conventions that make sence and I can wrap more complex operations in easilly discoverable functions utilizing Powershells tab-completion. I can replace small tools and scripts for doing xslt transforms, builds, migrations, remote iis resets, deployment to my development machine and so on. What these tools do often turns out to be the equivalent of a few lines of powershell. Mostly something along the lines of this sample, which runs a nant script that does database migrations.

function Invoke-MyProjectMigrate([string]$version)
{
    Set-Location $path
    if ($version -eq "") {
        .\nant.bat /f:nant.DbMigrations.build db.resources.migrate
    }
    else {
        &{.\nant.bat /f:nant.DbMigrations.build db.resources.migrate /D:migration.version=$version }
    }   
}

After a while I wanted to put my functions into modules, so I could package them up, and have a set of functions for each project I work on. To do this I simply moved my functions into separate files, that I put in my d:\Scripts folder. Then my profile simply imports all modules from that folder.

Get-ChildItem D:\Scripts | Foreach-Object {
    Import-Module D:\Scripts/$_
}

With this in place a have a very simple, lightweight and extensible way of improving my tooling as I go. I can also use Posh-Git/Posh-Hg for version control, and if I need to get more structure at some point I will turn to PSake. In case you don't already know PSake is the Powershell version of make, rake, bake or cake. Simply put it provides a way to do build scripts with interdependent steps. So by now I am starting to feel pretty good about my tooling, and I have been able to remove a lot of clutter from my daily life.

For now my setup is very self-centered, because I use full paths to where I put stuff, but going forward it will probably be generalized and checked into version control for everyone to enjoy.

Who am I?

My name is Christian Holm Nielsen, 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.

Month List