(+ loom (years 2))
TRANSCRIPT
(+(years2))
AysyluGreenberg
April15,2016
@aysylu22
AysyluGreenberg
@aysylu22
TODAY
• Whatis
TODAY
• Whatis• Evolu2onofLoom
TODAY
• Whatis• Evolu2onofLoom• Maintainingopensourceproject
LIFE
WHATISLOOMgithub.com/aysylu/loom
Graphs
GraphsinRealLife
TypesofGraphs
SimpleGraph WeightedGraph
TypesofGraphs
DirectedGraph(Digraph) WeightedDigraph
TypesofGraphs
Mul2graph MixedGraph
Loom
(+GraphsAlgorithmsVisualiza2on)
• UndirectedGraph• Digraph• WeightedGraph
• Mul2graph
• FlyGraph• nodes+successorsedges
• successors+startnodes+edges
Loom:SupportedGraphs
• DFS/BFS(+bidirec2onal)
Loom:GraphAlgorithms
• DFS/BFS(+bidirec2onal)• TopologicalSort
Loom:GraphAlgorithms
• DFS/BFS(+bidirec2onal)• TopologicalSort• ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)
Loom:GraphAlgorithms
• DFS/BFS(+bidirec2onal)• TopologicalSort• ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)
• Cliques&SCC(Bron-Kerbosch,Kosaraju)
Loom:GraphAlgorithms
• DFS/BFS(+bidirec2onal)• TopologicalSort• ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)
• Cliques&SCC(Bron-Kerbosch,Kosaraju)• Density(edges/nodes)• LonerNodes
Loom:GraphAlgorithms
• DFS/BFS(+bidirec2onal)• TopologicalSort• ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)
• Cliques&SCC(Bron-Kerbosch,Kosaraju)• Density(edges/nodes)• LonerNodes• Greedy&TwoColoring
Loom:GraphAlgorithms
• DFS/BFS(+bidirec2onal)• TopologicalSort• ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)
• Cliques&SCC(Bron-Kerbosch,Kosaraju)• Density(edges/nodes)• LonerNodes• Greedy&TwoColoring• Max-Flow&MinSpanTree
Loom:GraphAlgorithms
Loom:GraphVisualiza2ons
Loom:IntheWild
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
BeyondLoom'sprotocols:• mixedgraphs• mul2graphs• mul2pleweightsperedge• changeableweights
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
• VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
• VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)
– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
• VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)
– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
• VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)
– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)
• lein-voom
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
• VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)
– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)
• lein-voom• ClojureforDataScience
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
• VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)
– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)
• lein-voom• ClojureforDataScience
Loom&Friends
• Ubergraph(github.com/Engelberg/ubergraph)
• VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)
– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)
• lein-voom• ClojureforDataScience• Researchprojects&produc2onworkflows
EVOLUTIONOFLOOM
Evolu2onofLoom:2meline
• 2010–incep2onofLoombyJus2nKramer
jkk
Evolu2onofLoom:2meline
• 2010–incep2onofLoombyJus2nKramer• 2013–maintainedbyAysyluGreenberg
aysylu
Evolu2onofLoom:2meline
• 2010–incep2onofLoombyJus2nKramer• 2013–maintainedbyAysyluGreenberg• 2013–2016–talksonLoom
2013 2014 2015
Evolu2onofLoom:2meline
• 2010–incep2onofLoombyJus2nKramer• 2013–maintainedbyAysyluGreenberg• 2013–2016–talksonLoom• 2014–...(repeatedly #(swap! contributorsinc))
Evolu2onofLoom:2meline
• 2010–incep2onofLoombyJus2nKramer• 2013–maintainedbyAysyluGreenberg• 2013–2016–talksonLoom• 2014–...(repeatedly #(swap! contributorsinc)) • 2016–maintenanceledbyPaulSnyder
pataprogramming
Evolu2onofLoom:morealgorithms
• A*• pre-edge-traverseandpost-edge-traverse• Bron-Kerbosch(maximalcliques)• Greedycoloring• DAGancestry(+genera2vetes2ng!)• Bidirec2onalBFS• Prim’sminimumspanningtree• Dataflowanalysisframework
Evolu2onofLoom:Performance
• Algorithmicimprovements• Memoryusageimprovements• Useoftransients
Evolu2onofLoom:API
• SeparateprotocolforEditableGraph• Supportformul2graphs• Protocolcleanup:par2alfunc2onsremoval
Evolu2onofLoom:Tes2ng&more
• Genera2vetes2ng• loom.compliance-tester• ClojurescriptsupportenabledandClojure1.7• (incdependencies):– org.clojure/data.priority-mapforPrim’sMST
• NolongerrequireClojurecontrib
MAINTAININGOPENSOURCEPROJECT
LIFE
MaintainingOpenSourceProject:PullRequests
• Development2mevsreviewofPRs
MaintainingOpenSourceProject:PullRequests
• Development2mevsreviewofPRs• Qualityvsquan2tyofcontribu2ons
MaintainingOpenSourceProject:PullRequests
• Development2mevsreviewofPRs• Qualityvsquan2tyofcontribu2ons• Consistencyofcodebaseover2me
lein eastwood
lein bikeshed
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– Mailinglist:groups.google.com/forum/#!forum/loom-clj
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– Mailinglist:groups.google.com/forum/#!forum/loom-clj
– Twiker:@loom_clj
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– Mailinglist:groups.google.com/forum/#!forum/loom-clj
– Twiker:@loom_clj
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– @loom_clj&loom-cljmailinglist
• Talksondesign,structureandcontent
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– @loom_clj&loom-cljmailinglist
• Talksondesign,structureandcontent
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– @loom_clj&loom-cljmailinglist
• Talksondesign,structureandcontent• Backwards-compa2bilityofreleases
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– @loom_clj&loom-cljmailinglist
• Talksondesign,structureandcontent• Backwards-compa2bilityofreleases• Languageswitchoverhead
MaintainingOpenSourceProject:BeyondPRs
• ReleasesviaClojars:clojars.org/aysylu/loom• APIdocumenta2onviaCodox:aysy.lu/loom/• Con2nuousintegra2ontestsviaTravisCI• Newsandannouncements:– @loom_clj&loom-cljmailinglist
• Talksondesign,structureandcontent• Backwards-compa2bilityofreleases• Languageswitchoverhead• Balancingwithotherresponsibili2es
References
• N.Marz,“HistoryofApacheStormandlessonslearned”!"
• A.Bard,“Buildingagraph-poweredsugges2onengineforredditlaterwithLoom”!"
• GorillaREPLforLoomworksheet!"
• H.Garner,“ClojureforDataScience”!• ImagesfromWikipedia
hkps://adambard.com/blog/building-a-sugges2on-engine-for-redditlater/
ThankstoLoomcontributors• JohnSzakmeister• RobertLachlan• StephenKocken2edt• AlexEngelberg• KevinDowney• AaronBrooks• MarkEngelberg• DanielShapero• DanielGregoire• TomHancock• HorstDuchêne• AshtonKemerling• Jus2nKramer
• JonyHudson• GuruDevanla• JoshuaDavey• SungPae• FrançoisRey• GeorgiShopov• MakRevelle• ZackMaril• DanielCompton• ReidDMcKenzie• ZTO• AysyluGreenberg• PaulSnyder
Loom’s Vision
TheGraphLibraryinClojure
github.com/aysylu/loom
(+(years2))
AysyluGreenberg
April15,2016
@aysylu22