Top Banner
(+ (years 2)) Aysylu Greenberg April 15, 2016 @aysylu22
60

(+ Loom (years 2))

Jan 19, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: (+ Loom (years 2))

(+(years2))

AysyluGreenberg

April15,2016

@aysylu22

Page 2: (+ Loom (years 2))

AysyluGreenberg

@aysylu22

Page 3: (+ Loom (years 2))

TODAY

• Whatis

Page 4: (+ Loom (years 2))

TODAY

• Whatis• Evolu2onofLoom

Page 5: (+ Loom (years 2))

TODAY

• Whatis• Evolu2onofLoom• Maintainingopensourceproject

LIFE

Page 6: (+ Loom (years 2))

WHATISLOOMgithub.com/aysylu/loom

Page 7: (+ Loom (years 2))

Graphs

Page 8: (+ Loom (years 2))

GraphsinRealLife

Page 9: (+ Loom (years 2))

TypesofGraphs

SimpleGraph WeightedGraph

Page 10: (+ Loom (years 2))

TypesofGraphs

DirectedGraph(Digraph) WeightedDigraph

Page 11: (+ Loom (years 2))

TypesofGraphs

Mul2graph MixedGraph

Page 12: (+ Loom (years 2))

Loom

(+GraphsAlgorithmsVisualiza2on)

Page 13: (+ Loom (years 2))

•  UndirectedGraph•  Digraph•  WeightedGraph

•  Mul2graph

•  FlyGraph•  nodes+successorsedges

•  successors+startnodes+edges

Loom:SupportedGraphs

Page 14: (+ Loom (years 2))

•  DFS/BFS(+bidirec2onal)

Loom:GraphAlgorithms

Page 15: (+ Loom (years 2))

•  DFS/BFS(+bidirec2onal)•  TopologicalSort

Loom:GraphAlgorithms

Page 16: (+ Loom (years 2))

•  DFS/BFS(+bidirec2onal)•  TopologicalSort•  ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)

Loom:GraphAlgorithms

Page 17: (+ Loom (years 2))

•  DFS/BFS(+bidirec2onal)•  TopologicalSort•  ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)

•  Cliques&SCC(Bron-Kerbosch,Kosaraju)

Loom:GraphAlgorithms

Page 18: (+ Loom (years 2))

•  DFS/BFS(+bidirec2onal)•  TopologicalSort•  ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)

•  Cliques&SCC(Bron-Kerbosch,Kosaraju)•  Density(edges/nodes)•  LonerNodes

Loom:GraphAlgorithms

Page 19: (+ Loom (years 2))

•  DFS/BFS(+bidirec2onal)•  TopologicalSort•  ShortestPath(Dijkstra,Bellman-Ford,A*,Johnson’s)

•  Cliques&SCC(Bron-Kerbosch,Kosaraju)•  Density(edges/nodes)•  LonerNodes•  Greedy&TwoColoring

Loom:GraphAlgorithms

Page 20: (+ Loom (years 2))

•  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

Page 21: (+ Loom (years 2))

Loom:GraphVisualiza2ons

Page 22: (+ Loom (years 2))

Loom:IntheWild

Page 23: (+ Loom (years 2))

Loom&Friends

•  Ubergraph(github.com/Engelberg/ubergraph)

BeyondLoom'sprotocols:•  mixedgraphs•  mul2graphs•  mul2pleweightsperedge•  changeableweights

Page 24: (+ Loom (years 2))

Loom&Friends

•  Ubergraph(github.com/Engelberg/ubergraph)

•  VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)

Page 25: (+ Loom (years 2))

Loom&Friends

•  Ubergraph(github.com/Engelberg/ubergraph)

•  VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)

– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)

Page 26: (+ Loom (years 2))

Loom&Friends

•  Ubergraph(github.com/Engelberg/ubergraph)

•  VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)

– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)

Page 27: (+ Loom (years 2))

Loom&Friends

•  Ubergraph(github.com/Engelberg/ubergraph)

•  VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)

– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)

•  lein-voom

Page 28: (+ Loom (years 2))

Loom&Friends

•  Ubergraph(github.com/Engelberg/ubergraph)

•  VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)

– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)

•  lein-voom•  ClojureforDataScience

Page 29: (+ Loom (years 2))

Loom&Friends

•  Ubergraph(github.com/Engelberg/ubergraph)

•  VisualizingLoomgraphs– ProtoREPLCharts(github.com/jasongilman/proto-repl-charts)

– GorillaREPL(github.com/JonyEpsilon/loom-gorilla)

•  lein-voom•  ClojureforDataScience

Page 30: (+ Loom (years 2))

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

Page 31: (+ Loom (years 2))

EVOLUTIONOFLOOM

Page 32: (+ Loom (years 2))

Evolu2onofLoom:2meline

•  2010–incep2onofLoombyJus2nKramer

jkk

Page 33: (+ Loom (years 2))

Evolu2onofLoom:2meline

•  2010–incep2onofLoombyJus2nKramer•  2013–maintainedbyAysyluGreenberg

aysylu

Page 34: (+ Loom (years 2))

Evolu2onofLoom:2meline

•  2010–incep2onofLoombyJus2nKramer•  2013–maintainedbyAysyluGreenberg•  2013–2016–talksonLoom

2013 2014 2015

Page 35: (+ Loom (years 2))

Evolu2onofLoom:2meline

•  2010–incep2onofLoombyJus2nKramer•  2013–maintainedbyAysyluGreenberg•  2013–2016–talksonLoom•  2014–...(repeatedly #(swap! contributorsinc))

Page 36: (+ Loom (years 2))

Evolu2onofLoom:2meline

•  2010–incep2onofLoombyJus2nKramer•  2013–maintainedbyAysyluGreenberg•  2013–2016–talksonLoom•  2014–...(repeatedly #(swap! contributorsinc)) •  2016–maintenanceledbyPaulSnyder

pataprogramming

Page 37: (+ Loom (years 2))

Evolu2onofLoom:morealgorithms

•  A*•  pre-edge-traverseandpost-edge-traverse•  Bron-Kerbosch(maximalcliques)•  Greedycoloring•  DAGancestry(+genera2vetes2ng!)•  Bidirec2onalBFS•  Prim’sminimumspanningtree•  Dataflowanalysisframework

Page 38: (+ Loom (years 2))

Evolu2onofLoom:Performance

•  Algorithmicimprovements•  Memoryusageimprovements•  Useoftransients

Page 39: (+ Loom (years 2))

Evolu2onofLoom:API

•  SeparateprotocolforEditableGraph•  Supportformul2graphs•  Protocolcleanup:par2alfunc2onsremoval

Page 40: (+ Loom (years 2))

Evolu2onofLoom:Tes2ng&more

•  Genera2vetes2ng•  loom.compliance-tester•  ClojurescriptsupportenabledandClojure1.7•  (incdependencies):– org.clojure/data.priority-mapforPrim’sMST

•  NolongerrequireClojurecontrib

Page 41: (+ Loom (years 2))

MAINTAININGOPENSOURCEPROJECT

LIFE

Page 42: (+ Loom (years 2))

MaintainingOpenSourceProject:PullRequests

•  Development2mevsreviewofPRs

Page 43: (+ Loom (years 2))

MaintainingOpenSourceProject:PullRequests

•  Development2mevsreviewofPRs•  Qualityvsquan2tyofcontribu2ons

Page 44: (+ Loom (years 2))

MaintainingOpenSourceProject:PullRequests

•  Development2mevsreviewofPRs•  Qualityvsquan2tyofcontribu2ons•  Consistencyofcodebaseover2me

lein eastwood

lein bikeshed

Page 45: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom

Page 46: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/

Page 47: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI

Page 48: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– Mailinglist:groups.google.com/forum/#!forum/loom-clj

Page 49: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– Mailinglist:groups.google.com/forum/#!forum/loom-clj

– Twiker:@loom_clj

Page 50: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– Mailinglist:groups.google.com/forum/#!forum/loom-clj

– Twiker:@loom_clj

Page 51: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– @loom_clj&loom-cljmailinglist

•  Talksondesign,structureandcontent

Page 52: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– @loom_clj&loom-cljmailinglist

•  Talksondesign,structureandcontent

Page 53: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– @loom_clj&loom-cljmailinglist

•  Talksondesign,structureandcontent•  Backwards-compa2bilityofreleases

Page 54: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– @loom_clj&loom-cljmailinglist

•  Talksondesign,structureandcontent•  Backwards-compa2bilityofreleases•  Languageswitchoverhead

Page 55: (+ Loom (years 2))

MaintainingOpenSourceProject:BeyondPRs

•  ReleasesviaClojars:clojars.org/aysylu/loom•  APIdocumenta2onviaCodox:aysy.lu/loom/•  Con2nuousintegra2ontestsviaTravisCI•  Newsandannouncements:– @loom_clj&loom-cljmailinglist

•  Talksondesign,structureandcontent•  Backwards-compa2bilityofreleases•  Languageswitchoverhead•  Balancingwithotherresponsibili2es

Page 56: (+ Loom (years 2))

References

•  N.Marz,“HistoryofApacheStormandlessonslearned”!"

•  A.Bard,“Buildingagraph-poweredsugges2onengineforredditlaterwithLoom”!"

•  GorillaREPLforLoomworksheet!"

•  H.Garner,“ClojureforDataScience”!•  ImagesfromWikipedia

Page 57: (+ Loom (years 2))

hkps://adambard.com/blog/building-a-sugges2on-engine-for-redditlater/

Page 58: (+ Loom (years 2))

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

Page 59: (+ Loom (years 2))

Loom’s Vision

TheGraphLibraryinClojure

github.com/aysylu/loom

Page 60: (+ Loom (years 2))

(+(years2))

AysyluGreenberg

April15,2016

@aysylu22