SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Downloaden Sie, um offline zu lesen
Loom and Graphs
in Clojure
github.com/aysylu/loom
Aysylu Greenberg
@aysylu22; http://aysy.lu
March 25th 2014
Graphs
Loom
Graph Algorithms + Visualization
In this Talk
Loom
Overview
Loom’s
Graph
API
Functional
Graph
Algorithms
Your
Graphs
in Loom
In this Talk
Loom
Overview
Loom’s
Graph
API
Functional
Graph
Algorithms
Your
Graphs
in Loom
Loom Overview: Supported Graphs
•  Undirected Graph
•  Directed Graph (Digraph)
•  Weighted Graph
•  FlyGraph
o  nodes + successors edges
o  successors + start nodes + edges
Loom Overview: Graph Algorithms
• DFS/BFS (+ bidirectional)
Loom Overview: Graph Algorithms
• DFS/BFS (+ bidirectional)
• Topological Sort
Loom Overview: Graph Algorithms
• DFS/BFS (+ bidirectional)
• Topological Sort
• Single Source Shortest Path (Dijkstra,
Bellman-Ford)
Loom Overview: Graph Algorithms
• DFS/BFS (+ bidirectional)
• Topological Sort
• Single Source Shortest Path (Dijkstra,
Bellman-Ford)
• Strongly Connected Components (Kosaraju)
Loom Overview: Graph Algorithms
• DFS/BFS (+ bidirectional)
• Topological Sort
• Single Source Shortest Path (Dijkstra,
Bellman-Ford)
• Strongly Connected Components (Kosaraju)
• Density (edges/nodes)
• Loner Nodes
• DFS/BFS (+ bidirectional)
• Topological Sort
• Single Source Shortest Path (Dijkstra,
Bellman-Ford)
• Strongly Connected Components (Kosaraju)
Loom Overview: Graph Algorithms
• DFS/BFS (+ bidirectional)
• Topological Sort
• Single Source Shortest Path (Dijkstra,
Bellman-Ford)
• Strongly Connected Components (Kosaraju)
• Density (edges/nodes)
• Loner Nodes
• Two Coloring
Loom Overview: Graph Algorithms
• DFS/BFS (+ bidirectional)
• Topological Sort
• Single Source Shortest Path (Dijkstra,
Bellman-Ford)
• Strongly Connected Components (Kosaraju)
• Density (edges/nodes)
• Loner Nodes
• Two Coloring
• Max-Flow (Edmonds-Karp)
Loom Overview: Visualizing Graphs
In this Talk
Loom
Overview
Loom’s
Graph
API
Functional
Graph
Algorithms
Your
Graphs
in Loom
Graph API: Representations
Graph API: Representations
• Adjacency List
{A: [B], B: [C, D], C: [], …}
Graph API: Representations
• Adjacency List
• Incidence List
{A: [e1], B: [e2, e3], …,
e1: [A, B], e2: [B, C], …}
Graph API: Representations
• Adjacency List
• Incidence List
• Adjacency Matrix
Source Destination
A B … E
A 0 1 … ∞
B ∞ 0 … ∞
… … … … …
E ∞ 1 … 0
Graph API: Representations
• Adjacency List
• Incidence List
• Adjacency Matrix
• Incidence Matrix
Nodes Edges
e1 e2 .. e5
A S N … N
B D S … D
… … … … …
E N N … S
Graph API: Representations
• Adjacency List sparse graphs
• Incidence List
• Adjacency Matrix dense graphs
• Incidence Matrix
Graph API: Graph
(defprotocol Graph!
(nodes [g])!
(edges [g])!
(has-node? [g node])!
(has-edge? [g n1 n2])!
(successors [g] [g node])!
(out-degree [g node]))!
Graph API: Digraph
(defprotocol Digraph!
(predecessors [g] [g node])!
(in-degree [g node])!
(transpose [g]))
Graph API: WeightedGraph
(defprotocol WeightedGraph!
(weight [g] [g n1 n2]))
Graph API: EditableGraph
(defprotocol EditableGraph!
(add-nodes* [g nodes])!
(add-edges* [g edges])!
(remove-nodes* [g nodes])!
(remove-edges* [g edges])!
(remove-all [g]))
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
(extend BasicEditableDigraph!
Graph …!
Digraph …!
EditableGraph …)!
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
(extend BasicEditableDigraph!
Graph!
!
!
!
!
)!
(nodes [g])!
(edges [g])!
(has-node? [g node])!
(has-edge? [g n1 n2])!
(successors [g] [g node])!
(out-degree [g node])
Protocol definition
(not valid code!)
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
(extend BasicEditableDigraph!
Graph default-graph-impl!
Digraph …!
EditableGraph …)!
Graph API: Complex Graphs
(def default-graph-impl!
{:edges!
(fn [g]!
(for [n1 (nodes g)!
n2 (successors g n1)]!
[n1 n2]))!
:nodes (fn [g] ...)!
...})!
(nodes [g])!
(edges [g])!
(has-node? [g node])!
(has-edge? [g n1
n2])!
(successors [g] [g
node])!
(out-degree [g
node])
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
(extend BasicEditableDigraph!
Graph default-graph-impl!
Digraph …!
EditableGraph …)!
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
(extend BasicEditableDigraph!
Graph default-graph-impl!
Digraph default-digraph-impl!
EditableGraph …)!
Graph API: Complex Graphs
(def default-digraph-impl!
{:transpose!
(fn [g]!
(assoc g!
:succs (:preds g)!
:preds (:succs g)))!
…})
(predecessors [g]!
! ! [g node])!
(in-degree [g node])!
(transpose [g])
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
(extend BasicEditableDigraph!
Graph default-graph-impl!
Digraph default-digraph-impl!
EditableGraph …)!
Graph API: Complex Graphs
How to create basic editable digraph?
(defrecord BasicEditableDigraph!
[nodes succs preds])!
(extend BasicEditableDigraph!
Graph default-graph-impl!
Digraph default-digraph-impl!
EditableGraph editable-graph-impl)!
In this Talk
Loom
Overview
Loom’s
Graph
API
Functional
Graph
Algorithms
Your
Graphs
in Loom
Functional Graph Algorithms:
Bellman-Ford
Functional Graph Algorithms:
Bellman-Ford
CLRS Introduction to Algorithms
Functional Graph Algorithms:
Bellman-Ford
CLRS Introduction to Algorithms
Functional Graph Algorithms:
Bellman-Ford
(defn- init-estimates!
[graph start]!
(let [nodes (disj (nodes graph) start)!
costs (interleave nodes!
(repeat 1e999M))!
paths (interleave nodes (repeat nil))]!
[(apply assoc {start 0} costs)!
(apply assoc {start nil} paths)]))
Functional Graph Algorithms:
Bellman-Ford
Functional Graph Algorithms:
Bellman-Ford
Functional Graph Algorithms:
Bellman-Ford
(defn- can-relax-edge?!
[[u v :as edge] edge-cost costs]!
(let [vd (get costs v)!
ud (get costs u)!
sum (+ ud edge-cost)]!
(> vd sum)))
Functional Graph Algorithms:
Bellman-Ford
(defn- relax-edge!
[[u v :as edge]!
uvcost!
[costs paths :as estimates]]!
(let [ud (get costs u)!
sum (+ ud uvcost)]!
(if (can-relax-edge? edge uvcost costs)!
[(assoc costs v sum)!
(assoc paths v u)]!
estimates)))
Functional Graph Algorithms:
Bellman-Ford
Functional Graph Algorithms:
Bellman-Ford
(defn- relax-edges!
[g start estimates]!
(reduce (fn [estimates [u v :as edge]]!
(relax-edge!
edge!
(weight g u v)!
! estimates))!
estimates!
(edges g)))!
Functional Graph Algorithms:
Bellman-Ford
(defn bellman-ford!
[g start]!
(let [initial-estimates (init-estimates g start)!
;relax-edges is calculated for all edges V-1 times!
[costs paths] (reduce (fn [estimates _] (relax-edges g start estimates))!
initial-estimates!
(-> g nodes count dec range))!
edges (edges g)]!
(if (some (fn [[u v :as edge]] (can-relax-edge? edge (wt g u v) costs))!
edges)!
false!
[costs!
(->> (keys paths)!
;remove vertices that are unreachable from source!
(remove #(= Double/POSITIVE_INFINITY (get costs %)))!
(reduce!
(fn [final-paths v]!
(assoc final-paths v!
; follows the parent pointers!
; to construct path from source to node v!
(loop [node v path ()]!
(if node!
(recur (get paths node) (cons node path))!
path))))!
{}))])))
Functional Graph Algorithms:
Bellman-Ford
(defn bellman-ford!
[g start]!
(let [initial-estimates (init-estimates g start)!
;relax-edges is calculated for all edges V-1 times!
[costs paths]!
(reduce!
(fn [estimates _] (relax-edges g start estimates))!
initial-estimates!
(-> g nodes count dec range))!
edges (edges g)]!
Functional Graph Algorithms:
Bellman-Ford
(if (some (fn [[u v :as edge]]!
(can-relax-edge? edge!
! ! ! ! ! (weight g u v)!
! ! ! ! ! costs))!
! ! edges)!
false!
! !;;; return paths))) !
Functional Graph Algorithms:
loom.alg-generic
• No knowledge of graph representation
• Requires only successors
o + start for DFS/BFS, topological sort, Dijkstra
o + end for BFS path
In this Talk
Loom
Overview
Loom’s
Graph
API
Functional
Graph
Algorithms
Your
Graphs
in Loom
Your Graphs in Loom
core.async
Single Static Assignment Form
Titanium-Loom
Github
And more!
Your Graphs in Loom
core.async
Single Static Assignment Form
Titanium-Loom
Github
And more!
SSA Loom
•  Single Static Assignment (SSA) form
produced by core.async
•  Generated by parse-to-state-machine
function
SSA Loom
(parse-to-state-machine!
'[(if (> (+ 1 2 x y) 0)!
(+ x 1)!
(+ x 2))])
{76
[{:value :clojure.core.async.impl.ioc-macros/
value, :id inst_4937}
{:value inst_4937, :id inst_4938}],
74
[{:refs [clojure.core/+ x 1], :id inst_4933}
{:value inst_4933, :block 76, :id inst_4934}],
73
[{:refs [clojure.core/+ x 1 2 y], :id inst_4930}
{:refs [clojure.core/> inst_4930 0], :id
inst_4931}
{:test inst_4931, :then-block 74, :else-block
75, :id inst_4932}]}}]
SSA Loom
(view (ssa->loom ssa ssa-node-fn ssa-edges-fn))
if (> (+ 1 2 x y) 0)!
V (+ x 1)!V (+ x 2)
V!
SSA Loom
(view (ssa->loom ssa ssa-node-fn ssa-edges-fn))!
!
(defn ssa->loom!
([ssa get-nodes get-edges]!
SSA Loom
(view (ssa->loom ssa ssa-nodes-fn ssa-edges-fn))!
!
(reify!
Graph!
(nodes [g] (get-nodes ssa))!
…!
(successors [g node]!
(->> edges!
(filter (fn [[n1 n2]]!
(= n1 node)))!
(map second)))!
…!
SSA Loom
(view (ssa->loom ssa ssa-nodes-fn ssa-edges-fn))!
!
Digraph!
(predecessors [g node]!
(->> edges!
(filter (fn [[n1 n2]]!
(= n2 node)))!
(map first)))!
…))
Your Graphs in Loom
core.async
Single Static Assignment Form
Titanium-Loom
Github
And more!
Titanium Loom
•  Titanium by Clojurewerkz
(titanium.clojurewerkz.org)
•  Built on top of Aurelius Titan
(thinkaurelius.github.com/titan)
•  Storage backends: Cassandra, HBase,
BerkeleyDB Java Edition
•  No graph visualization
Titanium Loom
(let [in-mem-graph!
(open {"storage.backend” "inmemory"})]!
(tg/transact!!
(let [a (nodes/create! {:name "Node A"})!
b (nodes/create! {:name "Node B"})!
c (nodes/create! {:name "Node C"})!
e1 (edges/connect! a b)!
e2 (edges/connect! b c)!
e3 (edges/connect! c a)]))!
(titanium->loom in-mem-graph))
Titanium Loom
(view graph)
Your Graphs in Loom
Titanium-Loom
core.async Single Static
Assignment Form
Github
And more!
Data Flow Analysis Framework
• Liveness analysis (dead code elimination)
• Constant propagation
• Taint analysis
• Clojure Repos + Relationships
Github: Clojure Repos + Relations
•  For each Clojure project, solve system of
equations until reaching fixed point:
Github: Clojure Repos + Relations
Quil
math.numeric-tower
Github: Clojure Repos + Relations
core.async
clojure-ring
clout > compojure
core.match
Loom’s Vision
The Graph Library in Clojure
github.com/aysylu/loom

Weitere ähnliche Inhalte

Was ist angesagt?

Digital satellite communications
Digital satellite communicationsDigital satellite communications
Digital satellite communicationsNisreen Bashar
 
Systems engineering
Systems engineeringSystems engineering
Systems engineeringhepta-sat
 
Wireless optical communication system
Wireless optical communication systemWireless optical communication system
Wireless optical communication systemvibhu25
 
A comparative study of reactive and proactive routing
A comparative study of reactive and proactive routingA comparative study of reactive and proactive routing
A comparative study of reactive and proactive routingAbhiram Subhagan
 
Fibra optica y red ftth charla
Fibra optica y red ftth charlaFibra optica y red ftth charla
Fibra optica y red ftth charlaVíctor Núñez
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby BasicsSHC
 
How to configure the logical distance of gpon
How to configure the logical distance of gponHow to configure the logical distance of gpon
How to configure the logical distance of gponHuanetwork
 
Visible light communication
Visible light communication Visible light communication
Visible light communication Alwin Poulose
 
6. QoS Concepts.pdf
6. QoS Concepts.pdf6. QoS Concepts.pdf
6. QoS Concepts.pdfyohansurya2
 
Issues in routing protocol
Issues in routing protocolIssues in routing protocol
Issues in routing protocolPradeep Kumar TS
 
Optical Fiber Communication
Optical Fiber CommunicationOptical Fiber Communication
Optical Fiber CommunicationSN Chakraborty
 
Backhaul Ppt
Backhaul PptBackhaul Ppt
Backhaul Pptwillyaoll
 
Satellite communication
Satellite communicationSatellite communication
Satellite communicationamjadtanzeel3
 
Satellite data network communication
Satellite data network communicationSatellite data network communication
Satellite data network communicationBowla
 
Gpon the technology --rev 1
Gpon the technology --rev 1Gpon the technology --rev 1
Gpon the technology --rev 1guerrid
 
Codan buc presentation 6-1
Codan buc presentation 6-1Codan buc presentation 6-1
Codan buc presentation 6-1Riyadhi Anas
 

Was ist angesagt? (20)

Digital satellite communications
Digital satellite communicationsDigital satellite communications
Digital satellite communications
 
Systems engineering
Systems engineeringSystems engineering
Systems engineering
 
Satellite payload
Satellite payloadSatellite payload
Satellite payload
 
Fiber optics
Fiber opticsFiber optics
Fiber optics
 
Wireless optical communication system
Wireless optical communication systemWireless optical communication system
Wireless optical communication system
 
WDM principles
WDM principlesWDM principles
WDM principles
 
A comparative study of reactive and proactive routing
A comparative study of reactive and proactive routingA comparative study of reactive and proactive routing
A comparative study of reactive and proactive routing
 
Fibra optica y red ftth charla
Fibra optica y red ftth charlaFibra optica y red ftth charla
Fibra optica y red ftth charla
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
 
How to configure the logical distance of gpon
How to configure the logical distance of gponHow to configure the logical distance of gpon
How to configure the logical distance of gpon
 
Visible light communication
Visible light communication Visible light communication
Visible light communication
 
6. QoS Concepts.pdf
6. QoS Concepts.pdf6. QoS Concepts.pdf
6. QoS Concepts.pdf
 
IP Multicasting
IP MulticastingIP Multicasting
IP Multicasting
 
Issues in routing protocol
Issues in routing protocolIssues in routing protocol
Issues in routing protocol
 
Optical Fiber Communication
Optical Fiber CommunicationOptical Fiber Communication
Optical Fiber Communication
 
Backhaul Ppt
Backhaul PptBackhaul Ppt
Backhaul Ppt
 
Satellite communication
Satellite communicationSatellite communication
Satellite communication
 
Satellite data network communication
Satellite data network communicationSatellite data network communication
Satellite data network communication
 
Gpon the technology --rev 1
Gpon the technology --rev 1Gpon the technology --rev 1
Gpon the technology --rev 1
 
Codan buc presentation 6-1
Codan buc presentation 6-1Codan buc presentation 6-1
Codan buc presentation 6-1
 

Andere mochten auch

Loom and Graphs in Clojure
Loom and Graphs in ClojureLoom and Graphs in Clojure
Loom and Graphs in ClojureAysylu Greenberg
 
Loom & Functional Graphs in Clojure @ LambdaConf 2015
Loom & Functional Graphs in Clojure @ LambdaConf 2015Loom & Functional Graphs in Clojure @ LambdaConf 2015
Loom & Functional Graphs in Clojure @ LambdaConf 2015Aysylu Greenberg
 
1. looms – basic concept, types
1. looms – basic concept, types1. looms – basic concept, types
1. looms – basic concept, typesPalani Rajan
 
Types of Looms and Weaves
Types of Looms and WeavesTypes of Looms and Weaves
Types of Looms and WeavesRaNa ALi HaiDer
 
Rapier loom by Vignesh Dhanabalan
Rapier loom by Vignesh DhanabalanRapier loom by Vignesh Dhanabalan
Rapier loom by Vignesh DhanabalanVignesh Dhanabalan
 
Weaving Presentation By Sukhvir Sabharwal
Weaving Presentation By Sukhvir SabharwalWeaving Presentation By Sukhvir Sabharwal
Weaving Presentation By Sukhvir SabharwalSukhvir Sabharwal
 
Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)Aysylu Greenberg
 

Andere mochten auch (12)

Loom and Graphs in Clojure
Loom and Graphs in ClojureLoom and Graphs in Clojure
Loom and Graphs in Clojure
 
Loom & Functional Graphs in Clojure @ LambdaConf 2015
Loom & Functional Graphs in Clojure @ LambdaConf 2015Loom & Functional Graphs in Clojure @ LambdaConf 2015
Loom & Functional Graphs in Clojure @ LambdaConf 2015
 
Rapier loom
Rapier loomRapier loom
Rapier loom
 
1. looms – basic concept, types
1. looms – basic concept, types1. looms – basic concept, types
1. looms – basic concept, types
 
Types of Looms and Weaves
Types of Looms and WeavesTypes of Looms and Weaves
Types of Looms and Weaves
 
Conventional loom and modern loom
Conventional loom and modern loomConventional loom and modern loom
Conventional loom and modern loom
 
Weaving, loom
Weaving, loomWeaving, loom
Weaving, loom
 
Different types of loom
Different types of loomDifferent types of loom
Different types of loom
 
Rapier loom by Vignesh Dhanabalan
Rapier loom by Vignesh DhanabalanRapier loom by Vignesh Dhanabalan
Rapier loom by Vignesh Dhanabalan
 
Weaving Presentation By Sukhvir Sabharwal
Weaving Presentation By Sukhvir SabharwalWeaving Presentation By Sukhvir Sabharwal
Weaving Presentation By Sukhvir Sabharwal
 
Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)
 
Some lessons of Weaving
Some lessons of WeavingSome lessons of Weaving
Some lessons of Weaving
 

Ähnlich wie Loom at Clojure/West

Clojure from ground up
Clojure from ground upClojure from ground up
Clojure from ground upDi Xu
 
AutoDesk
AutoDeskAutoDesk
AutoDeskSE3D
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script ProgrammingLin Yo-An
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...AdaCore
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵Wanbok Choi
 
GIS/CAD workflows with FME
GIS/CAD workflows with FMEGIS/CAD workflows with FME
GIS/CAD workflows with FMESafe Software
 
ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...
ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...
ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...Thejaka Amila Kanewala, Ph.D.
 
Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...bhargavi804095
 
The algebra of library design
The algebra of library designThe algebra of library design
The algebra of library designLeonardo Borges
 
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsGreg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsFlink Forward
 
The Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhoneThe Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhoneJames Long
 
Erlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent WorldErlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent WorldZvi Avraham
 
BUILDING WHILE FLYING
BUILDING WHILE FLYINGBUILDING WHILE FLYING
BUILDING WHILE FLYINGKamal Shannak
 
Scala + WattzOn, sitting in a tree....
Scala + WattzOn, sitting in a tree....Scala + WattzOn, sitting in a tree....
Scala + WattzOn, sitting in a tree....Raffi Krikorian
 

Ähnlich wie Loom at Clojure/West (20)

Clojure from ground up
Clojure from ground upClojure from ground up
Clojure from ground up
 
AutoDesk
AutoDeskAutoDesk
AutoDesk
 
Golang勉強会
Golang勉強会Golang勉強会
Golang勉強会
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script Programming
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
 
GIS/CAD workflows with FME
GIS/CAD workflows with FMEGIS/CAD workflows with FME
GIS/CAD workflows with FME
 
ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...
ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...
ABSTRACT GRAPH MACHINE: MODELING ORDERINGS IN ASYNCHRONOUS DISTRIBUTED-MEMORY...
 
Should i Go there
Should i Go thereShould i Go there
Should i Go there
 
Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...
 
AfterGlow
AfterGlowAfterGlow
AfterGlow
 
The algebra of library design
The algebra of library designThe algebra of library design
The algebra of library design
 
GCC, GNU compiler collection
GCC, GNU compiler collectionGCC, GNU compiler collection
GCC, GNU compiler collection
 
MATLAB & Image Processing
MATLAB & Image ProcessingMATLAB & Image Processing
MATLAB & Image Processing
 
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the CloudsGreg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
Greg Hogan – To Petascale and Beyond- Apache Flink in the Clouds
 
The Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhoneThe Scheme Language -- Using it on the iPhone
The Scheme Language -- Using it on the iPhone
 
Erlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent WorldErlang - Concurrent Language for Concurrent World
Erlang - Concurrent Language for Concurrent World
 
BUILDING WHILE FLYING
BUILDING WHILE FLYINGBUILDING WHILE FLYING
BUILDING WHILE FLYING
 
Scala + WattzOn, sitting in a tree....
Scala + WattzOn, sitting in a tree....Scala + WattzOn, sitting in a tree....
Scala + WattzOn, sitting in a tree....
 
Clojure And Swing
Clojure And SwingClojure And Swing
Clojure And Swing
 

Mehr von Aysylu Greenberg

Software Supply Chains for DevOps @ InfoQ Live 2021
Software Supply Chains for DevOps @ InfoQ Live 2021Software Supply Chains for DevOps @ InfoQ Live 2021
Software Supply Chains for DevOps @ InfoQ Live 2021Aysylu Greenberg
 
Binary Authorization in Kubernetes
Binary Authorization in KubernetesBinary Authorization in Kubernetes
Binary Authorization in KubernetesAysylu Greenberg
 
Software Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and KritisSoftware Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and KritisAysylu Greenberg
 
Software Supply Chain Observability with Grafeas and Kritis
Software Supply Chain Observability with Grafeas and KritisSoftware Supply Chain Observability with Grafeas and Kritis
Software Supply Chain Observability with Grafeas and KritisAysylu Greenberg
 
Software Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and KritisSoftware Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and KritisAysylu Greenberg
 
Zero Downtime Migrations at Scale
Zero Downtime Migrations at ScaleZero Downtime Migrations at Scale
Zero Downtime Migrations at ScaleAysylu Greenberg
 
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flightMesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flightAysylu Greenberg
 
Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)Aysylu Greenberg
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Aysylu Greenberg
 
QCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theoryQCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theoryAysylu Greenberg
 
Building a Distributed Build System at Google Scale
Building a Distributed Build System at Google ScaleBuilding a Distributed Build System at Google Scale
Building a Distributed Build System at Google ScaleAysylu Greenberg
 
Distributed systems in practice, in theory
Distributed systems in practice, in theoryDistributed systems in practice, in theory
Distributed systems in practice, in theoryAysylu Greenberg
 
Probabilistic Accuracy Bounds @ Papers We Love SF
Probabilistic Accuracy Bounds @ Papers We Love SFProbabilistic Accuracy Bounds @ Papers We Love SF
Probabilistic Accuracy Bounds @ Papers We Love SFAysylu Greenberg
 
Benchmarking (JAXLondon 2015)
Benchmarking (JAXLondon 2015)Benchmarking (JAXLondon 2015)
Benchmarking (JAXLondon 2015)Aysylu Greenberg
 
Benchmarking (DevNexus 2015)
Benchmarking (DevNexus 2015)Benchmarking (DevNexus 2015)
Benchmarking (DevNexus 2015)Aysylu Greenberg
 
Benchmarking: You're Doing It Wrong (StrangeLoop 2014)
Benchmarking: You're Doing It Wrong (StrangeLoop 2014)Benchmarking: You're Doing It Wrong (StrangeLoop 2014)
Benchmarking: You're Doing It Wrong (StrangeLoop 2014)Aysylu Greenberg
 

Mehr von Aysylu Greenberg (20)

Software Supply Chains for DevOps @ InfoQ Live 2021
Software Supply Chains for DevOps @ InfoQ Live 2021Software Supply Chains for DevOps @ InfoQ Live 2021
Software Supply Chains for DevOps @ InfoQ Live 2021
 
Binary Authorization in Kubernetes
Binary Authorization in KubernetesBinary Authorization in Kubernetes
Binary Authorization in Kubernetes
 
Software Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and KritisSoftware Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and Kritis
 
Software Supply Chain Observability with Grafeas and Kritis
Software Supply Chain Observability with Grafeas and KritisSoftware Supply Chain Observability with Grafeas and Kritis
Software Supply Chain Observability with Grafeas and Kritis
 
Software Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and KritisSoftware Supply Chain Management with Grafeas and Kritis
Software Supply Chain Management with Grafeas and Kritis
 
Zero Downtime Migrations at Scale
Zero Downtime Migrations at ScaleZero Downtime Migrations at Scale
Zero Downtime Migrations at Scale
 
Zero Downtime Migration
Zero Downtime MigrationZero Downtime Migration
Zero Downtime Migration
 
PWL Denver: Copysets
PWL Denver: CopysetsPWL Denver: Copysets
PWL Denver: Copysets
 
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flightMesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
MesosCon Asia Keynote: Replacing a Jet Engine Mid-flight
 
Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)Distributed systems in practice, in theory (JAX London)
Distributed systems in practice, in theory (JAX London)
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
 
QCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theoryQCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theory
 
Building a Distributed Build System at Google Scale
Building a Distributed Build System at Google ScaleBuilding a Distributed Build System at Google Scale
Building a Distributed Build System at Google Scale
 
(+ Loom (years 2))
(+ Loom (years 2))(+ Loom (years 2))
(+ Loom (years 2))
 
Distributed systems in practice, in theory
Distributed systems in practice, in theoryDistributed systems in practice, in theory
Distributed systems in practice, in theory
 
Probabilistic Accuracy Bounds @ Papers We Love SF
Probabilistic Accuracy Bounds @ Papers We Love SFProbabilistic Accuracy Bounds @ Papers We Love SF
Probabilistic Accuracy Bounds @ Papers We Love SF
 
Benchmarking (JAXLondon 2015)
Benchmarking (JAXLondon 2015)Benchmarking (JAXLondon 2015)
Benchmarking (JAXLondon 2015)
 
Benchmarking (DevNexus 2015)
Benchmarking (DevNexus 2015)Benchmarking (DevNexus 2015)
Benchmarking (DevNexus 2015)
 
Benchmarking (RICON 2014)
Benchmarking (RICON 2014)Benchmarking (RICON 2014)
Benchmarking (RICON 2014)
 
Benchmarking: You're Doing It Wrong (StrangeLoop 2014)
Benchmarking: You're Doing It Wrong (StrangeLoop 2014)Benchmarking: You're Doing It Wrong (StrangeLoop 2014)
Benchmarking: You're Doing It Wrong (StrangeLoop 2014)
 

Kürzlich hochgeladen

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Loom at Clojure/West