17 January 2013

A round_robin for both Python 2 and 3

As most Python programmers will know, the itertools module in Python provides some fantastic utilities for working with collections and iterables. The documentation also supplies some extension recipes for other use cases not covered by the main library and one of these functions is round_robin.

5 December 2012

Recording People's Names: Break the Habit!

Due to a long tradition in software design, most data entry systems have inherited a scheme of gathering names of people in a somewhat unhelpful form. Often, this will be exhibited as `first name` and `last name` or sometimes `given name` and `family name`. Regularly there will also be separate fields to enter a `title`, sometimes as free text and sometimes from a drop down menu. Some systems even ask for a `middle name` as well.

6 September 2012

Modelling dates in Neo4j

Whether you're dealing with people, products or places, it's generally reasonable to assume that the information you store in your database in some way involves dates and times. Since no native date or time data types are supported by Neo4j, the question of how best to store this information has come up several times in the community mailing list. The general answer to this question has been to use a numeric or textual property value and each of these styles obviously has individual pros and cons. Focusing simply on date information, this article discusses some of the options which can be used, their relative advantages and disadvantages, and introduces a uniquely graph-based solution.

16 July 2012

Traffic Control

Much of the feedback I have received about py2neo in some way concerns the performance of Neo4j's REST interface in that, under load, it can be a tad on the sluggish side. Efforts are ongoing at Neo HQ to remedy this situation but, in the meantime, version 1.2.15 of py2neo makes a couple of new moves towards reducing the amount of network traffic required.

8 July 2012

Introduction to py2neo at Skills Matter, 27th June

A week and a half ago I had the privilege to talk about py2neo at the Neo4j London user group. It was a fantastic evening and was a great opportunity to actually meet a few of the people who, until then, I'd only encountered in an online capacity! If you didn't get the chance to pop along, then have a browse through the slides below or take a look at the podcast on the Skills Matter website.


Introduction to py2neo
View more presentations from Nigel Small

31 May 2012

GraphDatabaseService.create in py2neo

The GraphDatabaseService.create method provides a fast and flexible mechanism for creating Neo4j nodes and relationships in bulk from py2neo. As a wrapper around the batch execution feature of the REST API, it provides a considerably faster way to insert multiple entities when compared to individual create_node and create_relationship_to calls.

3 May 2012

Cypher Support in Py2neo 1.2

Cypher has evolved considerably over the past few months. With the introduction of mutating statements and the recent foray into streaming results, it's an interesting time for Neo4j's query language.