Wednesday, June 17, 2015

.NETCore Blimey! By Matt Ellis


Matt Ellis steals the lead in the unofficial best t-shirt competition, currently running in my head, with his ‘I see dead code’ t-shirt. Mr. Ellis begins with presenting what .NET Core is
  • Open Source
  • Cross platform
  • Standalone
  •  Factored for modularity
  • Everything ships as NuGet packages
  • Not finished….

It allows for installing the parts you need for the application and not using the entire framework. .NET Core is a fork of the .NET Framework and there are missing pieces like AppDomain and Remoting as well as all UI parts.

Mr. Ellis demoes the usage of DNX for handling multiple installs of .NET Core followed by how to get the .NET Core from Github and compiling it locally and running a simple hello world program. This demo leads into CoreFx which are the foundational libraries of .NET. To get the hello world example running it required to use an AppModel which bootstraps the CLR loads the .NET exe and runs it. There are several .NET Core AppModels consolerun or corerun (which you get when compiling .NET Core yourself), DNX, and also one for Windows 10.

By using NuGet you can get away from a static framework version. You specify the packages you want and what versions. There are some new monikers to specify dependencies and the most useful one is dotnet. However this is not completed yet and may be subjected to change.

What will be the implications for Mono? Mr. Ellis suggest that there is probably room for them both since Mono is already cross platform and focuses is Non-Windows mobile platforms.

In comparison with the Don’t Make Me Feel Stupid talk this seminar is highly information dense and I would probably need to hear it twice to get all the details. It was very interesting but since this very early may things my change

‘Don’t Make Me Feel Stupid’ – A User by Liam Westley

The first keynote where the speaker is blasting some music (New Model Army – Stupid Questions) while waiting for the seminar to begin. I have design some UI in my life however I have not giving much thought to UX which I why I chose to attend this seminar.

The presentation is somewhat abstract with real world examples describing the points that Mr. Westley wants to make, which is really nice but quite hard to properly relay in a hurried blog post. I will try to capture the main points in a bullet list below:
  • Allow users to use multiple paths
    • If there is no way for the user to achieve a goal they want, the user will find a way.
  • Don’t ask users unnecessary questions
    • If you cannot fulfill a user answers then don’t give the user the possibility to answer the questions in that way.
  • Don’t supply to much information
    • Too many confirmation dialogs trigger auto acceptance
    • Be careful with ‘geeky’ terminology with the information presented to the user.
  • Too little information
    • Too little information causes people to navigate further through an application, or forces people to think.
  • Consistency
    • Don’t make UX changes on each release.
    • Ctrl+F in Outlook forwards the e-mail instead of search (lol).
    • Being consistent to the application or the platform is not cut in stone, this must judge carefully.
  • Surprise your user
    • Help the user to make the right decision or correct the input for the user.
  • Get friendly with your designer
    • Simplifies communication.
    • Developers should question design decisions.

This was a very nice seminar, but not particularly information dense.




Microservices,Cutting Through the Gordian Knot by Ian Cooper

First off, if you have a beard like Ian Cooper you have my respect. Secondly, as stated in a previous post, I am not an expert on micro services so I might not do these presentations the justice they deserve. The points that were discussed in the talk are:
  • ·         Managing Complexity
  • ·         Implementing Micro services
  • ·         Breaking up a Monolith
  • ·         Operating  Micro services

The presentation started with a historical run through of the problems of scaling the team size as the complexity of the software increases. To handle the problem of complexity Mr. Cooper went through decomposing the code and create loose coupling. The decomposition was first described through sub-routines and then discussed through a layering architecture. The benefits of a layered architecture are of course the decomposition and the loose coupling as well as high cohesion.  

At low to medium complexity the monolithic component design is suggested to be used. However when the complexity of the software becomes so great that it is desirable to use multiple teams that can be work in isolation Mr. Cooper suggests that it is time to break up the project in smaller components. Historicaly this has been done through RPC calls but Mr. Cooper goes through all the problems with using RPC style communicating for interacting between the components.

The initial discussion of design evolving over the decades culminates in the introduction of service providers. In the seminar the service is defined by:
  • ·         Autonomous
  • ·         Explicit Boundary
  • ·         Is a Bounded Context
  • ·         Is a Business Capability
  • ·         Eventually Consistent
  • ·         Decentralized Governance

Following the definition of the service the size of the service is discussed. To highlight this the drawbacks of an monolithic component are compared with the problems of  a swarm of “nano” services.


Due to the time constraint of the talk the presentation of breaking up a monolith and operating micro service became quite rushed.  Even though the end of the talk became quite hard to take in since it was a lot of information in rapid succession I found the seminar to be quite good.  

Duplicating Data or Replicating data in Micro Services by Dennis van der Stelt

I’m a bit late to the micro service party and am not read up on many of the concepts of micro services so some of the points of the seminar might well have gone over my head. With that said I don’t feel that the title of the presentation was thoroughly reflected in the talk. The point seemed to be that data should not be duplicated over service boundaries but replicating data within service boundaries is ok to solve problems such as performance optimizations, optimization of queries, resolving latency issues, and resolving network issues. The data that should be duplicated over service boundaries are state changes, identifiers for what the request relates to, and date time info.

The rest of the talk was a mash up of what monolithic and micro services are, publish-subscribe for messaging, and a brief show case on how NServiceBus can be used to resolve monitoring issues. Both the positive and negative parts of monolithic applications and micro services was discussed which I thing is great. There was a short example of micro services that used Uber as an example. During the presentation the SOA Patterns book was recommended as a good read.

During the presentation there was a small problem with the audio going out however this was quickly and professionally resolved. Overall I think it was a decent seminar however I think it could have been more focused.   

Keynote: Data and Goliath - The Hidden Battles to Collect Your Data and Control Your World

Bruce Schneier is an excellent speaker and the topic of how we produce data as an exhaust in today’s society is extremely relevant. He talked in detail about how governments and company’s today analyze our every move and we are happily giving up this information by carrying around personal surveillance devices (cellphones).  He also pointed out that we share one world and one net and there is only one solution, either everybody gets privacy and security and it is built into the backbone or no one gets it.

In the end Mr. Schneier makes states the dualism of sharing data. We want information about traffic jams by sharing location data while driving. It would be incredible useful if we pooled all medical records and let researchers loose on it. However, this is incredible personal data and what we decide should be shared and how we managed data is a subject that we will be judged on by coming generations.

Initial Impressions:

I’m standing in front of the main stage waiting for the key note by Bruce Schneier. I’m already regretting being a huge nerd and bringing my copy of Applied Cryptography since it feels like a lead brick.  However it was completely worth since I actually got it signed.


The conference floor has some software firms present but not so many that it feels crowded. There are approximately five hundred places to get a coffee.  The venue feels room however it is still early so I might need to revise that statement by FridayI’m standing in front of the main stage waiting for the key note by Bruce Schneier. I’m already regretting being a huge nerd and bringing my copy of Applied Cryptography since it feels like a lead brick.  However it was completely worth since I actually got it signed.

The conference floor has some software firms present but not so many that it feels crowded. There are approximately five hundred places to get a coffee.  The venue feels room however it is still early so I might need to revise that statement by Friday.

Tuesday, June 16, 2015

Attending NDC Oslo

So nothing has happened on this blog for a long while and perhaps it is time to do something about that. I’m attending NDC in Oslo for the first time this year and I thought that this might be the right time to start up the blog again.

I will try to give my impressions of NDC for the next couple of days and write some comments on those seminars I attend. My focus will be mostly on .NET however there are several seminars that I will attend that focuses on design, UI, and similar more general topics.

Of course this blog will reflect my opinions of the conference so your mileage may vary.