Cheerio with Node.js and CoffeeScript | ArangoDB Tutorial

Foxx’ main purpose is to create a beautiful API for your AngularJS, EmberJS or Backbone.js front-end. However, sometimes you want to do more. We, for example, needed to parse some HTML files. ArangoDB is capable of using some Node.js modules, but unfortunately Cheerio was not one of those. One problem was that we did not support loading of JSON data modules. So, this was a good excuse to rewrite the module loader in ArangoDB to make it even more Node.js-friendly.

With those improvements, that are currently available in ArangoDB’s devel branch. You can now also “require” a JSON data file. These files must have a filename ending with “.json”. If the filename ends with “.coffee” it is treated as coffee-script file and automatically compiled into JavaScript.

A Foxx app can now contain its own “node_modules” directory to include Node modules which it requires. This makes it much easier to deploy a Foxx app.

More info...

CAP, Google Spanner, & Survival: Eventual Consistency | ArangoDB

In Next gen NoSQL: The demise of eventual consistency a recent post on Gigaom FoundationDB founder Dave Rosenthal proclaims the demise of eventual consistency. He argues that Google Spanner “demonstrates the falsity of a trade-off between strong consistency and high availability”. In this article I show that Google Spanner does not disprove CAP, but rather chooses one of many possible compromises between total consistency and total availability. For organizations with a less potent infrastructure than Google other compromises might be more suitable, and therefore eventual consistency is still a very good idea, even for future generations of nosql databases.

(more…)

More info...

ArangoDB at FOSDEM 2014: Insights & Presentations

FOSDEM is an absolutely open and free conference in Brussels, Belgium. The conference offers an impressive amount of developer rooms discussing a broad range of technical topics, including NoSQL and graphs.

After a funny and productive ArangoDB hackathon weekend Frank and I arrived at FOSDEM on Sunday noon. We were looking forward to the talks in the graph devroom, but unfortunately for us it was not possible to enter the room (it was overfull, indicating a great quality of talks).
At the next speakers change Frank and I managed to slip into the room and could enjoy two inspiring talks by Neo4J.
Afterwards it was my turn to present the graph visualization interface in ArangoDB in a still crowded room (slides).
After my presentation, we handed out all our ArangoDB t-shirts to our fans.

Michael handing out T-Shirts to the audience

Michael handing out T-Shirts to the audience

All together it was a great experience and a really huge amount of people visiting the same conference which impressed me a lot.
Thanks for the team at the Graph Processing devroom for giving me the opportunity to speak and for organizing such a great devroom.
We will meet again next year.

so long,
Michael

More info...

ArangoDB 1.4.6: Enhancements & Bug Fixes Released

This version is deprecated. Download the new version of ArangoDB

A new release of ArangoDB is available for download.

  •  issue #736: AQL function to parse collection and key from document handle
  • added fm.rescan() method for Foxx-Manager
  • fixed issue #734: foxx cookie and route problem
  • added method `fm.configJson` for arangosh
  • include `startupPath` in result of API `/_api/foxx/config`
More info...

ArangoDB 1.4.5 Release: Enhancements & Bug Fixes

This version is deprecated. Download the new version of ArangoDB

A new release of ArangoDB is available for download

  • fixed issue #726: Alternate Windows Install Method
  • fixed issue #716: dpkg -P doesn’t remove everything
  • fixed bugs in description of HTTP API `_api/index`
  • fixed issue #732: Rest API GET revision number
  • added missing documentation for several methods in HTTP API `/_api/edge/…`
  • fixed typos in description of HTTP API `_api/document`
  • defer evaluation of AQL subqueries and logical operators (lazy evaluation)
  • Updated font in WebFrontend, it now contains a version that renders properly on windows
  • generally allow function return values as call parameters to AQL functions
  • fixed potential deadlock in global context method execution
  • added override file “arangod.conf.local” (and co)
More info...

ArangoDB’s Web Interface Screencast | Explore Management Tools

With ArangoDB we ship a nice and useful web interface for administration.
However we have not yet told you in a video what you can do with this interface.

This screencast will give a comprehensive overview over the features offered in the interface.

(more…)

More info...

ArangoDB Xmas Edition 1.4.4: Release Notes and Updates

This version is deprecated. Download the new version of ArangoDB

We have released the bug-fix version 1.4.4 of ArangoDB. While this version only contains minor fixes, we have switched to a new build system for Windows. We are now using Visual Studio 2013 and CMAKE to build ArangoDB under Windows. This also includes a new installer (Nullsoft Scriptable Install System). ArangoDB can now be installed as a service under Windows.

Unix The configuration is now called “arangod.conf” instead of “arangod-uid.conf” in order to avoid confusion.

Windows The default installation directory is “c:Program FilesArangoDB-1.x.y”. During the installation process you may change this. In the following description we will assume that ArangoDB has been installed in the location ROOTDIR. You have to be careful when choosing an installation directory. You need either write permission to this directoy or you need to modify the config file for the server process. In the latter case the database directory and the Foxx directory should must be writable by the user.

Installating for a single user Select a different directory during installation. For example “C:/Users//arangodb” or “C:/ArangoDB”. Installating for multiple users Keep the default directory. After the installation edit the file “ROOTDIR/etc/arangodb/arangod.conf”. Adjust the “directory” and “app-path” so that these paths point into your home directory.

[database] directory = @HOMEDRIVE@/@HOMEPATH@/arangodb/databases [javascript] app-path = @HOMEDRIVE@/@HOMEPATH@/arangodb/apps

Create the directories for each user that wants to use ArangoDB.

Installating as Service Keep the default directory. After the installation open a command line as administrator (search for “cmd” and right click “run as administrator”)

cmd> arangod –install-service INFO: adding service ‘ArangoDB – the multi-purpose database’ (internal ‘ArangoDB’) INFO: added service with command line ‘”C:Program Files (x86)ArangoDB 1.4.4binarangod.exe” –start-service’

Open the service manager and start ArangoDB. In order to enable logging edit the file “/etc/arangodb/arangod.conf” and uncomment the file option.

[log] file = @ROOTDIR@/var/log/arangodb/arangod.log
More info...

ArangoDB at RubyConf 2013: Insights and Presentations

RubyConf is a yearly conference in the USA with people coming from all over the world to discuss about Ruby, Rails and related topics. Every year a different city hosts this conference – this year the conference took place in sunny Miami Beach. This year Dirk Breuer – the other main developer behind Guacamole – and I went there to learn from the speakers talking about a wide range of topics. Apart from the great talks there was a lot of opportunity to talk to Rubyists from entirely different areas like social networks or banking backend systems, the problems they face and the solutions they found for them. Of course there were a lot of people catching a sight of our ArangoDB shirts and coming towards us to ask about ArangoDB and the Ruby support. The question ranged from basic questions (“What is ArangoDB?”) to more involved questions about AQL for example. As always we were happy to answer all of them!

RubyConf 2013 Miami Beach

Main hall of RubyConf 2013

All videos from the conference are online now. The excellent keynote by Katie on the second day is not only interesting to Rubyists, but everyone enthusiastic about programming and especially teaching it. If you understand German and want to get more tips about which talks to watch, download episode 26 of Geekstammtisch where we discussed RubyConf.

More info...

ArangoDB Goes to Barcelona | NoSQL Matters 2013 Event

The ArangoDB team traveled to Barcelona for the “NoSQL matters” – weekend. Day one was packed with a lot of NoSQL-trainings and Jan introduced the NoSQL landscape by explaining how to model your data in a non-relational world. Following the wish of many participants Jan had to repeat the morning session about the new and exciting possibilities of NoSQL in the afternoon.

After an inspiring key-note by Nathan Marz, three tracks full of NoSQL, BigData and Searching explained the latest trends.

0030-1024x666

Lucas talked about ArangoDB in general, Foxx and the advantages of multi-models. He explained “why relations — especially properties graphs — matter even in a NoSQL database” by Sarahs Mei’s example of social networks.

After his talk, we had a lot of interesting and inspiring discussions at the ArangoDB booth in the entry hall.

 

NoSQL matters was a great experience for us, which gave the ArangoDB team the opportunity to meet a lot of interesting people to exchange and to develop new ideas.

More info...

Graph Visualization Techniques | ArangoDB: Insights & Tutorials

Using ArangoDB as your graph database?

you now have the opportunity to visualize your data graphically, using the “Graphs” tab in the admin interface.
In this post i will explain you how to do this:

New to multi-model and graphs? Check out our free ArangoDB Graph Course.

Step 1) Configure the Interface
At first you have to configure the interface to display exactly the data you desire.
For the dataset you have two options:

  1. Select one vertex and one edge collection directly
  2. Select the graph by name created using the graphs api
  3. Manage your graphs

Then the interface offers you several advanced options:

  1. Decide if the graph is directed (only outbound edges are followed) or undirected (all edges are followed). By default we treat your graphs as undirected
  2. Define if you want to start at a random vertex in the graph. By default we will do that.
  3. Then you can define which of your attributes should be used as the label on the verticies. By default we will use the _key for this.
  4. Now lets bring in some colour. You can either use the same attribute for colouring as for labeling, but you can also use a different one
  5. Finally you can define a grouping of new nodes. This is useful to speed up the performance of the interface and to increase the usability. You can define a priority list of attributes here, which is elaborated from top to bottom: All vertices having the first attribute defined are grouped by its value. All other nodes are grouped by the second attribute if present etc.

Use the filter on top to identify the starting point to explore your graph.

(more…)

More info...

Get the latest tutorials,
blog posts and news: