By Mark Needham, Developer Relations Engineer | March 4, 2017 Welcome to the 2nd edition of This Week in Neo4j!
If you’ve got any ideas for things we should cover in future editions, I’m @markhneedham on Twitter or send an email to email@example.com.
Contributing to Neo4j: Florent Biville
Florent Biville – Author of the Neo4j Procedure CompilerLong-time community member Florent Biville described his experience building the Neo4j Procedure Compiler which shipped with Neo4j 3.1.0.
Florent picked up user-defined procedures just after their release in May 2016 and realised that you couldn’t find common errors until you deployed the procedure which made for a slow feedback cycle. He wanted to address this and collaborated with Tobias Lindaaker from the Neo4j engineering team to build the Procedure Compiler.
I asked Florent if he had any tips for other people who are interested in contributing either to the main Neo4j code base or one of the surrounding projects such as APOC.
These were Florent’s top tips:
- Focus on one specific improvement at a time
- Share your first results – don’t try to reach perfection. The Neo4j community is open and approachable.
- If you need help use Slack or speak to one of the DevRel team (firstname.lastname@example.org) who will direct you to the best person to collaborate with.
4,000 Slack Users!
Achievement unlocked: 4,000 Slack usersSpeaking of Slack – this week we had our 4,000th member of the community registered on the Neo4j-Users Slack, getting questions answered and helping others with their Neo4j journey.
Since August 2015, there have been more than 250,000 messages posted, of which just under 100,000 were on public channels. If you’re stuck with a Cypher query or need help importing your data be sure to drop by and ask for help.
Making Sense of Airbnb’s Data using Neo4j and Elastic
Late last week Christophe Willemsen showed me a really cool talk where John Rodley and Chris Williams from Airbnb explain how they built a data portal using Neo4j to help make their internal data more searchable, discoverable, and consumable.
In the talk they explain how they’ve used the power of Neo4j and Elastic to make it easier to find the information you’re looking for. The GraphAware neo4j-to-elasticsearch and graph-aided-search libraries were used to glue the two technologies together.
The talk is part of the Airbnb Tech Talk series and the slides for the talk are also available. There’s some really well-designed slides in the talk so it’s well worth taking a look.
Kafka, Neo4j PHP OGM, Twitter API and More
- It wasn’t strictly published this week but Michael Moore’s excellent blog post in which he shows how to stream data into Neo4j from Kafka made a reappearance. There’s lots of Python awesomeness to be found in this post and all the code is available as a GitHub gist
- Christophe Willemsen released 1.0.0-RC1 of neo4j-php-ogm – a Neo4j Object Graph Mapper for PHP.
- Seguy Damien released v0.10.3 of exacat, a tool for doing code analysis of PHP projects. Six new analyzers were introduced in this release including one that finds properties only used once and one that finds uses of the same alias to refer to different namespaces.
- Michael Hunger and I showed how to create a Twitter graph of the ‘My name is…I work’ meme, that criticized the practice of hard coding tasks during interviews. The post mostly focuses on loading JSON into Neo4j from the Twitter API using APOC, with not a programming language in sight.
- Michael also wrote a blog post containing his top tips for updating graphs efficiently. My favourite Cypher clause – UNWIND – features extensively.
- Last week, we featured Brian Roy’s explorations with the AWS Rekognition API. This week he’s gone even further and deployed his application on a Raspberry Pi to check how well his person-detection model works. Neo4j is then used to analyse the results.
- Fred Trotter of Hacking Healthcare and DocGraph fame published NoSQL and Technical debt in which he laments the loss of discipline around data that NoSQL encourages. He then concludes that relational and graph databases force you to think about your data structures upfront rather than just “throwing the data on the pile”.
Meetups on R, Ruby on Rails and more
There were lots of meetups and slide decks floating around the Twittersphere this week.
Samathy Barratt presenting at the Women in Tech, Nottingham group
- Starting with the most recent, on Thursday Samathy Barratt presented an Intro to Neo4j at the Women in Tech, Nottingham group.
- Geoffrey Hannigan, Postdoctoral Research Fellow at the University of Michigan, shared his presentation Network Analysis with R and Neo4j from the Ann Arbor R Group. He starts with a lighthearted look at using igraph and RNeo4j to calculate centrality in a movies dataset before showing how the same tools can be used to detect cancer. If you want to learn more about using Neo4j with R Nicole White has lots of material on her blog.
- Regina Imhoff presented a talk in which she showed how to use Neo4j with Ruby on Rails at the Austin on Rails user group.
- In Manchester, the metafused team (Matthew Yeager, Matt Jackson and Phil Stanley) showed how to build a recommendation engine using Neo4j and deployed on the Google Cloud Platform. You can download the slides from their talk.
- At our Meetup at the SoundCloud offices in Berlin invited by one of their data scientists, Sean Braithwaite, Michael presented the latest edition of the TrumpWorld Graph. He demonstrated how to extend the original dataset with a variety of additional sources. (Slides)
- Our Online Meetup this week was presented by Jesús Barrasa, with whom I discussed the difference between RDF and Property Graphs.
- Our upcoming Online Meetup will feature Johannes Unterstein from Mesosphere demonstrating how he built the Neo4j package for Marathon Universe and how to install, scale and run your Neo4j 3.1 Cluster on DC/OS. Please note that the time displayed on Meetup.com is in Pacific Time, we list the correct local times in the event description.
A Closing Tweet from Malta
We’ll close with a tweet from Niall in Malta who’s having fun using Neo4j to analyse social networks:
Have a good weekend!
About the Author
Mark Needham, Developer Relations Engineer
Mark Needham is a graph advocate and developer relations engineer for Neo Technology, the company behind the Neo4j graph database.
As a developer relations engineer, Mark helps users embrace graph data and Neo4j, building sophisticated solutions to challenging data problems. Mark previously worked in engineering on the clustering team, helping to build the Causal Clustering feature released in Neo4j 3.1. Mark writes about his experiences of being a graphista on a popular blog at markhneedham.com. He tweets at @markhneedham.
From the CEO
Have a Graph Question?
Reach out and connect with the Neo4j staff.Stackoverflow
Share your Graph Story?
Email us: email@example.com