Adequate and understandable documentation - janusgraph

I'm currently learning JanusGraph. I ran into the problem of finding normal documentation. On the official website of the project (https://docs.janusgraph.org/0.2.2/index.html) some items have been omitted, some are fragmentary, some are in the old versions of the documentation, but not in the new 0.3.0. Can anyone give a link to a guide in which all aspects of working with a Janusgraph are clearly and normally described with a JavaApi description: connecting to a gremlin server, creating a graph, configuring and deleting a graph, adding and deleting vertices, which class is responsible for what and much other. I'm already tired of searching Google.

Related

Are there any implementation level documentation or articles available for microstream?

I am considering Microstream for a project but before adopting it would like to better understand how the framework actually work and in particular what the overhead (indexing, any wrapper objects etc) is per persisted object and per root. I have looked around quite a lot on both the microstream web site and Internet in general but failed to find information on this detailed level....
Any suggestions, short of actually reverse engineer the source code that I see as a last resort would be much appreciated!
Microstream is open-source. You can check the Github repository. There are also many videos on youtube from Microstream Team. Microstream Team also is very active in Java User groups, has many live presentations about this framework, you can participate in these meetings. Microstream JavaDoc is part of the Maven Artifacts in the maven repository.

How to manage user access in Janusgraph Version 0.5.3

I am using Janusgraph Version 0.5.3 with CS and ES, which has gremlin 3.4.6.
I am able to create 2 graphs using ConfiguredGraphFactory (dev & test)
Now what i want to achive is create users (hopefully using credentailDB, where i am currently facing issues) and after i create dev users and test users, want to know if i can restrict them to have access only to specific graph, rather than all the graphs.
What i mean is ConfiguredGraphFactory.getGraphNames() should return only respective graphs for that user and not all graphs in CS.
Thanks,
Atul.
There are no authorization functions built into ConfiguredGraphFactory. There may be ways to do what you are asking but none that are easily implemented without detailed knowledge of Gremlin Server internals. In TinkerPop 3.5.0 (not yet released as of the time of my answering, but it is expected within weeks), this situation changes as authorization features have been exposed. The work was done under this issue: TINKERPOP-2389 if you'd like to learn more.

How can I use openstreet map to order waypoints?

I saw in articles that OpenStreet map provides an API that, given a route with an origin and destination and multiple (unlimited?) waypoints it sorts the waypoints according to the best route.
I couldn't tell which endpoint it was. Could someone point me to the part of the documentation that explains how to achieve this? Is there a ruby gem that wraps up this endpoint request?
Thank you very much
This is the traveling salesman problem. There is more than one OSM-based router for solving this problem. According to a similar question at help.openstreetmap.org:
All major OSM routing engines support this:
Mapzen's Valhalla
("Valhalla also includes tools like time+distance matrix computation,
isochrones, elevation sampling, map matching and tour optimization
(Travelling Salesman)."),
Mapbox's
OSRM ("The
trip plugin solves the Traveling Salesman Problem using a greedy
heuristic...")
Graphhopper uses the JSPrit
library
for route optimization ("TSP problem can be modelled by defining a
vehicle routing problem...")
None of these services have a free and unlimited online offering (it
would quickly be abused by people trying to save on their own AWS
cost). Mapzen has an offer where you register a free API key and use
that. OSRM doesn't need an API key, you can just use it. Graphhopper
requires registration and while they have a free trial, I don't think
they have a free tier.
All three are Open Source and you can install and use them without
limits locally.
For GraphHopper take a look at the Route Optimization API. For OSRM see the trip plugin.
Set up your own OpenStreetMap server - this way you won't be incurring data access fees every time your app needs to run maps queries.
Specifically, install the Valhalla maps server. It's a free application. Best to install it on a Linux box:
https://github.com/valhalla/valhalla
Or download and run the docker image in Docker instead:
https://hub.docker.com/r/abihf/valhalla/
https://github.com/interline-io/valhalla-docker
The server provides an API specifically for ordering waypoints:
https://valhalla.readthedocs.io/en/latest/api/optimized/api-reference/

Migration from eXist-db 1.4.x to 2.x

We're going to migrate our application from eXist-db 1.4.1 to ~2.2 (probably RC2).
I`m wondering if anybody already did such a migration and what impediments they met?
I already found some documentation about this on official website and tried to Google, but didn't find much. For now I know that there were significant changes in the security model and some APIs are also changed. But still I want to know if somebody investigated further or maybe can share success story.
The main difference between 1.4.1 and 2.1/2.2 is that stored XQueries now need the executable flag to be set. You can fix your permissions automatically using a query as described in the documentation.
It is also possible that some of your existing queries report errors on 2.1/2.2, which they did not before. In nearly all cases this happens because 1.4 was less strict about the XQuery specification and processed expressions which should not be allowed (the standard as well as the implementation evolved). Also, the query engine may now do additional checks to prevent potential issues. Usually the error messages by the compiler should directly lead to the code you have to fix. This may cost a few minutes, but it's worth the effort. Apart from this, no particular migration issues have been reported.

socket.io: The good parts, and the bad parts

I have discovered socket.io recently, and it seems to fit perfectly my needs for a multiplayer game. From what I understand, it serves the same role for communications between client and server that jQuery does for client-side querying and animations. Is that roughly correct?
The official website is kind of informative, and I've found a few blog posts, such as this one, boasting how awesome it is. However, I've found no Wikipedia article describing it, no news items, no scholarly research, etc. So, how popular is it?
Somewhat surprising, I have not been able to people complaining about its bad parts, apart from (understandable) bugs like this. For some reason I haven't found comments about how fast it is, how buggy it is, how complete it is, etc.
I would like to know what I'm getting into before diving in and learning the technology!
Note: My opinion is biased because I work on Socket.IO
We have the http://socket.io site and some wiki pages on github (https://github.com/learnboost/socket.io/wiki). It's not allot of information, but enough to get your started.
I think the main reason why there isn't that much information yet is because node and socket.io are relatively young. But it's really populair in the node.js community, when you want realtime communication socket.io is usually the first module that is suggest to you.
According to the stats of npm (node package manager) it's quite populair http://search.npmjs.org/ as it's in the list of most depended on modules. Also if you checkout the stats on the repositories on github you can see that it's quite active and loved. The server has more than 2000+ watchers and 220+ forks. And the client 1300+ watchers and 110+ forks. The google groups has 1350 members already. So that is not to bad for one single node.js module (if i may say so).
As for the bugs, we have launched a complete rewrite of the code a couple of months ago, incorporating the lessons and feedback we had on Socket.IO 0.6, so there a few leaks and bugs but we are working on hard on resolving those. I have already fixed most of the known memory leaks and they should hopefully land in socket.io 0.7.8 / 0.8.
Hopes this helps <3

Resources