biicode, reuse and play

55
Francisco Fernández Castaño @fcofdezc www.biicode.com

Upload: fcofdezc

Post on 15-Jan-2015

193 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: biicode, reuse and play

Francisco Fernández Castaño

@fcofdezc

www.biicode.com

Page 2: biicode, reuse and play
Page 3: biicode, reuse and play

“Los programadores de C++ somos los peores en

reutilización de código”

Bjarne Stroustrup

Page 4: biicode, reuse and play

➜ node git:(master) ls -l deps total 0 drwxr-xr-x 13 fran staff 442 16 feb 17:22 cares drwxr-xr-x 15 fran staff 510 16 feb 17:22 http_parser drwxr-xr-x 7 fran staff 238 16 feb 17:22 mdb_v8 drwxr-xr-x 21 fran staff 714 16 feb 17:22 npm drwxr-xr-x 7 fran staff 238 16 feb 17:22 openssl drwxr-xr-x 25 fran staff 850 16 feb 17:22 uv drwxr-xr-x 23 fran staff 782 16 feb 17:22 v8 drwxr-xr-x 29 fran staff 986 16 feb 17:22 zlib ➜ node git:(master)

Page 5: biicode, reuse and play
Page 6: biicode, reuse and play
Page 7: biicode, reuse and play
Page 8: biicode, reuse and play

sudo apt-get install opencv

Page 9: biicode, reuse and play

brew install opencv

Page 10: biicode, reuse and play

????? opencv

Page 11: biicode, reuse and play

Hay muchos usuarios de Windows

Page 12: biicode, reuse and play

Hay muchos usuarios de Windows

Page 13: biicode, reuse and play
Page 14: biicode, reuse and play

SETUP

Page 15: biicode, reuse and play

Tu ordenador

Tu sistema

Tus herramientas

SETUP

Page 16: biicode, reuse and play

Talk is cheap. Show me the code.

Linus Tolvards

Page 17: biicode, reuse and play

Hello Bii!!$ bii new hello

Page 18: biicode, reuse and play

Hello Bii!!$ bii new hello

#include “hello.h” int main(){ hello(); }$ vim

void main();

#include “hello.h” void hello(){ cout<<“HelloBii!”<<endl; }

fran/helloblock/main.cpp

fran/helloblock/hello.h

fran/helloblock/hello.cpp

Page 19: biicode, reuse and play

Hello Bii!!$ bii new hello

#include “hello.h” int main(){ hello(); }$ vim

void main();

#include “hello.h” void hello(){ cout<<“HelloBii!”<<endl; }

fran/helloblock/main.cpp

fran/helloblock/hello.h

fran/helloblock/hello.cpp$ bii cpp:run HelloBii!!

Page 20: biicode, reuse and play

#include “hello.h” int main(){ hello(); }

void main();

#include “hello.h” void hello(){ cout<<“HelloBii!”<<endl; }

fran/helloblock/main.cpp

fran/helloblock/hello.h

fran/helloblock/hello.cpp

Grafo de dependencias

Page 21: biicode, reuse and play

ADD_EXECUTABLE(fran_hello main.cpp hello.cpp)

CMakeLists.txt

Construcción automática

Page 22: biicode, reuse and play

Publish

$ bii publish tag: STABLE msg: MyHello main.cpp

hello.h

hello.cpp

main.cpp

hello.h

hello.cpp

MacBook Fran

biicode

Page 23: biicode, reuse and play

Solo necesitamos un comando

Page 24: biicode, reuse and play

Reuse & Play(john) $ bii new hello

Page 25: biicode, reuse and play

Reuse & Play$ bii new hello

#include “fran/helloblock/hello.h” void repeat(){ hello(); hello(); }$ vim

void repeat();#include “repeat.h” int main(){ repeat(); }

john/repeatblock/repeat.h

john/repeatblock/main.cpp

Page 26: biicode, reuse and play

Reuse & Play$ bii new hello

#include “fran/helloblock/hello.h” void repeat(){ hello(); hello(); }$ vim

void repeat();#include “repeat.h” int main(){ repeat(); }

john/repeatblock/repeat.h

john/repeatblock/main.cpp

$ bii find

$ bii cpp:run

HelloBii!!HelloBii!!

Page 27: biicode, reuse and play

Find

main.cpp

hello.h

hello.cpp

biicode

void repeat();

john/repeatblock/repeat.h

john/repeatblock/main.cpp

fran/helloblock/hello.h

fran/helloblock/hello.cpp

src dep

Page 28: biicode, reuse and play

ADD_LIBRARY(fran_hello hello.cpp) ADD_EXECUTABLE(john_repeat main.cpp) TARGET_LINK_LIBRARIES(john_repeat fran_hello)

CMakeLists.txt

Construcción automática

Page 29: biicode, reuse and play

Publish

$ bii publish tag: STABLE msg: MyRepeat main.cpp

hello.h

main.cpp

hello.h

hello.cpp

PC John

biicode

Page 30: biicode, reuse and play

Publish

main.cpp

hello.h

main.cpp

hello.h

hello.cpp

PC John

biicode

main.cpp

repeat.h

Page 31: biicode, reuse and play

Reuse & Play(carmack)$ bii new doom3

$ vim

void repeat();

#include “john/repeatblock/repeat.h” int main(){ repeat(); }

john/doom3/main.cpp

$ bii find

$ bii cpp:run

HelloBii!!HelloBii!!

Page 32: biicode, reuse and play

main.cpp

hello.h

hello.cpp

biicode

main.cpp

repeat.h

Reuse & Play

Page 33: biicode, reuse and play
Page 34: biicode, reuse and play

biicode way

#include “google/gtest/gtest.h”

bii find

sleep

Page 35: biicode, reuse and play

Update

$ vim #include “hello.h” void hello(){ cout<<“Bii rocks!”<<endl; }

fran/helloblock/hello.cpp

$ bii publish tag: STABLE msg: 2 version

Page 36: biicode, reuse and play

main.cpp

hello.h

hello.cpp

0

main.cpp

hello.h

hello.cpp

1

hello.cpp

Page 37: biicode, reuse and play

Reuse & Play

#include “repeat.h” int main(){ repeat(); }

(john)$ bii find —-update

$ bii cpp:run

Bii rocks!Bii rocks!

Page 38: biicode, reuse and play

Se pueden definir políticas de resolución de dependencias

Page 39: biicode, reuse and play

Tags y Versiones

Autores

Ramas

Page 40: biicode, reuse and play

biicode garantiza compatibilidad entre ficheros

Page 41: biicode, reuse and play

Otras features

Page 42: biicode, reuse and play

Ficheros de datos

Build configuration

Configuration rules

Colaboración

Page 43: biicode, reuse and play

Métricas reales de uso a nivel de fichero

Page 44: biicode, reuse and play

main.cpp

hello.h

hello.cpp

biicode

main.cpp

repeat.h

Page 45: biicode, reuse and play
Page 46: biicode, reuse and play

¿Cómo?

Page 47: biicode, reuse and play
Page 48: biicode, reuse and play
Page 49: biicode, reuse and play
Page 50: biicode, reuse and play

PREMIUM USERS

OPEN SOURCE PROPRIETARY CODE

FREE USERS

€$

REVENUE SPLIT

$

Biicode gives back!

Page 51: biicode, reuse and play

Roadmap

Page 52: biicode, reuse and play

#biicontest2014

1000 € 500 € 300 €

https://www.biicode.com/biicontest2014-es

Page 53: biicode, reuse and play

Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse:

complexity sells better.

Edsger W. Dijkstra

Page 54: biicode, reuse and play
Page 55: biicode, reuse and play

¡GRACIAS!