Skip to content

Instantly share code, notes, and snippets.

@peterneubauer
Created February 2, 2012 22:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save peterneubauer/1726137 to your computer and use it in GitHub Desktop.
Save peterneubauer/1726137 to your computer and use it in GitHub Desktop.
Neo4j Hangout 2. Feb 2012 Transcript
Hatim: yeah Peter, looking forward to it
Nigel Small: at least i have text :/
Toni Menzel: i am right on it at that moment. Hope to give stuff back in next days (better OSGi+SDN compatibility)
Nigel Small: feels like 1980s
Hatim: don't know how it is in Malmo, but winter has finally come here in Stockholm
Nigel Small: i've even tried booting windows - thats how desperate its become!
Toni Menzel: @Peter: does this Adobe Connect thing have a transcript feature ?
Toni Menzel: think some useful questions+answers could happen in this chat, lost forever if not indexed by google
Hatim: Toni, i can see chat log from before in this box 
Toni Menzel: .. which google will never index
Toni Menzel: anyway
Hatim: oh well I was thinking we should video record meetups, this is meant to be an online, sound video meetup
Hatim: (or so I thought)
ChrisR: low-tech suggestion: someone remember to post it to the mailing list?
ChrisR: copy & paste?
Peter Neubauer: yes, I can post the chat to the ML
ChrisR: (doesn't help if there's video)
Nigel Small: ascii art video? :-)
Andreas Kollegger: if somebody does kick into audio mode with screensharing, I think we can record it
Peter Neubauer: probably the best. We had video last time, do you want to do that? I felt I talked too much :)
Toni Menzel: technical question: G+ Hangout is no solution?
Toni Menzel: Ascii-Art Video.. thats good ;)
Andreas Kollegger: G+ is worth a try, I think
Peter Neubauer: well, if we are fine with no video, that would work
Andreas Kollegger: particularly without video
Andreas Kollegger: agreed PN
Peter Neubauer: so, you think we should try it?
Hatim: sorry, try what?
Toni Menzel: G+?
Peter Neubauer: yes.
Hatim: oh Ggoogle plus 
Toni Menzel: or IRC *g*
Toni Menzel: speaking of low tech
Hatim: yeah sure, it was more or less a fail at work for me
Hatim: btw, really happy that the Neo4j challange was streached with respect to timelines, just hope it gets more attention too in the more time 
Nigel Small: Peter: you getting on ok with the Geoff plugin then?
Nigel Small: i made a few minor additions this week
Peter Neubauer: yes, I have it deploying and everything.
Nigel Small: woo :-)
Peter Neubauer: right now, the biggest challenge is on where to put docs for all the plugins and components that are not in the main manual
Nigel Small: ahh ok - well mine is currently all in raw HTML
Niels: can someone tell me a little more about what GEOFF is?
Nigel Small: coded in VI like all good code
Peter Neubauer: yes, off you go Nigel, want video?
Nigel Small: video fail my end but i can type :-)
Peter Neubauer: maybe you get into presenter mode and show some GEOFF
Peter Neubauer: ahh ok
Nigel Small: basically Geoff started off as a simple file format for serialsed graph data
Nigel Small: and has evolved more recently into a fuller declarative language
Nigel Small: more or less and a "write" complement to Cypher
Niels: a data manipulation language?
Hatim: are we doing a google plus hangount?
Nigel Small: indeed
Hatim: URL?
Andreas Kollegger: it's the GEOFF/Cypher balance that I can't get straight
Andreas Kollegger: do you imagine somehow both languages intermingling
Nigel Small: Cypher = SELECT, Geoff = INSERT/UPDATE/DELETE
Andreas Kollegger: or remaining separate?
Peter Neubauer: I think this cries for a Andres/Nigel love day of talking
Nigel Small: separate i think for now but both share a common(ish) syntax
Nigel Small: geeky man-love?
Peter Neubauer: and, I would like to do the same with Mattias and Niels on supernodes and stores
Peter Neubauer: ye, always!
Nigel Small: so for example....
Nigel Small: (A) {"name": "Bert"}
Niels: would it be possible to do something like analogous to SELECT UPDATE?
Michael Hunger: Hey
Peter Neubauer: Hi Iron Man
Nigel Small: describes a node, named "A" with a single property
Michael Hunger: Can Nigel share his Screen and demo stuff?
Nigel Small: sorry chaps nothing much to demo from here right now - havent had enough time to prepare anything fancy!
Michael Hunger: but we can have a look at your docs webpage ?
Nigel Small: most of the info is on http://py2neo.org/geoff but agreed i think i need to work more with Neo guys on how it fits against Cypher
Michael Hunger: Don't hear anything, is audio working for you guys?
Hatim: i cannot hear or see 
Hatim: well i can see the chat
Michael Hunger: Now that cypher can select different parsers it would be cool to integrate cypher + geoff
Peter Neubauer: yes really
Nigel Small: how does the parser selection fit in then?
Nigel Small: (i will try to prepare a powerpoint for next time maybe?)
Peter Neubauer: no PPT please! this is a hangout ;)
Nigel Small: ok lol
Nigel Small: sorry i said something evil
Peter Neubauer: live demo is da sh..
Michael Hunger: just showing your docs and talking is more than enough
Peter Neubauer: PPT just sux in your time
Nigel Small: hehe ok point taken
Michael Hunger: do you have the server plugin ready for a live demo Peter ?
Nigel Small: some of us work in low-tech worlds!
Peter Neubauer: mmh, I can pull it up, just a moment
Michael Hunger: I'd say Nigel pulls up the docs and enables his mic and then we gonna chat about Geoff
Peter Neubauer: yes, will pull up the plugin ...
Michael Hunger: yes
Toni Menzel: y
Hatim: i hope people cannot hear me cheawing gum
Michael Hunger: chew louder :)
Andreas Kollegger: why geoff within json?
Andreas Kollegger: why not send the raw geoff?
Andreas Kollegger: er, um.
Michael Hunger: but there is not really a DSL to build up geoff? right?
Hatim: yes 
Michael Hunger: and each rule fits nicely as a entry of the json entry
Michael Hunger: so we should talk to mattias to have a sink for index content
Michael Hunger: via GraphOperations
Peter Neubauer: IndexReader r = IndexReader.open( "prdb_index"); int num = r.numDocs();for ( int i = 0; i < num; i++){ if ( ! r.isDeleted( i)) { Document d = r.document( i);        System.out.println( "d=" +d); }}r.close();
Michael Hunger: start n= ... return GEOFF(n)
Michael Hunger: or GEOFF(p) or GEOFF(r)
Michael Hunger: p being path and r being relationship
Michael Hunger: application/geoff
Michael Hunger: Accept: application/geoff
Peter Neubauer: yes, true
Nigel Small: sounds like "jeff"
Hatim: so a stupid question, can geoff  be used  to input data 
Nigel Small: yes via the load routine
Nigel Small: install the plugin and pass rules to one of the load methods
Nigel Small: over REST
Nigel Small: all data from a single file will be created in a single transaction
Hatim: and can some thing be done along this line in cypher 
Hatim: cypher + geoff
Hatim: (not REST)
Nigel Small: most of the work so far has been to enable the server plugin but no reason it couldnt be used without
Michael Hunger: I have the idea of combining cypher and geoff like this
Nigel Small: http://py2neo.org/geoff/clients/java-embedded/
Michael Hunger: start n  match .... where .... with n, r, p do [geoff code using n,r,p and cypher inputs as parameters]
Nigel Small: not many docs on that yet sorry :-)
Peter Neubauer: yes but the tests are good.
Michael Hunger: with instead of return
Hatim: ok
Hatim: yeah, this sounds very interesting
Michael Hunger: and should be possible with the new parser-selector in cypher
Peter Neubauer: yes, it's a perfect project for a spike
Michael Hunger: great blog posts by max again this week 
Nigel Small: got a link?
Hatim: yeah, make me almost wana start learning ruby (more seriously)
Hatim: -> the blog posts from Max
Hatim: any thing else on the agenda here 
Hatim: ?
Hatim: not sure if we will be doing a video/audio meetup from now on but i thought recording it could be useful (provided people give permission)
Hatim: we may start recording our in life meetups in Stockholm and post them to vimeo
Hatim: or some thing
Nigel Small: does anyone visit the IRC channel very often?
Nigel Small: i pop in occasionally but its always pretty quiet
Michael Hunger: not really
Michael Hunger: too much other stuff going on :(
Hatim: Nigel Small, irc has lost alot of traction with the advent of twitter (IMO)
Michael Hunger: can't keep up with all the channels anyway
Nigel Small: twitter can be slightly less focussed! :-)
Peter Neubauer: yes. IRC is one more channel. I would liek to keep interaction focused
Michael Hunger: is there a nice irc channel notifier ?
Michael Hunger: which sends a growl message when somethings happing
Peter Neubauer: so, we could switch to either IRC or G+
Peter Neubauer: if we are not doing very often, then chat is fine. however I like the occasional screen sharing.
Nigel Small: the screen sharing is useful i think
ChrisR: I enjoyed having this session, but the time of day is bad for me (time zones :-( ) ... I couldn't pay much attention
Nigel Small: more caffeine?
Hatim: yeah, Peter may be we can do an early time slot every other meetup
ChrisR: No, work expects me to actually be producing code for them during the day :-) (it's 4PM here now)
Nigel Small: ahh ok :-)
Michael Hunger: Hmm we could also encourage other hangouts happening w/o being organized by us?
ChrisR: But don't schedule for me by any means....I'm ok on the mailing lists for now...
Michael Hunger: so that we have one per week in a different timezone ?
Peter Neubauer: yes, I think just announce a new meetup, and we will make it happen.
Michael Hunger: there are more than enough topics
Peter Neubauer: there has been interest for a later one for Aisa/AU
Michael Hunger: I would love to hear from the bio4j and structr guys in person for instance
Peter Neubauer: yes, me too. we can reach out and invite them personally, and have Marko demo crazy recommendation stuff
ChrisR: Thanks for your time guys...if I see another hangout I'll try to join. I think it's a nice idea. Bye.
Nigel Small: bye chris
Peter Neubauer: bye, need to drop out too
Peter Neubauer: nice to talk to you all, so, next time Adobe or something else?
Hatim: ok, Peter
Niels: was there anything else on the agenda today?
Nigel Small: adobe unless something else agreed on mailing lists?
Hatim: well, besides mailing list where do we discuss priorities of features
Niels: what sort of features would you suggest?
Hatim: that was one thing i am interested to know, after seeing the Doodle list of features
Hatim: Niels, no features as such, i would like to vote up or down on features 
Nigel Small: there was a poll wasnt there?
Hatim: like in Springsource JIRA, you can watch and vote for issues 
Peter Neubauer: yeah, sadly Github doesn't have it
Niels: is that an option on GitHub?
Peter Neubauer: I would like to keep it there, maybe some substitute
Niels: can't we vote up/down by adding a comment with +1/-1 ... it's a bit more time consuming to distill the numbers though
Peter Neubauer: but I really love GIThub issues otherwise, voting is just not there. maybe Niels or Hatim, could you investigate options to get  voting integrated?
Peter Neubauer: it also gives a great indication where to pitch in, and for the Neo technology engineers what to fix first
Niels: wish i could vote more than once on one particular issue :-)
Hatim: sure, will take a look, if there is none then this sounds like a small exercies with spring-social and github :)
Hatim: Niels . hehe, same here. Which issue is dear to you at the moment
Peter Neubauer: right, we could host a voting-app as part of the neo4j challenge!!
Peter Neubauer: that is a winner
Niels: densely connected node (has been for many months now
Michael Hunger: I also like youtrack :) which has all of that
Peter Neubauer: yes Niels +1 on that.
Peter Neubauer: ok I need to go
Nigel Small: bye peter
Michael Hunger: the densely connected nodes are being worked on, but right now there was other more pressing stuff Niels
Peter Neubauer: voting is a great action point. let's get that in place guys!
Michael Hunger: great idea hatim !
Niels: i understand there are more pressing issues... i just keep annoying you guys until it's fixed
Hatim: thanks, after we have voting i have to find lots of friends for the nice features as well :)
Michael Hunger: thanks Niels
Hatim: bye Peter
Michael Hunger: thats goo
Michael Hunger: good
Hatim: Nelis for the un-initianted, how do densly connected nodes help you 
Michael Hunger: so that would also be a nice thing for SDN + Spring Social
Hatim: or solve what kind of problems...never read any thing about it before
Michael Hunger: if you are brave enough Hatim :)
Niels: they don't necessarily help me, they are a nuisance when they occur,due to store layout
Michael Hunger: yes, that's true Niels
Hatim: Michael i can try :), i was fishing for ideas any way 
Michael Hunger: especially when the relationships are spread across the whole relationship-store-file
Michael Hunger: it would be even better if that app could sync with the github issues :)
Michael Hunger: back and forth
Michael Hunger: one idea is to represent voting on gh as labels (1 unimportant ... 5 very important)
Niels: is there a label per user, or would it be wiki-like, where you can vote it as 5, and i can change that in 4?
Michael Hunger: just for the viz on github, just 3-5 labels, otherwise it gets too crowded
Michael Hunger: in the neo4j app we could have arbitrary stars
Hatim: hmm, 
Michael Hunger: start issue = node:issues("id:*") match issue<-[v:VOTED]-user return issue, avg(v.stars)
Michael Hunger: start issue = node:issues("id:*") match issue<-[v:VOTED]-user return issue.id, avg(v.stars)
Niels: i see you already speak cypher natively
Nigel Small: michael is a graph-powered cyborg
Hatim: well i think there are lots of ideas regarding the voting part and how it can be analyzed etc. but the most importnat thing for the app is to be super easy 
Michael Hunger: sure :)
Hatim: for people to vote easily
Michael Hunger: cypher comes easy as nth language
Niels: any chance there will ever be a cypher version as an internal Scala DSL
Niels: ?
Michael Hunger: yep, so the UI would be interesting, perhaps utilize the ask-ken stuff max showed in his blog-posts ?
Michael Hunger: Niels I think fakod did one or adriano almeida
Niels: then i will look into that, as a Scala programmer myself, I am more interested in such an approach than parsing text
Niels: though i have written my own traversal DSL in scala
Nigel Small: well it seems easy to scrape the github issues using their API so it should be trivial to create a mini voting app: http://py2neo.org/voting/
Hatim: Micheal, i will do a small write up for the voting app
Hatim: but at the same time we should have a production voting solution , simple and easy to vote for github features, i will ask around, other wise even Doodle is ok 
Michael Hunger: yay Nigel !
Michael Hunger: OTOH, why not use the voting app for production?
Hatim: Micheal well, i meant is that we should not wait for a custom solution, 
Hatim: voting in it self is important
Hatim: but i will give it a good shot, hopefully this weekend, now i hvae some idea :)
Hatim: ok ppl 
Hatim: i have to go now, see you in next meetup
Nigel Small: ciao
Niels: i have to get going... looking forward to a voting option
Michael Hunger: great !
Michael Hunger: take care :)
Nigel Small: @michael i think i will need to do some considerable work on speeding up geoff
Nigel Small: i dont think the current implementation will scale too well
Nigel Small: when dealing with many rules in a txn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment