SlideShare a Scribd company logo
1 of 51
Download to read offline
Beyond JSON
Maxim Zaks
@iceX33
Agenda
• War Stories
• And very technical details
2007
2007
JSON vs. XML
• much more human readable
• no schema
• no streaming parser
• too early for financial sector
2015
Simulation Games
Deterministic
simulaiton running
on mobile device
And validated on the BackEnd
Share code between
BackEnd & FrontEnd
Stateless Worker
Parsing a JSON
config (400kb) and
game state (30kb)
takes 60 ms
Did we gave up?
No!
We Google
FlatBuffers
is an efficient cross
platform serialization
library for C++, Java, C#,
Go, Python and JavaScript (C,
PHP & Ruby in progress).
How does it work?
Define a schema
table Person {
name: string;
age : int;
}
root_type Person;
Call code generator
./flatc -n person01.fbs
Use generated code for
reading
public sealed class Person : Table {
public static Person GetRootAsPerson(ByteBuffer _bb) {...}
public static Person GetRootAsPerson(ByteBuffer _bb, Person obj) {...}
public string Name { get { ... } }
public int Age { get { ... } }
};
byte[] data = ...;
Person person = Person.GetRootAsPerson(new ByteBuffer(data));
Suffer through generated code
for writing
public sealed class Person : Table {
public static Offset<Person> CreatePerson(FlatBufferBuilder builder,
StringOffset name = default(StringOffset),
int age = 0) {
...
}
public static void FinishPersonBuffer(FlatBufferBuilder builder, Offset<Person> offset) { ... }
};
FlatBufferBuilder fbb = new FlatBufferBuilder(1);
var nameOffset = fbb.CreateString("maxim");
var personOffset = Person.CreatePerson(fbb, nameOffset, 34);
Person.FinishPersonBuffer(fbb, personOffset);
byte[] data = fbb.SizedByteArray();
What is
underneath?
Why is it so fast to read
And cumbersome to write
Call FlatBuffers compiler
./flatc -b person01.fbs person01.json
And if you want binary to
JSON
./flatc -t person01.fbs -- person01.bin --raw-binary --strict-json
=
{
"name": "maxim",
"age": 34
}
FlatBuffers has
evolution strategy
table Person {
name: string;
age : int;
}
root_type Person;
->
table Person {
name: string;
age : int (deprecated);
birthday : double;
}
root_type Person;
table Person {
name: string;
age : int;
}
root_type Person;
->
table Person {
name: string (id: 0);
birthday : double (id: 2);
age : int (deprecated, id: 1);
}
root_type Person;
It's backwards and
forwards
compatible
new code can read old data
&
old code can read new data
I wanted to make
writing more
usable
specially for unit testing
Eager serialization
public sealed class Person : Table {
public string name;
public int age;
public static Person FromByteArray(byte[] data) {...}
public byte[] ToByteArray(){...}
}
// var person = new Person();
byte[] data = ...;
var person = Person.FromByteArray(data);
person.name = "Alex";
byte[] data2 = person.ToByteArray();
let person = Person(name: "Maxim", age: 34)
let fbData = person.toByteArray
NSData( bytes: UnsafePointer<UInt8>(fbData),
length: fbData.count)
.writeToFile("person.bin", atomically: true)
Facebook is using
FlatBuffers !
FlatBuffersSwift benchmark
• 65.015 mseconds for parsing JSON (3.6MB)
• 36.478 mseconds for eager FlatBuffers (2.1MB)
• 00.002 mseconds for lazy FlatBuffers (2.1MB)
Some rain on FlatBuffers
parade
• Zip JSON: 3.6MB -> 739KB
• Zip FB: 2.1MB -> 1.1MB
Outlook for FlatBuffers
• real Graph not a Tree
• could support streaming
• is easy to encrypt
• could be very memory efficient with custom
compression
Questions?
Thank you!
@iceX33
https://google.github.io/flatbuffers
https://github.com/mzaks/FlatBuffersSchemaEditor
https://github.com/mzaks/FlatBuffersSwift

More Related Content

Viewers also liked

e-Patients en e-Health (Masterclass VUMC)
e-Patients en e-Health (Masterclass VUMC)e-Patients en e-Health (Masterclass VUMC)
e-Patients en e-Health (Masterclass VUMC)Michael van Balken
 
Nuevas tecnologías de la información y comunicación (ntic)
Nuevas tecnologías de la información y comunicación (ntic)Nuevas tecnologías de la información y comunicación (ntic)
Nuevas tecnologías de la información y comunicación (ntic)Carol Plata
 
8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich
8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich
8 YouTube Channels for Aspiring Entrepreneurs | Avery EisenreichAvery Eisenreich
 
Welcome to Animation Class
Welcome to Animation ClassWelcome to Animation Class
Welcome to Animation Classwalkers
 
Customer Service Alberta
Customer Service AlbertaCustomer Service Alberta
Customer Service AlbertaBrianWoodland
 
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみたNobuyuki Matsui
 
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...SlideTeam.net
 
Media Auditing: Convegno Somedia 2004 - Furlanetto
Media Auditing: Convegno Somedia 2004 - FurlanettoMedia Auditing: Convegno Somedia 2004 - Furlanetto
Media Auditing: Convegno Somedia 2004 - FurlanettoPaola Furlanetto
 
Як_правильно_укласти_договір
Як_правильно_укласти_договірЯк_правильно_укласти_договір
Як_правильно_укласти_договірVitalij Misjats
 
Welcome to the Funnel: We've Got Leads and Names
Welcome to the Funnel: We've Got Leads and NamesWelcome to the Funnel: We've Got Leads and Names
Welcome to the Funnel: We've Got Leads and NamesKapost
 
Ie – 514 Current Trends, Problems And Issues
Ie – 514 Current Trends, Problems And IssuesIe – 514 Current Trends, Problems And Issues
Ie – 514 Current Trends, Problems And IssuesAris Santos
 
GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...
GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...
GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...Dr. Mark Goulston
 
Development C++ Community
Development C++ CommunityDevelopment C++ Community
Development C++ CommunityAkira Takahashi
 

Viewers also liked (19)

Horario 8º semestre
Horario   8º semestreHorario   8º semestre
Horario 8º semestre
 
e-Patients en e-Health (Masterclass VUMC)
e-Patients en e-Health (Masterclass VUMC)e-Patients en e-Health (Masterclass VUMC)
e-Patients en e-Health (Masterclass VUMC)
 
Nuevas tecnologías de la información y comunicación (ntic)
Nuevas tecnologías de la información y comunicación (ntic)Nuevas tecnologías de la información y comunicación (ntic)
Nuevas tecnologías de la información y comunicación (ntic)
 
8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich
8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich
8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich
 
Welcome to Animation Class
Welcome to Animation ClassWelcome to Animation Class
Welcome to Animation Class
 
Social Media
Social MediaSocial Media
Social Media
 
Customer Service Alberta
Customer Service AlbertaCustomer Service Alberta
Customer Service Alberta
 
Beneficios de invertir en Uniformes
Beneficios de invertir en UniformesBeneficios de invertir en Uniformes
Beneficios de invertir en Uniformes
 
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
 
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...
 
Media Auditing: Convegno Somedia 2004 - Furlanetto
Media Auditing: Convegno Somedia 2004 - FurlanettoMedia Auditing: Convegno Somedia 2004 - Furlanetto
Media Auditing: Convegno Somedia 2004 - Furlanetto
 
Protocolo de manejo de Fibrilación Auricular no valvular
Protocolo de manejo de Fibrilación Auricular no valvularProtocolo de manejo de Fibrilación Auricular no valvular
Protocolo de manejo de Fibrilación Auricular no valvular
 
Dental Implants [infographic]
Dental Implants [infographic]Dental Implants [infographic]
Dental Implants [infographic]
 
Як_правильно_укласти_договір
Як_правильно_укласти_договірЯк_правильно_укласти_договір
Як_правильно_укласти_договір
 
Welcome to the Funnel: We've Got Leads and Names
Welcome to the Funnel: We've Got Leads and NamesWelcome to the Funnel: We've Got Leads and Names
Welcome to the Funnel: We've Got Leads and Names
 
Ie – 514 Current Trends, Problems And Issues
Ie – 514 Current Trends, Problems And IssuesIe – 514 Current Trends, Problems And Issues
Ie – 514 Current Trends, Problems And Issues
 
Артемий Анцупов "Agile PMO"
Артемий Анцупов "Agile PMO"Артемий Анцупов "Agile PMO"
Артемий Анцупов "Agile PMO"
 
GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...
GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...
GoToAssist - Just Listen: How to Get Through to Anyone - Tips from a Former F...
 
Development C++ Community
Development C++ CommunityDevelopment C++ Community
Development C++ Community
 

Similar to Beyond JSON @ Mobile.Warsaw

Talk Binary to Me
Talk Binary to MeTalk Binary to Me
Talk Binary to MeMaxim Zaks
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locatorAlberto Paro
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locatorAlberto Paro
 
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Arthur Puthin
 
Screaming fast json parsing on Android
Screaming fast json parsing on AndroidScreaming fast json parsing on Android
Screaming fast json parsing on AndroidKarthik Ramgopal
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesAbhishek Sur
 
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...Codemotion
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022InfluxData
 
Http4s, Doobie and Circe: The Functional Web Stack
Http4s, Doobie and Circe: The Functional Web StackHttp4s, Doobie and Circe: The Functional Web Stack
Http4s, Doobie and Circe: The Functional Web StackGaryCoady
 
Speed up the mobile development process
Speed up the mobile development processSpeed up the mobile development process
Speed up the mobile development processLeonardoSarra
 
(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and ProtobufGuido Schmutz
 
Kotlin, smarter development for the jvm
Kotlin, smarter development for the jvmKotlin, smarter development for the jvm
Kotlin, smarter development for the jvmArnaud Giuliani
 
Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2VMware Tanzu
 
Happy Go Programming
Happy Go ProgrammingHappy Go Programming
Happy Go ProgrammingLin Yo-An
 
FITC '14 Toronto - Technology, a means to an end
FITC '14 Toronto - Technology, a means to an endFITC '14 Toronto - Technology, a means to an end
FITC '14 Toronto - Technology, a means to an endThibault Imbert
 
Technology: A Means to an End with Thibault Imbert
Technology: A Means to an End with Thibault ImbertTechnology: A Means to an End with Thibault Imbert
Technology: A Means to an End with Thibault ImbertFITC
 
Webinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible SchemasWebinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible SchemasMongoDB
 
Typescript - why it's awesome
Typescript - why it's awesomeTypescript - why it's awesome
Typescript - why it's awesomePiotr Miazga
 

Similar to Beyond JSON @ Mobile.Warsaw (20)

Talk Binary to Me
Talk Binary to MeTalk Binary to Me
Talk Binary to Me
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
 
2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator2017 02-07 - elastic & spark. building a search geo locator
2017 02-07 - elastic & spark. building a search geo locator
 
Protocol buffers
Protocol buffersProtocol buffers
Protocol buffers
 
Json at work overview and ecosystem-v2.0
Json at work   overview and ecosystem-v2.0Json at work   overview and ecosystem-v2.0
Json at work overview and ecosystem-v2.0
 
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...
 
Screaming fast json parsing on Android
Screaming fast json parsing on AndroidScreaming fast json parsing on Android
Screaming fast json parsing on Android
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and Features
 
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
Developing and maintaining a Java GraphQL back-end: The less obvious - Bojan ...
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
 
Http4s, Doobie and Circe: The Functional Web Stack
Http4s, Doobie and Circe: The Functional Web StackHttp4s, Doobie and Circe: The Functional Web Stack
Http4s, Doobie and Circe: The Functional Web Stack
 
Speed up the mobile development process
Speed up the mobile development processSpeed up the mobile development process
Speed up the mobile development process
 
(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf(Big) Data Serialization with Avro and Protobuf
(Big) Data Serialization with Avro and Protobuf
 
Kotlin, smarter development for the jvm
Kotlin, smarter development for the jvmKotlin, smarter development for the jvm
Kotlin, smarter development for the jvm
 
Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2Leap Ahead with Redis 6.2
Leap Ahead with Redis 6.2
 
Happy Go Programming
Happy Go ProgrammingHappy Go Programming
Happy Go Programming
 
FITC '14 Toronto - Technology, a means to an end
FITC '14 Toronto - Technology, a means to an endFITC '14 Toronto - Technology, a means to an end
FITC '14 Toronto - Technology, a means to an end
 
Technology: A Means to an End with Thibault Imbert
Technology: A Means to an End with Thibault ImbertTechnology: A Means to an End with Thibault Imbert
Technology: A Means to an End with Thibault Imbert
 
Webinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible SchemasWebinar: Strongly Typed Languages and Flexible Schemas
Webinar: Strongly Typed Languages and Flexible Schemas
 
Typescript - why it's awesome
Typescript - why it's awesomeTypescript - why it's awesome
Typescript - why it's awesome
 

More from Maxim Zaks

Entity Component System - a different approach to game and app development
Entity Component System - a different approach to game and app developmentEntity Component System - a different approach to game and app development
Entity Component System - a different approach to game and app developmentMaxim Zaks
 
Nitty Gritty of Data Serialisation
Nitty Gritty of Data SerialisationNitty Gritty of Data Serialisation
Nitty Gritty of Data SerialisationMaxim Zaks
 
Wind of change
Wind of changeWind of change
Wind of changeMaxim Zaks
 
Data model mal anders
Data model mal andersData model mal anders
Data model mal andersMaxim Zaks
 
Entity Component System - for App developers
Entity Component System - for App developersEntity Component System - for App developers
Entity Component System - for App developersMaxim Zaks
 
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffersBeyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffersMaxim Zaks
 
Basics of Computer Science
Basics of Computer ScienceBasics of Computer Science
Basics of Computer ScienceMaxim Zaks
 
Entity system architecture with Unity @Unite Europe 2015
Entity system architecture with Unity @Unite Europe 2015 Entity system architecture with Unity @Unite Europe 2015
Entity system architecture with Unity @Unite Europe 2015 Maxim Zaks
 
UIKonf App & Data Driven Design @swift.berlin
UIKonf App & Data Driven Design @swift.berlinUIKonf App & Data Driven Design @swift.berlin
UIKonf App & Data Driven Design @swift.berlinMaxim Zaks
 
Swift the implicit parts
Swift the implicit partsSwift the implicit parts
Swift the implicit partsMaxim Zaks
 
Currying in Swift
Currying in SwiftCurrying in Swift
Currying in SwiftMaxim Zaks
 
Promise of an API
Promise of an APIPromise of an API
Promise of an APIMaxim Zaks
 
96% macoun 2013
96% macoun 201396% macoun 2013
96% macoun 2013Maxim Zaks
 
Diagnose of Agile @ Wooga 04.2013
Diagnose of Agile @ Wooga 04.2013Diagnose of Agile @ Wooga 04.2013
Diagnose of Agile @ Wooga 04.2013Maxim Zaks
 
Start playing @ mobile.cologne 2013
Start playing @ mobile.cologne 2013Start playing @ mobile.cologne 2013
Start playing @ mobile.cologne 2013Maxim Zaks
 
Under Cocos2D Tree @mdvecon 2013
Under Cocos2D Tree @mdvecon 2013Under Cocos2D Tree @mdvecon 2013
Under Cocos2D Tree @mdvecon 2013Maxim Zaks
 
Don&rsquo;t do Agile, be Agile @NSConf 2013
Don&rsquo;t do Agile, be Agile @NSConf 2013Don&rsquo;t do Agile, be Agile @NSConf 2013
Don&rsquo;t do Agile, be Agile @NSConf 2013Maxim Zaks
 
Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012Maxim Zaks
 
Vergiss Java konzentrier Dich auf Script @ OOP2013
Vergiss Java konzentrier Dich auf Script @ OOP2013Vergiss Java konzentrier Dich auf Script @ OOP2013
Vergiss Java konzentrier Dich auf Script @ OOP2013Maxim Zaks
 

More from Maxim Zaks (19)

Entity Component System - a different approach to game and app development
Entity Component System - a different approach to game and app developmentEntity Component System - a different approach to game and app development
Entity Component System - a different approach to game and app development
 
Nitty Gritty of Data Serialisation
Nitty Gritty of Data SerialisationNitty Gritty of Data Serialisation
Nitty Gritty of Data Serialisation
 
Wind of change
Wind of changeWind of change
Wind of change
 
Data model mal anders
Data model mal andersData model mal anders
Data model mal anders
 
Entity Component System - for App developers
Entity Component System - for App developersEntity Component System - for App developers
Entity Component System - for App developers
 
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffersBeyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
 
Basics of Computer Science
Basics of Computer ScienceBasics of Computer Science
Basics of Computer Science
 
Entity system architecture with Unity @Unite Europe 2015
Entity system architecture with Unity @Unite Europe 2015 Entity system architecture with Unity @Unite Europe 2015
Entity system architecture with Unity @Unite Europe 2015
 
UIKonf App & Data Driven Design @swift.berlin
UIKonf App & Data Driven Design @swift.berlinUIKonf App & Data Driven Design @swift.berlin
UIKonf App & Data Driven Design @swift.berlin
 
Swift the implicit parts
Swift the implicit partsSwift the implicit parts
Swift the implicit parts
 
Currying in Swift
Currying in SwiftCurrying in Swift
Currying in Swift
 
Promise of an API
Promise of an APIPromise of an API
Promise of an API
 
96% macoun 2013
96% macoun 201396% macoun 2013
96% macoun 2013
 
Diagnose of Agile @ Wooga 04.2013
Diagnose of Agile @ Wooga 04.2013Diagnose of Agile @ Wooga 04.2013
Diagnose of Agile @ Wooga 04.2013
 
Start playing @ mobile.cologne 2013
Start playing @ mobile.cologne 2013Start playing @ mobile.cologne 2013
Start playing @ mobile.cologne 2013
 
Under Cocos2D Tree @mdvecon 2013
Under Cocos2D Tree @mdvecon 2013Under Cocos2D Tree @mdvecon 2013
Under Cocos2D Tree @mdvecon 2013
 
Don&rsquo;t do Agile, be Agile @NSConf 2013
Don&rsquo;t do Agile, be Agile @NSConf 2013Don&rsquo;t do Agile, be Agile @NSConf 2013
Don&rsquo;t do Agile, be Agile @NSConf 2013
 
Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012
 
Vergiss Java konzentrier Dich auf Script @ OOP2013
Vergiss Java konzentrier Dich auf Script @ OOP2013Vergiss Java konzentrier Dich auf Script @ OOP2013
Vergiss Java konzentrier Dich auf Script @ OOP2013
 

Recently uploaded

Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.MateoGardella
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfChris Hunter
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...KokoStevan
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 

Recently uploaded (20)

Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 

Beyond JSON @ Mobile.Warsaw