Building a self-learning game with ArangoDB, io.js & AngularJS in half a day.

With the ArangoDB Foxx Microservice Framework we’ve introduced an easy way to create a Web API right on top of the NoSQL database.

In early January Max challenged Andreas (AngularJS / NodeJS) that they could build a full-stack application within half a day.

The web application – in short – is a guessing game, in which the computer tries to guess a thing or animal you think of by asking a series of questions, for which you provide the answers. (more…)

More info...

Sending Mails from Foxx in the background via SendGrid

ArangoDB Foxx allows defining job queues that let you perform slow or expensive actions asynchronously.

These queues can be used to send emails, call external APIs or perform other actions that you do not want to perform directly or want to retry on failure. Let’s say you want to send out an email every time you check off an item in your Foxx todo app and you want to use an external transactional email service to do that. (more…)

More info...

Building Hypermedia APIs – a Design Approach using Statecharts

This is the second blog post on building hypermedia APIs with the focus on API design. In part 1 Lucas describes the concept of links in JSON.

Imagine we have an API where people can like books and other people can then see, who likes a certain book. We want this API to be highly connected: We don’t want to look up URLs in a documentation, we want to follow links as we know it from the world wide web. All we want to do as the author of the API is give our users a single URL from which they can then follow links to all other resources. This is similar to the way we would do this with a website. Leonard Richardson and Mike Amundsen refer to this as the billboard URL for this reason: If you put this URL on some billboard, people know everything to get started with your API. (more…)

More info...

Building Hypermedia APIs – Links and Forms in JSON

When we create websites we don’t just create single pages that have no connection to other Web pages. From the beginning, hyperlinks were part of the core concept of the World Wide Web and for that reason HTML. Links are so essential to the Web that they are even used to rank the popularity of the Web pages on search engines. And who hasn’t gone on a journey through Wikipedia clicking link after link? Even though we all know and appreciate the importance of links on Websites, we rarely use links in our Web APIs. (more…)

More info...

FullStack London

I recently had the chance to visit FullStack London, a well organized conference. Thanks a lot to Skills Matter. FullStack was opened by Douglas Crockford about “The Better Parts” of ES6. I cannot wait to start using them. Douglas was followed by Isaac Schlueter talking about open source in companies. Although this talk was not technical I learned a lot and it was very inspiring.

The remainder of the conference was all about using JavaScript mostly on server-side using Node.js or in robotics. As robotics is not my kind of topic I visited the talks about server-side JS. They confirmed my impression where JS development is heading to: Microservices. (more…)

More info...

Handling Binary Data in Foxx

Handling binary data in JavaScript applications is a bit tricky because JavaScript does not provide a data type for binary data. This post explains how to use binary data in JavaScript actions written using ArangoDB’s Foxx.

String vs. binary data

Internally, JavaScript strings are sequences of 16 bit integer values. Furthermore, the ECMAScript standard requires that a JavaScript implementation should interpret characters in conformance with the Unicode standard, using either UCS-2 or UTF-16 encoding.

While this is fine for handling natural language, it becomes problematic when trying to work with arbitrary binary data. Binary data cannot be used safely in a JavaScript string because it may not be valid UTF-16 data.

Read more on Jan’s Blog

If you want to continue with other JavaScript related resources, you should start with ArangoDB NoSQL and JavaScript.

More info...

Cheerio, Node and Coffee-Script

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...

Foxx Hackathon on July 26th – 28th

While the ArangoDB team is finishing the most wanted replication feature, there is another baby which needs our attention: Foxx.

Lucas, Jan, Frank and Michael have spread the word about Foxx and collected feedback from the community. Now it’s time for the next step: we will have our second FOXX hackathon on July 26th-28th in Cologne – and you are invited to join the party :-).

A quick reminder: FOXX is a nice, little Javascript application framework on top of ArangoDB. Using Foxx, the frontend application speaks through Foxx with ArangoDB. No Node.Js/Rails/Symfony/whatever backend is required. This is especially useful for creating APIs in no time in Single Page Applications (SPAs).

Who should attend?

  • You are a developer and you are interested in another approach to build frontend driven apps.
  • You have something in mind you would like to build with FOXX or you want to help us making FOXX better. Some topics we have in mind: authentication, ease of use, deploying apps.
  • People from the community told us that they want to try: Using ClojureScript’s new lightweight processes (not bound to threads) together with FOXX
  • You want to meet like-minded people and have fun
  • You can’t resist a challenge.
  • You don’t own an ArangoDB/Foxx T-Shirt yet. 😉

Some Javascript experience is required, but you don’t have to be an expert at all! (more…)

More info...

Foxx Screencast: Part 2

It has taken some time, but now part 2 of the Foxx Screencast is available. I talk about some more advanced topics of Foxx and also plans for the future.

https://www.youtube.com/embed/d3TPtXEGhfk?rel=0

More info...

ArangoDB 1.3.alpha1 and the first Foxx Screencast

Starting today you can install the first Alpha of the upcoming release of ArangoDB version 1.3. Some of the new features are:

* ArangoDB Foxx: A lightweight way to define APIs directly on top of ArangoDB
* Traversals: Define traversals to explore your graphs stored in ArangoDB
* A new and improved Frontend: Featuring a new design and various improvements
* And more: Multi-Collection transaction support, user defined functions in AQL, more builtin AQL functions and AQL improvements, bug-fixes…

ArangoDB Foxx: The first screencast If you want to get a first look at ArangoDB Foxx, you can now see our first screencast. Lucas talks about the motivation and goals of Foxx and introduces you to the basics. A second screencast will follow with more advanced techniques like our Repositories and Models:

How to install it?

  • If you are on a Mac and using Homebrew, you can install it now via brew install --devel arangodb.
  • If you are compiling ArangoDB by yourself, checkout the branch 1.3 from github and compile it.
  • if you are using Linux, we have create package for the usual distributions. You can download them from here.
More info...

Get the latest tutorials,
blog posts and news: