SlideShare a Scribd company logo
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/

More Related Content

What's hot

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 Golang
Erhan 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 7
Wim 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 8
Wim Godden
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
Ishan Monga
 
Programming languages
Programming languagesProgramming languages
Programming languages
Simon Mui
 
Computer Programming Overview
Computer Programming OverviewComputer Programming Overview
Computer Programming Overview
agorolabs
 
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 Language
Ganesh Samarthyam
 
Concurrency patterns
Concurrency patternsConcurrency patterns
Concurrency patterns
Aaron Schlesinger
 
Diego container scheduler
Diego container schedulerDiego container scheduler
Diego container scheduler
Hristo Iliev
 
UnDeveloper Studio
UnDeveloper StudioUnDeveloper Studio
UnDeveloper Studio
Christien Rioux
 
1 introduction to c programming language
1 introduction to c programming language1 introduction to c programming language
1 introduction to c programming language
Narendra Soni
 
Unit 2 l1
Unit 2 l1Unit 2 l1
Unit 2 l1
Mitali Chugh
 
Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languages
Nitin Kumar Kashyap
 
21. Java High Quality Programming Code
21. Java High Quality Programming Code21. Java High Quality Programming Code
21. Java High Quality Programming Code
Intro C# Book
 
Php Vs Phyton
Php Vs PhytonPhp Vs Phyton
Php Vs Phyton
Francis Guison
 

What's hot (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
 

Viewers also liked

General ideas of Language Acquisition
General ideas of Language AcquisitionGeneral ideas of Language Acquisition
General ideas of Language Acquisition
Abdul Momin
 
First language acquisition
First language acquisitionFirst language acquisition
First language acquisitionROGIL
 
First language acquisition
First language acquisitionFirst language acquisition
First language acquisition
Milena 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
 
Language Acquisition Device; Noam Chomsky
Language Acquisition Device; Noam ChomskyLanguage Acquisition Device; Noam Chomsky
Language Acquisition Device; Noam Chomsky
Google, Facebook, Twitter, Hotmail
 
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 theory
San 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 acquisition
Nur 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
 

Viewers also liked (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
 

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

Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010Satish Verma
 
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
Cybersecurity Education and Research Centre
 
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
Symphony Software Foundation
 
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Svetlin Nakov
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
 
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
Yanchang Zhao
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introduction
Peter 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 competitions
Sergey 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 UK
José Paumard
 
Ruby In Enterprise Development
Ruby In Enterprise DevelopmentRuby In Enterprise Development
Ruby In Enterprise Development
Robbin Fan
 
Sinatra and friends
Sinatra and friendsSinatra and friends
Sinatra and friends
Jiang 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 Talk
Red 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 Demo
Vineet Jaiswal
 
Origins of Serverless
Origins of ServerlessOrigins of Serverless
Origins of Serverless
Andrii Soldatenko
 
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
 

Similar to 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
 
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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)
 

More from 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 Hub
Lizzie Hodgson
 
ThinkNation BDF: 7th sense
ThinkNation BDF: 7th senseThinkNation BDF: 7th sense
ThinkNation BDF: 7th sense
Lizzie Hodgson
 
ThinkNation BDF: The Vendi-Bin
ThinkNation BDF: The Vendi-BinThinkNation BDF: The Vendi-Bin
ThinkNation BDF: The Vendi-Bin
Lizzie Hodgson
 
ThinkNation BDF: The Hope Hub
ThinkNation BDF: The Hope HubThinkNation BDF: The Hope Hub
ThinkNation BDF: The Hope Hub
Lizzie 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 Trail
Lizzie 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, Brandwatch
Lizzie 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 Robogals
Lizzie 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 future
Lizzie 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 design
Lizzie 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 Meetings
Lizzie 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 agencies
Lizzie 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 all
Lizzie 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 scalable
Lizzie Hodgson
 

More from 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
 

Recently uploaded

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

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