Shutdown Neo4j Gracefully

Shutdown Neo4j Gracefully

In this post we will be covering how to shutdown neo4j service gracefully under different versions of neo4j. Continue reading “Shutdown Neo4j Gracefully”

Advertisements

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”

Future of Presentation Layer

Future of Presentation Layer

In the past, I developed desktop applications in C++, Java, Delphi, C# and Visual Basic. Across all the languages and the frameworks, the development paradigm was quite straight forward. There is a Window (a.k.a. Form) with some controls on it and you wire up the actions for them. Those actions might perform calculations, access a database, a file or all of the above. So to sum up, a single desktop application will contain the logic for user interface, business rules and data access inside it. The down side of such stubby applications (a.k.a. thick clients) is, that the storage (database or file) has to travel with it. So sharing this application with multiple users is cumbersome, generating reports is not fun and puts pressure on the local network. 

Continue reading “Future of Presentation Layer”