Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Graphs + Hamsters
Search
Lucas Dohmen
November 09, 2013
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Graphs + Hamsters
My talk about Graphs, Hamsters & ArangoDB from yesterday.
Lucas Dohmen
November 09, 2013
More Decks by Lucas Dohmen
See All by Lucas Dohmen
Frontend Architecture
moonglum
1
150
Weird Parts
moonglum
0
140
Webanwendungen – Eine Frage des Stils
moonglum
0
320
AdequateJS: Where should I run my Code?
moonglum
0
110
Per Anhalter durch JavaScript
moonglum
0
230
faucet-pipeline
moonglum
0
52
Architectures for Modern Web Front Ends
moonglum
2
510
Per Anhalter durch JavaScript
moonglum
0
250
Architectures for Modern Web Front Ends
moonglum
0
170
Other Decks in Programming
See All in Programming
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
190
FreeBSDでZabbixを動かす.pdf
kenkino
0
160
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
AHC070解法紹介
eijirou
0
110
Heart of Swift Concurrency
koher
0
530
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
180
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
320
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
300
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
56
38k
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.1k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Odyssey Design
rkendrick25
PRO
2
800
Bash Introduction
62gerente
615
220k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Visualization
eitanlees
152
17k
Transcript
RWTH Aachen, Computer Science Student triAGENS GmbH, Developer moonglum moonbeamlabs
by Lucas Dohmen Graphs and Hamsters Modelling things differently
Hamster + Food = ❤️
Cave 1 Cave 2 Tunnel
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9
Task • The hamster wants to know how much grain
and how much nuts it has • It can’t remember the way back if it travels through more than two caves • It remembers which caves it already has visited
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9 Grain: 0 Nuts: 0
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9 Grain: 2 Nuts: 3
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9 Grain: 4 Nuts: 3
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9
Grain: 0 Nuts: 0 Grain: 2 Nuts: 3 Grain: 2
Nuts: 0 Grain: 5 Nuts: 5 Grain: 1 Nuts: 1 Grain: 0 Nuts: 2 Grain: 1 Nuts: 1 Grain: 2 Nuts: 1 Grain: 8 Nuts: 9
Grain: 13 Nuts: 13
The hamster is a visitor • There’s a natural way
to implement it called traversals • There are a lot of things that you can implement very comfortably with traversals
ArangoDB • Free & Open Source • Documents & Graphs
• ArangoDB Query Language, but also simple queries • Real transactions • Master/Slave Replication • Extensible API • Embedded V8 • Extremely space efficient • High performance
Post Request to /_api/traversal { "startVertex": "caves/Start", "edgeCollection": "tunnel", "direction":
"any", "minDepth": 1, "maxDepth": 2, "uniqueness": { "vertices":"global", "edges":"global" }, "init": "result.grain = 0;result.nuts = 0;", "visitor": "result.grain += vertex.grain;result.nuts += vertex.nuts" }
ArangoDB + Graphs • Graphical Graph Explorer is part of
the admin interface • AQL has support for graphs • Iterators as shown before • Built in algorithms like shortest path etc.
ArangoDB + Ruby • Ashikawa Core (https://github.com/triagens/ ashikawa-core): Low Level
Driver • Guacamole (https://github.com/triagens/ guacamole): ODM with Rails Support