Upload
biicode
View
486
Download
3
Embed Size (px)
Citation preview
1 www.biicode.com Nov-13
“Los programadores de C++
somos los peores en reutilización
de código”
(said by) Bjarne Stroustrup
(in talk in) Carlos III
www.biicode.com Nov-13
• CMake:
– Visual, Eclipse
– VC, Mingw, gcc
Biicode setup
www.biicode.com Nov-13
$ bii new hello
#include “hello.h”
main(){
hello();
}
void hello();
jdaniel/hello/hello.h
jdaniel/hello/main.cpp
#include “hello.h”
void hello(){
cout<<“HelloBii!”<<endl;
}
jdaniel/hello/hello.cpp
Hello Bii!
(jdaniel)
$ bii cpp:run HelloBii!
www.biicode.com Nov-13
#include “hello.h”
main(){
hello();
}
void hello();
jdaniel/hello/hello.h
jdaniel/hello/main.cpp
#include “hello.h”
void hello(){
cout<<“HelloBii!”<<endl;
}
jdaniel/hello/hello.cpp
Dependencies Graph
www.biicode.com Nov-13
ADD_EXECUTABLE(jdaniel_hello main.cpp hello.cpp)
CMakeLists.txt
Automate Build
#include “hello.h”
main(){
hello();
}
void hello();
jdaniel/hello/hello.h
jdaniel/hello/main.cpp
#include “hello.h”
void hello(){
cout<<“HelloBii!”<<endl;
}
jdaniel/hello/hello.cpp
www.biicode.com Nov-13
$ bii publish
tag: STABLE
msg: my hello
No empaquetado
No binarios
No librerias
No configuration
Publish
www.biicode.com Nov-13
$ bii new chat
$ bii find
$ bii cpp:run
HelloBii!
HelloBii!
#include “chat.h”
main(){
chat();
}
#include “jdaniel/hello/hello.h”
void chat(){
hello();
hello();
}
lguerrero/chat/chat.h
lguerrero/chat/main.cpp
Reuse & Play
(lguerrero)
www.biicode.com Nov-13
SRC SRC
#include “chat.h”
main(){
chat();
}
#include “jdaniel/hello/hello.h”
void chat(){
hello();
hello();
}
lguerrero/chat/chat.h
lguerrero/chat/main.cpp
DEP DEP
void hello();
jdaniel/hello/hello.h
#include “hello.h”
void hello(){
cout<<“HelloBii!”<<endl;
}
jdaniel/hello/hello.cpp
Find & Get
www.biicode.com Nov-13
SRC SRC
#include “chat.h”
main(){
chat();
}
#include “jdaniel/hello/hello.h”
void chat(){
hello();
hello();
}
lguerrero/chat/chat.h
lguerrero/chat/main.cpp
DEP DEP
void hello();
jdaniel/hello/hello.h
#include “hello.h”
void hello(){
cout<<“HelloBii!”<<endl;
}
jdaniel/hello/hello.cpp
ADD_LIBRARY(jdaniel_hello hello.cpp) ADD_EXECUTABLE(lguerrero_chat main.cpp) TARGET_LINK_LIBRARIES(lguerrero_chat jdaniel_hello)
CMakeLists.txt
Build
www.biicode.com Nov-13
$ bii new faisbuk
$ bii find
$ bii cpp:run
HelloBii!
HelloBii!
#include “lguerrero/chat/chat.h”
main(){
chat();
}
mark/faisbuk/main.cpp
Reuse & Play
(mark)
www.biicode.com Nov-13
0 0
$ bii publish
tag: STABLE
msg: wow!
jdaniel/hello
#include “hello.h”
void hello(){
cout<<“Bii rocks!”<<endl;
}
jdaniel/hello/hello.cpp
1 1
Dep Versions
www.biicode.com Nov-13
$ cd chat
$ bii find --update
$ bii cpp:run
Bii rocks!
Bii rocks!
Update
(lguerrero)
www.biicode.com Nov-13
default:
- block: .
- [branch.name == "master" and branch.user == block.user, tag==STABLE, 1]
- tag>=ALPHA
- v>3 and v<8
- block: “jdaniel/hello”
Find (rules)
www.biicode.com Nov-13
1 1 0 0 jdaniel/hello
0 0
lguerrero/chat
Compatibility (file level)
0 0 diego/bot
www.biicode.com Nov-13
Mngr.h (1)
Pang.h (0)
Mngr.h (2)
Mngr.h (0)
#include “Mngr.h”
Ball.h (1)
Ball.h (0)
#include “Ball.h”
M1 M2 M3
G
B1 B2
CSP (combinatory)
www.biicode.com Nov-13
$ bii new hello (src/jdaniel/hello) $ bii cpp:run > HelloBii!
#include “hello.h”
main(){
hello();
}
void hello();
jdaniel/hello/hello.h
jdaniel/hello/main.cpp
#include “hello.h”
//bii://jdaniel/hello/hello.txt
void hello(){
f(“jdaniel/hello/hello.txt”)>>msg;
cout<<msg<<endl;
}
jdaniel/hello/hello.cpp
Hello Bii!
jdaniel/hello/hello.txt
Data Files
www.biicode.com Nov-13
$ bii new hello (src/jdaniel/hello) $ bii cpp:run > HelloBii!
#include “hello.h”
main(){
hello();
}
void hello();
jdaniel/hello/hello.h
jdaniel/hello/main.cpp
#include “hello.h”
//bii://jdaniel/hello/cpp_rules.bii
void hello(){
auto msg = “HelloBii!”;
cout<<msg<<endl;
}
jdaniel/hello/hello.cpp
Build Rules
target.std=“c++11”
jdaniel/hello/cpp_rules.bii
www.biicode.com Nov-13
$ bii new hello (src/jdaniel/hello) $ bii cpp:run > HelloBii win!
#include “hello.h”
void hello(){
cout<< “HelloBii win!”<<endl;
}
jdaniel/hello/win/hello.cpp
Config Rules
if os.family != “Windows”:
return nix
else:
return win
jdaniel/hello/bii/virtual.bii
#include “hello.h”
void hello(){
cout<< “HelloBii *nix!”<<endl;
}
jdaniel/hello/nix/hello.cpp
www.biicode.com Nov-13
$ cd chat $ bii open jdaniel/hello $ bii cpp:run Bii super rocks! Bii super rocks! $ bii publish hello branch: newMsg
jdaniel/hello/hello.cpp
#include “hello.h”
void hello(){
cout<<“Bii super rocks!”<<endl;
}
( /master): #1 jdaniel/hello
(jdaniel/master): #1
lguerrero/chat
jdaniel/hello
(lguerrero/newmsg): #0
Collaborate
(lguerrero)
www.biicode.com Nov-13
• Private
• Accounting
• Other languages (Python, Node, Fortran)
– “Its kind of loony tunes that PyPI, RubyGems, CPAN, NPM are all separate systems” A. Gaynor (yesterday)
• RaspberryPI
• Other languages integration(python + c)
• Challenges:
– Scalability, robustness, security
Roadmap
www.biicode.com Nov-13
• YES: – Zlib, box2d, little_cms, crypto, freeglut, eigen, csparse, gtest, gmock
• NO: – Boost (binary ongoing, git?) – OpenCV (src ongoing) – WxWidgets (binary experimental, src ongoing)
• FEW: – Docs, tutorials – Google help – Usability
• EXPERIMENTAL: – Merge – Git
Community Beta
www.biicode.com Nov-13
• SOLVE PROBLEMS
– 3 hours => 0s for the whole world
– Every single file counts
• Opportunity to lead the change
Why Biicode?
www.biicode.com Nov-13
PREMIUM USERS
OPEN SOURCE PROPRIETARY CODE
FREE USERS
€ $
REVENUE SPLIT
$
Biicode gives back!
36 www.biicode.com Nov-13
THANK YOU!
www.biicode.com