going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1...

38
going Native Guille Polito Rocha Amaya viernes 1 de noviembre de 13

Transcript of going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1...

Page 1: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

����

going

NativeGuille PolitoRocha Amaya

viernes 1 de noviembre de 13

Page 2: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

2

Relational database suite

viernes 1 de noviembre de 13

Page 3: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

A database driver...

viernes 1 de noviembre de 13

Page 4: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

One (C) API to rule them ALL

viernes 1 de noviembre de 13

Page 5: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

GlorpThe ORM

viernes 1 de noviembre de 13

Page 6: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

PhoseydonSome scaffolding tools

viernes 1 de noviembre de 13

Page 7: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Or get the database schema...

viernes 1 de noviembre de 13

Page 8: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

But...the world is not always pink

nor shinynor sweet

viernes 1 de noviembre de 13

Page 9: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Deploy

BurdeN!!!

viernes 1 de noviembre de 13

Page 10: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Backend Lib

FFI

viernes 1 de noviembre de 13

Page 11: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

FFI is blockingBOOOOOOO

(buuuuu)

viernes 1 de noviembre de 13

Page 12: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

FFI is 32 bitsAnd OSs go 64 bits

viernes 1 de noviembre de 13

Page 13: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Also we were using the old FFI

viernes 1 de noviembre de 13

Page 14: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

is another (C) library to install and setup

viernes 1 de noviembre de 13

Page 15: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Compile this, compile that, compile compile comp...

viernes 1 de noviembre de 13

Page 16: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

And the resolution of C libraries is like this in MacOSX

viernes 1 de noviembre de 13

Page 17: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

And like that in Unix

viernes 1 de noviembre de 13

Page 18: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

And in w i n d o w z e ...

viernes 1 de noviembre de 13

Page 19: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

ARghH!viernes 1 de noviembre de 13

Page 20: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

We can do better!

viernes 1 de noviembre de 13

Page 21: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Move the more code we can to

viernes 1 de noviembre de 13

Page 22: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

go

NativeBoost

viernes 1 de noviembre de 13

Page 23: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

There are drivers available

fully in

SmalltalkGod invented polymorphism for something!

viernes 1 de noviembre de 13

Page 24: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Avoid extra libraries

viernes 1 de noviembre de 13

Page 25: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

NB-FFIonly when you can’t

(Oracle, cof cof)

viernes 1 de noviembre de 13

Page 26: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

26

(GSOC 13’)

The Main Idea:Attack the deploy burden

viernes 1 de noviembre de 13

Page 27: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

27

(GSOC 13’)

NBFFI + TalkFFIGenerating NBFFI bindings automatically

viernes 1 de noviembre de 13

Page 28: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

28

(GSOC 13’)

Step 1Generate OpenDBX bindings

To keep backward compatibility

viernes 1 de noviembre de 13

Page 29: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

29

(GSOC 13’)

Currently (still ongoing)Oracle bindings + building on top

To avoid OpenDBX

viernes 1 de noviembre de 13

Page 30: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

automatize all we can

viernes 1 de noviembre de 13

Page 31: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

ContinuousIntegration

Thanks

viernes 1 de noviembre de 13

Page 32: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

>100Tests for the opendbx driver

viernes 1 de noviembre de 13

Page 33: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

glorp tests

>870viernes 1 de noviembre de 13

Page 34: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

Buildevery single day

viernes 1 de noviembre de 13

Page 35: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

We need

to use it

youviernes 1 de noviembre de 13

Page 36: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

And to contribute :)

viernes 1 de noviembre de 13

Page 37: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

dbxtalk.smallworks.com.ar

viernes 1 de noviembre de 13

Page 38: going Rocha Amaya Guille Polito Native · NB-FFI only when you can’t (Oracle, cof cof) viernes 1 de noviembre de 13

38

Announcement(chivo)

www.uqbar-project.org/events/workshop2013

workshopNovember 16

viernes 1 de noviembre de 13