SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Language Composition
A Case Study in Cross-Language Tracing

Edd Barrett

Carl
Friedrich
Bolz

Laurence
Tratt

Naveneetha
Krishnan
Vasudevan

Lukas
Diekmann

Software Development Team
2013-11-13
1 / 25

http://soft-dev.org/
Life is Good

2 / 25

http://soft-dev.org/
Life is Good

3D Engine
2 / 25

http://soft-dev.org/
Life is Good

Mobile App

2 / 25

http://soft-dev.org/
Life is Good

Quick Script

2 / 25

http://soft-dev.org/
That is, until...
// A load of Android Java code...
// find pairs where i + j < 10
Arraylist<int> result = new ArrayList();
for (int i : ints1) {
for (int j : ints2) {
if (i + j < 10) {
ArrayList<int> n = new ArrayList();
n.add(i);
n.add(j);
result.add(n);
}
}
}
// More Android Java code...
3 / 25

http://soft-dev.org/
That is, until...
// A load of Android Java code...

# find pairs where i + j < 10 in *Python*
result = [
(i, j) for i in ints1 for j in ints2
if i + j < 10
]

// More Android Java code...
3 / 25

http://soft-dev.org/
Or until...
# Some Python code...
if first == 1:
if second == 1:
return 999
elif second == 2:
return 666
else:
raise TrollException("naughty")
elif first == 2:
if second == 1:
return 1337
elif second == 2:
return 42
else:
raise TrollException("naughty")
else:
raise TrollException("naughty")
# More Python code...
4 / 25

http://soft-dev.org/
Or until...

# Some Python code...
(* Much easier to use pattern matching from functional
world, e.g. Ocaml *)
match (first, second) with
| (1, 1) -> 999
| (1, 2) -> 666
| (2, 1) -> 1337
| (2, 2) -> 42
| _ -> raise (TrollException "naughty");;
# More Python code...

4 / 25

http://soft-dev.org/
So what is my point?

THE POINT:

5 / 25

http://soft-dev.org/
So what is my point?

THE POINT:

PL Wars!
5 / 25

http://soft-dev.org/
So what is my point?

THE POINT:

PL Wars!
5 / 25

http://soft-dev.org/
So what is my point?

THE POINT:

It would be sweet to compose
programming languages.

5 / 25

http://soft-dev.org/
Language Composition

PL X
PL Z
PL Y

6 / 25

http://soft-dev.org/
Not a New Idea

Existing composition methods:
Poor syntactic integration.
Stringly-typed.

Languages not born equal.
One language hosts the other.

Poor performance
No cross-language optimisations.

Too much engineering effort.
7 / 25

http://soft-dev.org/
What do we want from a language
composition?

8 / 25

http://soft-dev.org/
What do we want from a language composition?

High performance
PL
>>>
9 / 25

http://soft-dev.org/
What do we want from a language composition?

Good syntactic integration
pl x
pl z

pl y

9 / 25

http://soft-dev.org/
What do we want from a language composition?

Little effort

<
9 / 25

http://soft-dev.org/
Breaking down the problem

10 / 25

http://soft-dev.org/
Breaking Down the Problem

PL X
PL Z
PL Y

11 / 25

http://soft-dev.org/
Breaking Down the Problem

syntax

PL X
syntax

runtime

PL Z
syntax

runtime

PL Y
runtime

11 / 25

http://soft-dev.org/
Challenges: Syntactic Composition

12 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

13 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

PL X
<program>
for (j : js) {
doStuff();
}
.
.
.

13 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

Parsing
PL X
<program>
for (j : js) {
doStuff();
}
.
.
.

13 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

Parsing
PL X
<program>
Parse Tree

for (j : js) {
doStuff();
}
.
.
.

13 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

14 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

PL Y
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

14 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

PL Y
<grammar>

PL Z
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

expr::= ...
term::= ...
| ...
| ...
func ::= ...

14 / 25

http://soft-dev.org/
Parsing

PL X
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

PL Y
<grammar>

AMBI

GUOU
S

PL Z
<grammar>
expr::= ...
term::= ...
| ...
| ...
func ::= ...

expr::= ...
term::= ...
| ...
| ...
func ::= ...

14 / 25

http://soft-dev.org/
Parsing

PL Z
<grammar>
AM

expr::= ...
term::= ...
| ...
| ...
func ::= ...

BI
GU
OU
S

PL Z
<program>

Parsing

for (j : js) {
doStuff();
}
.
.
.

14 / 25

?
http://soft-dev.org/
Challenges: Runtime Composition

15 / 25

http://soft-dev.org/
Challenges: Runtime Composition

PL X

PL Y

Interpreter

Interpreter

C/C++
16 / 25

http://soft-dev.org/
Challenges: Runtime Composition

PL X
To

o

Interpreter

PL Y

sl Interpreter
ow

C/C++
16 / 25

http://soft-dev.org/
Challenges: Runtime Composition
JIT Compiler

JIT Compiler

PL X

PL Y

Interpreter

Interpreter

C/C++
16 / 25

http://soft-dev.org/
Challenges: Runtime Composition
JIT Compiler

JIT Compiler

PL e Too
X
n

PL Y

gi

mu Interpreter
ne ch
er
in
g

Interpreter

C/C++
16 / 25

http://soft-dev.org/
Challenges: Runtime Composition

PL X

PL Y

Interpreter

Interpreter

JVM/CLR
16 / 25

JIT Compiler

http://soft-dev.org/
Challenges: Runtime Composition

fo Poo
r
r
dy pe
na
Interpreter rfo
Interpreter
mi
rm
c
la anc
ng e
ua
ge
s
JIT Compiler

PL X

PL Y

JVM/CLR
16 / 25

http://soft-dev.org/
Our Proposed Solution

17 / 25

http://soft-dev.org/
Proposed solution

Meta-tracing + Language Boxes

18 / 25

http://soft-dev.org/
Meta-tracing

Meta-tracing

19 / 25

http://soft-dev.org/
PL
Interpreter

Meta-tracing

Meta-tracing

20 / 25

PL
Interpreter
Tracing JIT

http://soft-dev.org/
PL X

PL Y

Interpreters

Glue

Meta-tracing
RPython

Meta-tracing

20 / 25

PL Z
Interpreter
Tracing JIT

http://soft-dev.org/
PL X

PL Y

Meta-tracing

Meta-tracing

PL Z
Good perfo
rmance
Interpreters

Glue

20 / 25

Interpreter
Tracing JIT

http://soft-dev.org/
PL X

PL Y

Meta-tracing

Meta-tracing

PL Z
Good perfo
rmance
Interpreters

Glue

Interpreter
Tracing JIT

Little effort

20 / 25

http://soft-dev.org/
Meta-tracing

Language Boxes

21 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

22 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

Begin writing Java code
for (string s :

22 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

for (string s :

Open SQL language box

22 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

Write SQL code
for (string s :

SELECT * FROM tbl WHERE

22 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

SELECT * FROM tbl WHERE
name = this.name;) {

for (string s :

Java code

22 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

Good Syntact
ic Integrati
on

SELECT * FROM tbl WHERE
name = this.name;) {

for (string s :

Java code

22 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

Good Syntact
ic Integrati
on

SELECT * FROM tbl WHERE
name = this.name;) {
y

for (string s :

Avoids Ambiguit
Java code

22 / 25

http://soft-dev.org/
Language Boxes Editor
Suppose we want to write a Java + SQL program.

Good Syntact
ic Integrati
on
NeedSELECT omFROM tbl WHERE
for (string s : s Cust *
Editor
name = this.name;) {
Avoids Ambiguity
Java code

22 / 25

http://soft-dev.org/
Our First Composition

23 / 25

http://soft-dev.org/
Unipycation

Interpreters

Glue

Unipycation

Prolog

RPython

Python

Interpreter
Tracing JIT

+ our language box editor (eco)
24 / 25

http://soft-dev.org/
Thanks

SELECT * FROM tbl WHERE
name = this.name;) {

for (string s :

Java code

Interpreters

Glue

Unipycation

Prolog

RPython

Python

Interpreter
Tracing JIT

http://soft-dev.org
25 / 25

http://soft-dev.org/

Mais conteúdo relacionado

Mais procurados

Golang 101
Golang 101Golang 101
Golang 101宇 傅
 
Introduction to llvm
Introduction to llvmIntroduction to llvm
Introduction to llvmTao He
 
Python Intro For Managers
Python Intro For ManagersPython Intro For Managers
Python Intro For ManagersAtul Shridhar
 
Developing Cross Platform Applications with Golang
Developing Cross Platform Applications with GolangDeveloping Cross Platform Applications with Golang
Developing Cross Platform Applications with GolangErhan Yakut
 
The why and how of moving to php 7
The why and how of moving to php 7The why and how of moving to php 7
The why and how of moving to php 7Wim Godden
 
The why and how of moving to php 8
The why and how of moving to php 8The why and how of moving to php 8
The why and how of moving to php 8Wim Godden
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming LanguagesIshan Monga
 
Programming languages
Programming languagesProgramming languages
Programming languagesSimon Mui
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overviewagorolabs
 
Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language Ganesh Samarthyam
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageGanesh Samarthyam
 
Diego container scheduler
Diego container schedulerDiego container scheduler
Diego container schedulerHristo Iliev
 
1 introduction to c programming language
1 introduction to c programming language1 introduction to c programming language
1 introduction to c programming languageNarendra Soni
 
Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languagesNitin Kumar Kashyap
 
21. Java High Quality Programming Code
21. Java High Quality Programming Code21. Java High Quality Programming Code
21. Java High Quality Programming CodeIntro C# Book
 

Mais procurados (20)

Golang 101
Golang 101Golang 101
Golang 101
 
Introduction to llvm
Introduction to llvmIntroduction to llvm
Introduction to llvm
 
Programing Language
Programing LanguagePrograming Language
Programing Language
 
Python Intro For Managers
Python Intro For ManagersPython Intro For Managers
Python Intro For Managers
 
Developing Cross Platform Applications with Golang
Developing Cross Platform Applications with GolangDeveloping Cross Platform Applications with Golang
Developing Cross Platform Applications with Golang
 
The why and how of moving to php 7
The why and how of moving to php 7The why and how of moving to php 7
The why and how of moving to php 7
 
The why and how of moving to php 8
The why and how of moving to php 8The why and how of moving to php 8
The why and how of moving to php 8
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overview
 
Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
Concurrency patterns
Concurrency patternsConcurrency patterns
Concurrency patterns
 
Diego container scheduler
Diego container schedulerDiego container scheduler
Diego container scheduler
 
UnDeveloper Studio
UnDeveloper StudioUnDeveloper Studio
UnDeveloper Studio
 
1 introduction to c programming language
1 introduction to c programming language1 introduction to c programming language
1 introduction to c programming language
 
Unit 2 l1
Unit 2 l1Unit 2 l1
Unit 2 l1
 
Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languages
 
21. Java High Quality Programming Code
21. Java High Quality Programming Code21. Java High Quality Programming Code
21. Java High Quality Programming Code
 
Php Vs Phyton
Php Vs PhytonPhp Vs Phyton
Php Vs Phyton
 

Destaque

General ideas of Language Acquisition
General ideas of Language AcquisitionGeneral ideas of Language Acquisition
General ideas of Language AcquisitionAbdul Momin
 
First language acquisition
First language acquisitionFirst language acquisition
First language acquisitionROGIL
 
First language acquisition
First language acquisitionFirst language acquisition
First language acquisitionMilena Salinas
 
Factors affecting first language acquisition
Factors affecting first language acquisition Factors affecting first language acquisition
Factors affecting first language acquisition Al Alva
 
Chomskyan linguistics 2
 Chomskyan linguistics 2 Chomskyan linguistics 2
Chomskyan linguistics 2Hina Honey
 
Noam chomsky's theory by summer gomez
Noam chomsky's theory by summer gomezNoam chomsky's theory by summer gomez
Noam chomsky's theory by summer gomezSummer Gomher
 
Krashen and Chomsky
Krashen and ChomskyKrashen and Chomsky
Krashen and Chomskyxi11um
 
Nativist theory
Nativist theoryNativist theory
Nativist theorySan Juan
 
Chomsky’s and skinner’s theory of language acquisition
Chomsky’s and skinner’s theory of language acquisitionChomsky’s and skinner’s theory of language acquisition
Chomsky’s and skinner’s theory of language acquisitionNur Khalidah
 
Universal Grammar and Language Acquisition Device
Universal Grammar and Language Acquisition DeviceUniversal Grammar and Language Acquisition Device
Universal Grammar and Language Acquisition DeviceGeraldine Lara
 

Destaque (12)

General ideas of Language Acquisition
General ideas of Language AcquisitionGeneral ideas of Language Acquisition
General ideas of Language Acquisition
 
First language acquisition
First language acquisitionFirst language acquisition
First language acquisition
 
First language acquisition
First language acquisitionFirst language acquisition
First language acquisition
 
Factors affecting first language acquisition
Factors affecting first language acquisition Factors affecting first language acquisition
Factors affecting first language acquisition
 
Chomskyan linguistics 2
 Chomskyan linguistics 2 Chomskyan linguistics 2
Chomskyan linguistics 2
 
Language Acquisition Device; Noam Chomsky
Language Acquisition Device; Noam ChomskyLanguage Acquisition Device; Noam Chomsky
Language Acquisition Device; Noam Chomsky
 
Noam chomsky's theory by summer gomez
Noam chomsky's theory by summer gomezNoam chomsky's theory by summer gomez
Noam chomsky's theory by summer gomez
 
Krashen and Chomsky
Krashen and ChomskyKrashen and Chomsky
Krashen and Chomsky
 
Nativist theory
Nativist theoryNativist theory
Nativist theory
 
Vygotsky and language development
Vygotsky and language developmentVygotsky and language development
Vygotsky and language development
 
Chomsky’s and skinner’s theory of language acquisition
Chomsky’s and skinner’s theory of language acquisitionChomsky’s and skinner’s theory of language acquisition
Chomsky’s and skinner’s theory of language acquisition
 
Universal Grammar and Language Acquisition Device
Universal Grammar and Language Acquisition DeviceUniversal Grammar and Language Acquisition Device
Universal Grammar and Language Acquisition Device
 

Semelhante a Digibury: Edd Barrett - A Case Study in Cross-Language Tracing

Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010Satish Verma
 
Open Developer Platform: What Is It and Why Should I Care? Maurizio Pillitu
Open Developer Platform: What Is It and Why Should I Care? Maurizio PillituOpen Developer Platform: What Is It and Why Should I Care? Maurizio Pillitu
Open Developer Platform: What Is It and Why Should I Care? Maurizio PillituSymphony Software Foundation
 
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Svetlin Nakov
 
Introduction to Data Mining with R and Data Import/Export in R
Introduction to Data Mining with R and Data Import/Export in RIntroduction to Data Mining with R and Data Import/Export in R
Introduction to Data Mining with R and Data Import/Export in RYanchang Zhao
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introductionPeter Gfader
 
JavaScript Tools Overview
JavaScript Tools OverviewJavaScript Tools Overview
JavaScript Tools OverviewScott Povlot
 
Python in programming competitions
Python in programming competitionsPython in programming competitions
Python in programming competitionsSergey Dymchenko
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldLorna Mitchell
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKJosé Paumard
 
Ruby In Enterprise Development
Ruby In Enterprise DevelopmentRuby In Enterprise Development
Ruby In Enterprise DevelopmentRobbin Fan
 
Sinatra and friends
Sinatra and friendsSinatra and friends
Sinatra and friendsJiang Wu
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech TalkRed Hat Developers
 
Openmeetings
OpenmeetingsOpenmeetings
Openmeetingshs1250
 
R and Python, A Code Demo
R and Python, A Code DemoR and Python, A Code Demo
R and Python, A Code DemoVineet Jaiswal
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Crystal Language
 

Semelhante a Digibury: Edd Barrett - A Case Study in Cross-Language Tracing (20)

Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010
 
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling�Clotho: Saving Programs from Malformed Strings and Incorrect String-handling�
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling
 
Open Developer Platform: What Is It and Why Should I Care? Maurizio Pillitu
Open Developer Platform: What Is It and Why Should I Care? Maurizio PillituOpen Developer Platform: What Is It and Why Should I Care? Maurizio Pillitu
Open Developer Platform: What Is It and Why Should I Care? Maurizio Pillitu
 
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
 
Introduction to Data Mining with R and Data Import/Export in R
Introduction to Data Mining with R and Data Import/Export in RIntroduction to Data Mining with R and Data Import/Export in R
Introduction to Data Mining with R and Data Import/Export in R
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introduction
 
JavaScript Tools Overview
JavaScript Tools OverviewJavaScript Tools Overview
JavaScript Tools Overview
 
Python in programming competitions
Python in programming competitionsPython in programming competitions
Python in programming competitions
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
 
Ruby In Enterprise Development
Ruby In Enterprise DevelopmentRuby In Enterprise Development
Ruby In Enterprise Development
 
Sinatra and friends
Sinatra and friendsSinatra and friends
Sinatra and friends
 
11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk11 CLI tools every developer should know | DevNation Tech Talk
11 CLI tools every developer should know | DevNation Tech Talk
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
Openmeetings
OpenmeetingsOpenmeetings
Openmeetings
 
R and Python, A Code Demo
R and Python, A Code DemoR and Python, A Code Demo
R and Python, A Code Demo
 
Origins of Serverless
Origins of ServerlessOrigins of Serverless
Origins of Serverless
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 

Mais de Lizzie Hodgson

Tech and Homelessness - Introducing The Hope Hub
Tech and Homelessness - Introducing The Hope HubTech and Homelessness - Introducing The Hope Hub
Tech and Homelessness - Introducing The Hope HubLizzie Hodgson
 
ThinkNation BDF: 7th sense
ThinkNation BDF: 7th senseThinkNation BDF: 7th sense
ThinkNation BDF: 7th senseLizzie Hodgson
 
ThinkNation BDF: The Vendi-Bin
ThinkNation BDF: The Vendi-BinThinkNation BDF: The Vendi-Bin
ThinkNation BDF: The Vendi-BinLizzie Hodgson
 
ThinkNation BDF: The Hope Hub
ThinkNation BDF: The Hope HubThinkNation BDF: The Hope Hub
ThinkNation BDF: The Hope HubLizzie Hodgson
 
ThinkNation BDF: Mental Health Tech Interactive Trail
ThinkNation BDF: Mental Health Tech Interactive TrailThinkNation BDF: Mental Health Tech Interactive Trail
ThinkNation BDF: Mental Health Tech Interactive TrailLizzie Hodgson
 
ThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, BrandwatchThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, BrandwatchLizzie Hodgson
 
ThinkNation: "Women quotas in tech" Olivia Thorne Robogals
ThinkNation: "Women quotas in tech" Olivia Thorne RobogalsThinkNation: "Women quotas in tech" Olivia Thorne Robogals
ThinkNation: "Women quotas in tech" Olivia Thorne RobogalsLizzie Hodgson
 
ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...
ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...
ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...Lizzie Hodgson
 
Our complex tech future
Our complex tech futureOur complex tech future
Our complex tech futureLizzie Hodgson
 
If you love something let it go (or how to manage your inner founder mentality)
If you love something let it go (or how to manage your inner founder mentality)If you love something let it go (or how to manage your inner founder mentality)
If you love something let it go (or how to manage your inner founder mentality)Lizzie Hodgson
 
About ThinkNation 2015
About ThinkNation 2015 About ThinkNation 2015
About ThinkNation 2015 Lizzie Hodgson
 
Digibury June 2015: Howard griffin - the future of architectural visualisation
Digibury June 2015: Howard griffin - the future of architectural visualisation Digibury June 2015: Howard griffin - the future of architectural visualisation
Digibury June 2015: Howard griffin - the future of architectural visualisation Lizzie Hodgson
 
Digibury June 2015: Genetic Moo
Digibury June 2015: Genetic Moo Digibury June 2015: Genetic Moo
Digibury June 2015: Genetic Moo Lizzie Hodgson
 
Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...
Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...
Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...Lizzie Hodgson
 
Digibury April 2015 Hannah Pilbeam: A caffinated introduction to design
Digibury April 2015 Hannah Pilbeam: A caffinated introduction to designDigibury April 2015 Hannah Pilbeam: A caffinated introduction to design
Digibury April 2015 Hannah Pilbeam: A caffinated introduction to designLizzie Hodgson
 
Digibury April 2015 Rachael Case: Embrace the Fear!
Digibury April 2015 Rachael Case: Embrace the Fear!Digibury April 2015 Rachael Case: Embrace the Fear!
Digibury April 2015 Rachael Case: Embrace the Fear!Lizzie Hodgson
 
Digibury March 11 - Mike Jongbloet: Great Kick off Meetings
Digibury March 11 - Mike Jongbloet: Great Kick off MeetingsDigibury March 11 - Mike Jongbloet: Great Kick off Meetings
Digibury March 11 - Mike Jongbloet: Great Kick off MeetingsLizzie Hodgson
 
Digibury: Steve Coppin-Smith, Deeson scrum for agencies
Digibury: Steve Coppin-Smith, Deeson scrum for agenciesDigibury: Steve Coppin-Smith, Deeson scrum for agencies
Digibury: Steve Coppin-Smith, Deeson scrum for agenciesLizzie Hodgson
 
Digibury: 6-2 Design - why open source is good for us all
Digibury: 6-2 Design - why open source is good for us allDigibury: 6-2 Design - why open source is good for us all
Digibury: 6-2 Design - why open source is good for us allLizzie Hodgson
 
Digibury: SciVisum - Making your website fast - and scalable
Digibury: SciVisum - Making your website fast - and scalableDigibury: SciVisum - Making your website fast - and scalable
Digibury: SciVisum - Making your website fast - and scalableLizzie Hodgson
 

Mais de Lizzie Hodgson (20)

Tech and Homelessness - Introducing The Hope Hub
Tech and Homelessness - Introducing The Hope HubTech and Homelessness - Introducing The Hope Hub
Tech and Homelessness - Introducing The Hope Hub
 
ThinkNation BDF: 7th sense
ThinkNation BDF: 7th senseThinkNation BDF: 7th sense
ThinkNation BDF: 7th sense
 
ThinkNation BDF: The Vendi-Bin
ThinkNation BDF: The Vendi-BinThinkNation BDF: The Vendi-Bin
ThinkNation BDF: The Vendi-Bin
 
ThinkNation BDF: The Hope Hub
ThinkNation BDF: The Hope HubThinkNation BDF: The Hope Hub
ThinkNation BDF: The Hope Hub
 
ThinkNation BDF: Mental Health Tech Interactive Trail
ThinkNation BDF: Mental Health Tech Interactive TrailThinkNation BDF: Mental Health Tech Interactive Trail
ThinkNation BDF: Mental Health Tech Interactive Trail
 
ThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, BrandwatchThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
 
ThinkNation: "Women quotas in tech" Olivia Thorne Robogals
ThinkNation: "Women quotas in tech" Olivia Thorne RobogalsThinkNation: "Women quotas in tech" Olivia Thorne Robogals
ThinkNation: "Women quotas in tech" Olivia Thorne Robogals
 
ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...
ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...
ThinkNation: "Women quotas in tech" Meri Williams from Chromerose and M&S Dig...
 
Our complex tech future
Our complex tech futureOur complex tech future
Our complex tech future
 
If you love something let it go (or how to manage your inner founder mentality)
If you love something let it go (or how to manage your inner founder mentality)If you love something let it go (or how to manage your inner founder mentality)
If you love something let it go (or how to manage your inner founder mentality)
 
About ThinkNation 2015
About ThinkNation 2015 About ThinkNation 2015
About ThinkNation 2015
 
Digibury June 2015: Howard griffin - the future of architectural visualisation
Digibury June 2015: Howard griffin - the future of architectural visualisation Digibury June 2015: Howard griffin - the future of architectural visualisation
Digibury June 2015: Howard griffin - the future of architectural visualisation
 
Digibury June 2015: Genetic Moo
Digibury June 2015: Genetic Moo Digibury June 2015: Genetic Moo
Digibury June 2015: Genetic Moo
 
Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...
Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...
Digibury April 2015 Alaric King: Doing your job as a visual designer / diggin...
 
Digibury April 2015 Hannah Pilbeam: A caffinated introduction to design
Digibury April 2015 Hannah Pilbeam: A caffinated introduction to designDigibury April 2015 Hannah Pilbeam: A caffinated introduction to design
Digibury April 2015 Hannah Pilbeam: A caffinated introduction to design
 
Digibury April 2015 Rachael Case: Embrace the Fear!
Digibury April 2015 Rachael Case: Embrace the Fear!Digibury April 2015 Rachael Case: Embrace the Fear!
Digibury April 2015 Rachael Case: Embrace the Fear!
 
Digibury March 11 - Mike Jongbloet: Great Kick off Meetings
Digibury March 11 - Mike Jongbloet: Great Kick off MeetingsDigibury March 11 - Mike Jongbloet: Great Kick off Meetings
Digibury March 11 - Mike Jongbloet: Great Kick off Meetings
 
Digibury: Steve Coppin-Smith, Deeson scrum for agencies
Digibury: Steve Coppin-Smith, Deeson scrum for agenciesDigibury: Steve Coppin-Smith, Deeson scrum for agencies
Digibury: Steve Coppin-Smith, Deeson scrum for agencies
 
Digibury: 6-2 Design - why open source is good for us all
Digibury: 6-2 Design - why open source is good for us allDigibury: 6-2 Design - why open source is good for us all
Digibury: 6-2 Design - why open source is good for us all
 
Digibury: SciVisum - Making your website fast - and scalable
Digibury: SciVisum - Making your website fast - and scalableDigibury: SciVisum - Making your website fast - and scalable
Digibury: SciVisum - Making your website fast - and scalable
 

Último

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Digibury: Edd Barrett - A Case Study in Cross-Language Tracing