Cynefin

Cynefin

I was recently introduced to Dave Snowden’s Cynefin framework, pronounced “kuh-neh-vin”, as a way to understand the complexity of an issue so that you know your options to respond accordingly. With Cynefin, Dave Snowden, reminds us that not all issues are created equal and that different issues warrant different solutions. Continue reading “Cynefin”

Create self-signed certificate to use with Azure PowerShell cmdlets

Create self-signed certificate to use with Azure PowerShell cmdlets

For those who are trying to figure out how to create a self-signed certificate for the purpose of running Powershell scripts to manage Azure account, check out Raph’s article on how to create certificate to use with Azure. Raph is a driven Readify consultant and a good mate, currently working with me at Barnardos on MyStory project.

If you are going to be running the Powershell script from any other machine than the one you created the cert from, you will need to install the certificate on those machines. To install it, you need to first export the cert as a pfx with a strong password and import it in the  machine that you want to run the script from.

How are Azure VM and Cloud Services related?

How are Azure VM and Cloud Services related?

Recently, I was experimenting with moving local TeamCity Build Server and Agents to the Azure. Every time I created a VM, I was faced with the question of creating a new cloud service or using an existing one. I simply went with creating a new one, until I needed to perform Azure Scaling. Then i came to know, it is easier to do that when VM’s are part of the same cloud service.

The question that kept bugging me was, how does the traditional cloud service (the one with worker and web role and 2 instances) relate to a cloud service that has many VM’s for the purpose of scaling and load balancing? Ultimately, aren’t cloud services and VM’s separate things?

The article by Planky at MSDN Blogs answers these two questions it in detail.

Neo4J 2 – Understanding Collections

Neo4J 2 – Understanding Collections

In Cypher, to fetch a Person with their email addresses and phone numbers, you might write a straight forward query like this:

MATCH (person:Person)
MATCH person-[:HAS_EMAIL]->email
MATCH person-[:HAS_PHONE]->phone
RETURN person,
       collect(distinct email),
       collect(distinct phone)

In this article, we will try to get a better understanding of collections in Cypher. At first, we will look under the hood to see how this query is run, understand why it is an expensive job and finally, how we can optimise it and avoid this undesired behaviour in the future.

Continue reading “Neo4J 2 – Understanding Collections”

Neo4J 2 – Joins in Cypher

Neo4J 2 – Joins in Cypher

The OPTIONAL MATCH clause is a way of fetching related data off a node, without affecting the main query. It allows us to perform some joins similar to the ones we know from SQL, see image below. We will discuss in detail how MATCH and OPTIONAL MATCH clauses can lend themselves towards constructing the joins.

Note: We will not be covering right joins as they are costly to perform in graph database, it is much more efficient to swap the sides and perform a flavour of left join. We also are not going to talk about Self Join.

Continue reading “Neo4J 2 – Joins in Cypher”