Monday, July 6, 2015

DevOps–Run what you wrote

If I have to phrase the concept of ‘DevOps’ in one sentence, it’s:

“Run what you wrote”

I think that by making developers(and by larger extend) teams responsible for the code they wrote and the failures it caused in production, they learn to write code that doesn’t fail(and if it fails at least it does it in a graceful matter).

Does this mean that developers get to do all the work and the system administrator can all take a long vacation?
Of course not, it means that the concept of cross-functional teams, as promoted by Scrum and other Agile methodologies, should extend outside the analysis, design, development and testing domain and reach into operations. Only then, we can talk about truly cross-functional teams.


Friday, July 3, 2015

Management Myths by Johanna Rotman

A must read for every (aspiring) manager. (Click on the links to read the full article):

Certainly check out the other articles on her site.

Thursday, July 2, 2015

NPM 3–Finally a windows friendly versions

As a windows user, I never liked NPM(Node Package Manager), the node.js package manager. In contrast to Nuget, where the package folder structure is flat, with NPM you have packages inside packages inside packages and so on…  The Windows file system doesn’t like this and you can end up with folders you cannot remove with any of the standard tools.(Tip: use 7zip to delete the folder.)

With the announcement of the beta of npm 3.0, this problem is finally history. NPM 3.0 introduces flattened packages(they call it deduping, if this is a real verb).

Here is the announcement on GitHub:

Flat, flat, flat!

Your dependencies will now be installed maximally flat. Insofar as is possible, all of your dependencies, and their dependencies, and THEIR dependencies will be installed in your project's node_modules folder with no nesting. You'll only see modules nested underneath one another when two (or more) modules have conflicting dependencies.

  • #3697 This will hopefully eliminate most cases where windows users ended up with paths that were too long for Explorer and other standard tools to deal with.
  • #6912 (#4761 #4037) This also means that your installs will be deduped from the start.
  • #5827 This deduping even extends to git deps.
  • #6936 (#5698) Various commands are dedupe aware now.

This has some implications for the behavior of other commands:

  • npm uninstall removes any dependencies of the module that you specified that aren't required by any other module. Previously, it would only remove those that happened to be installed under it, resulting in left over cruft if you'd ever deduped.
  • npm ls now shows you your dependency tree organized around what requires what, rather than where those modules are on disk.
  • #6937 npm dedupe now flattens the tree in addition to deduping.

And bundling of dependencies when packing or publishing changes too:

  • #2442 bundledDependencies no longer requires that you specify deduped sub deps. npm can now see that a dependency is required by something bundled and automaticlaly include it. To put that another way, bundledDependencies should ONLY include things that you included in dependencies, optionalDependencies or devDependencies.
  • #5437 When bundling a dependency that's both a devDependency and the child of a regular dependency, npm bundles the child dependency.

Of course there is more! So don’t forget to check out the other improvements as well…

Wednesday, July 1, 2015

Nice quote: Maintainable JavaScript

On a panel discussion Anders Hejlsberg stated the following quote: “[…] you can write large programs in JavaScript. You just can’t maintain them.”.

This explains in one sentence the reasoning to build Typescript

Here is the video:

Tuesday, June 30, 2015

Architects’s dream, Developer’s nightmare

Great article by Martin Fowler on Dr.Dobb’s about Errant Architectures.

As a (lead) developer/tech lead/application architect this probably happened to you before: you start on a new project and the first day you arrive, the (enterprise) architect shows you proudly his nice architecture; you know; this thing with all the arrows and boxes.

You hear the architect explaining; “…And every box runs on its own server…” “…bla bla bla…” “…And performance is critical…”.

Now without hearing any other part of the conversation, you know you are in trouble. Especially if some micro services flavor is added to the mix. This is a recipe for disaster. The architect forgot the First Law of Distributed Object Design: Don’t distribute your objects!

But how you are going to tell this to the architect, especially on your first day on the job?

The answer is simple, forward the link about this article to your architect.  Glimlach


Monday, June 29, 2015

ReactiveUI Design Guidelines

Learning Reactive Extensions and Reactive UI can be quiet challenging. There are a lot of new concepts you need to wrap your head around. GitHub, one of the companies that use Reactive UI (for building their GitHub for Windows app), shared their ReactiveUI Design guidelines with the rest of the world.

Thanks guys!


Friday, June 26, 2015

Podcasts I started listening to…

I’m a long time listener to DotNetRocks and HanselMinutes. It helps me through the hours I’m stuck in traffic jams. Recently I started working for a customer in the Netherlands, meaning that my travel time increased a lot. Even in such a way that I listened to podcasts faster than they could product them. Time to search for some extra content to listen to…

After trying multiple others podcasts, I ended with these 2 podcasts from




Great content and great quality! hosts some other podcasts as well. Definitely worth checking out…