SlideShare a Scribd company logo
D O C K E R I Z E D 	 S Y S T E M 	 T E S T I N G ,
W I T H 	 A 	 D A S H 	 O F 	 C H A O S
S O F T W A R E 	I S
E A T I N G 	 T H E 	 W O R L D
I F 	 D E B U G G I N G 	I S 	 T H E 	 P R O C E S S 	 O F
R E M O V I N G 	 S O F T W A R E 	 B U G S, 	
T H E N 	 P R O G R A M M I N G 	M U S T 	 B E 	 T H E 	 P R O C E S S 	 O F 	
P U T T I N G 	 T H E M 	 I N.
Edsger	W.	Dijkstra
A U T O M A T E D 	 T E S T S	A R E 	 T H E 	 S O L U T I O N
U N I T 	 T E S T S 	 A R E 	 N O T 	 E N O U G H
S O C I A B L E 	U N I T 	 T E S T S
W I L L 	 I T 	 W O R K 	 I N 	 P R O D U C T I O N 	?
H I G H - L E V E L 	 T E S T S	R U N N I N G 	 I N 	
P R O D U C T I O N - L I K E 	E N V I R O N M E N T
W H Y 	D O N ' T 	 W E 	 W R I T E 	 H I G H - L E V E L
T E S T S ?
W H A T 	 I S 	 A R Q U I L L I A N ?
Middleware	for	your	tests
W H A T 	 I S 	 A R Q U I L L I A N ?
Middleware	for	your	tests
Fills	the	gap	between	Unit/Integration	tests
W H A T 	 I S 	 A R Q U I L L I A N ?
Middleware	for	your	tests
Fills	the	gap	between	Unit/Integration	tests
Java	EE	and	beyond
W H A T 	 I S 	 A R Q U I L L I A N ?
Middleware	for	your	tests
Fills	the	gap	between	Unit/Integration	tests
Java	EE	and	beyond
Any	kind	of	high-level	tests
W H A T 	 I S 	 A R Q U I L L I A N ?
Middleware	for	your	tests
Fills	the	gap	between	Unit/Integration	tests
Java	EE	and	beyond
Any	kind	of	high-level	tests
Open	Source
apply	pluginapply	plugin::		"io.spring.dependency-management""io.spring.dependency-management"
dependencyManagement	dependencyManagement	{{
		imports			imports	{{
				mavenBom					mavenBom	'org.jboss.arquillian:arquillian-bom:...''org.jboss.arquillian:arquillian-bom:...'
				}}
}}		
B U I L D . G R A D L E
apply	pluginapply	plugin::		"io.spring.dependency-management""io.spring.dependency-management"
dependencyManagement	dependencyManagement	{{
		imports			imports	{{
				mavenBom					mavenBom	'org.jboss.arquillian:arquillian-bom:...''org.jboss.arquillian:arquillian-bom:...'
				}}
}}		
dependencies	dependencies	{{
		testCompile	group		testCompile	group::		'org.jboss.arquillian.junit''org.jboss.arquillian.junit',,	name	name::		'arquillian-junit-container''arquillian-junit-container'
B U I L D . G R A D L E
apply	pluginapply	plugin::		"io.spring.dependency-management""io.spring.dependency-management"
dependencyManagement	dependencyManagement	{{
		imports			imports	{{
				mavenBom					mavenBom	'org.jboss.arquillian:arquillian-bom:...''org.jboss.arquillian:arquillian-bom:...'
				}}
}}		
dependencies	dependencies	{{
		testCompile	group		testCompile	group::		'org.jboss.arquillian.junit''org.jboss.arquillian.junit',,	name	name::		'arquillian-junit-container''arquillian-junit-container'
		testCompile			testCompile	'org.apache.tomee:arquillian-tomee-remote:7.0.0''org.apache.tomee:arquillian-tomee-remote:7.0.0'
}}
B U I L D . G R A D L E
publicpublic		classclass		VolumeUnitsConverterResourceTestVolumeUnitsConverterResourceTest		{{
				@Test				@Test
								publicpublic		voidvoid		should_convert_ounces_to_millilitersshould_convert_ounces_to_milliliters(())		{{
																givengiven(())..
																																baseUribaseUri(("http://localhost:8080/""http://localhost:8080/"))..
																																pathParampathParam(("amount""amount",,		"8.0""8.0"))..
																whenwhen(())..
																																getget(("/convert/volume/fl/ml/{amount}""/convert/volume/fl/ml/{amount}"))..
																thenthen(())..
																																assertThatassertThat(())..bodybody((isis((equalToequalTo(("236.5882368""236.5882368"))))));;
								}}
}}
@@RunWithRunWith((ArquillianArquillian..classclass))
publicpublic		classclass		VolumeUnitsConverterResourceTestVolumeUnitsConverterResourceTest		{{
				@				@DeploymentDeployment((testable	testable	==		falsefalse))
								publicpublic		staticstatic	Archive	Archive<<??>>		createDeploymentcreateDeployment(())		{{
																returnreturn	ShrinkWrap	ShrinkWrap..createcreate((WebArchiveWebArchive..classclass,,		"test.war""test.war"))
																																..addPackagesaddPackages((truetrue,,	VolumeUnitsConverter	VolumeUnitsConverter..classclass..getPackagegetPackage(())))
																																..addAsWebInfResourceaddAsWebInfResource((EmptyAssetEmptyAsset..INSTANCEINSTANCE,,		"beans.xml""beans.xml"));;
								}}
								
				@Test				@Test
								publicpublic		voidvoid		should_convert_ounces_to_millilitersshould_convert_ounces_to_milliliters((@ArquillianResource	URL	applicationPath@ArquillianResource	URL	applicationPath))		{{
																givengiven(())..
																																baseUribaseUri((applicationPathapplicationPath..toStringtoString(())))..
																																pathParampathParam(("amount""amount",,		"8.0""8.0"))..
																whenwhen(())..
																																getget(("/convert/volume/fl/ml/{amount}""/convert/volume/fl/ml/{amount}"))..
																thenthen(())..
																																assertThatassertThat(())..bodybody((isis((equalToequalTo(("236.5882368""236.5882368"))))));;
								}}
}}
D E M O
P R I N C I P L E S 	 O F 	 A R Q U I L L I A N
Portable	tests
P R I N C I P L E S 	 O F 	 A R Q U I L L I A N
Portable	tests
Executable	from	IDE	and	build	tool
P R I N C I P L E S 	 O F 	 A R Q U I L L I A N
Portable	tests
Executable	from	IDE	and	build	tool
Skip	the	build
P R I N C I P L E S 	 O F 	 A R Q U I L L I A N
Portable	tests
Executable	from	IDE	and	build	tool
Skip	the	build
Reuse	existing	frameworks
P R I N C I P L E S 	 O F 	 A R Q U I L L I A N
Portable	tests
Executable	from	IDE	and	build	tool
Skip	the	build
Reuse	existing	frameworks
Flexible	and	Extensible
P R I N C I P L E S 	 O F 	 A R Q U I L L I A N
Portable	tests
Executable	from	IDE	and	build	tool
Skip	the	build
Reuse	existing	frameworks
Flexible	and	Extensible
Makes	writing	high-level	tests	a	breeze
I N S A N I T Y : 	 D O I N G 	 T H E 	 S A M E 	 T H I N G 	 O V E R 	 A N D 	 O V E R 	 A G A I N 	 A N D
E X P E C T I N G 	 D I F F E R E N T 	 R E S U L T S .
Albert	Einstein
D O C K E R
A R Q U I L L I A N 	 C U B E
W H A T 	 I S 	 C U B E ?
Manage	lifecycle	of	docker	containers
W H A T 	 I S 	 C U B E ?
Manage	lifecycle	of	docker	containers
Orchestrates	containers
W H A T 	 I S 	 C U B E ?
Manage	lifecycle	of	docker	containers
Orchestrates	containers
Provides	container	objects
W H A T 	 I S 	 C U B E ?
Manage	lifecycle	of	docker	containers
Orchestrates	containers
Provides	container	objects
Support	for	non-app	server	systems
W H A T 	 I S 	 C U B E ?
Manage	lifecycle	of	docker	containers
Orchestrates	containers
Provides	container	objects
Support	for	non-app	server	systems
Ready	for	OpenShift	v3
W H A T 	 I S 	 C U B E ?
Manage	lifecycle	of	docker	containers
Orchestrates	containers
Provides	container	objects
Support	for	non-app	server	systems
Ready	for	OpenShift	v3
Ready	for	Docker	Machine
dependencies	dependencies	{{
		testCompile			testCompile	'org.arquillian.cube:arquillian-cube-docker:...''org.arquillian.cube:arquillian-cube-docker:...'
}}
B U I L D . G R A D L E
<<arquillianarquillian>>
				<<extensionextension		qualifierqualifier==""dockerdocker"">>
												<<propertyproperty		namename==""machineNamemachineName"">>devdev</</propertyproperty>>
												<<propertyproperty		namename==""definitionFormatdefinitionFormat"">>COMPOSECOMPOSE</</propertyproperty>>
												<<propertyproperty		namename==""dockerContainersFiledockerContainersFile"">>docker-compose.ymldocker-compose.yml</</propertyproperty>>
				</</extensionextension>>
				
S R C / T E S T / R E S O U R C E S / A R Q U I L L I A N . X M L
<<arquillianarquillian>>
				<<extensionextension		qualifierqualifier==""dockerdocker"">>
												<<propertyproperty		namename==""machineNamemachineName"">>devdev</</propertyproperty>>
												<<propertyproperty		namename==""definitionFormatdefinitionFormat"">>COMPOSECOMPOSE</</propertyproperty>>
												<<propertyproperty		namename==""dockerContainersFiledockerContainersFile"">>docker-compose.ymldocker-compose.yml</</propertyproperty>>
				</</extensionextension>>
				
				<<containercontainer		qualifierqualifier==""tomcattomcat"">>
								<<configurationconfiguration>>
												<<propertyproperty		namename==""useruser"">>adminadmin</</propertyproperty>>
												<<propertyproperty		namename==""passpass"">>mypassmypass</</propertyproperty>>
								</</configurationconfiguration>>
				</</containercontainer>>
</</arquillianarquillian>>
S R C / T E S T / R E S O U R C E S / A R Q U I L L I A N . X M L
tomcattomcat::
		env_file		env_file::	envs	envs
		image		image::	tutum	tutum//tomcattomcat::7.07.0
		ports		ports::
												--		"8089:8089""8089:8089"
												--		"8088:8088""8088:8088"
												--		"8081:8080""8081:8080"
		links		links::
												--	pingpong	pingpong::pingpongpingpong
												
		pingpong		pingpong::
				image				image::	jonmorehouse	jonmorehouse//pingping--pongpong
				ports				ports::
												--		"8080:8080""8080:8080"
												
D O C K E R - C O M P O S E . Y M L
@@RunWithRunWith((ArquillianArquillian..classclass))
publicpublic		classclass		HelloWorldServletTestHelloWorldServletTest		{{
		@		@DeploymentDeployment((testabletestable==falsefalse))
				publicpublic		staticstatic	WebArchive		WebArchive	createcreate(())		{{
												returnreturn	ShrinkWrap	ShrinkWrap..createcreate((WebArchiveWebArchive..classclass,,		"hello.war""hello.war"))
																				..addClassaddClass((HelloWorldServletHelloWorldServlet..classclass));;
				}}
				
P I N G P O N G T E S T . J A V A
@@RunWithRunWith((ArquillianArquillian..classclass))
publicpublic		classclass		HelloWorldServletTestHelloWorldServletTest		{{
		@		@DeploymentDeployment((testabletestable==falsefalse))
				publicpublic		staticstatic	WebArchive		WebArchive	createcreate(())		{{
												returnreturn	ShrinkWrap	ShrinkWrap..createcreate((WebArchiveWebArchive..classclass,,		"hello.war""hello.war"))
																				..addClassaddClass((HelloWorldServletHelloWorldServlet..classclass));;
				}}
				
		@HostIp		@HostIp
		String	hostIp		String	hostIp;;
		@		@HostPortHostPort((containerName	containerName	==		"tomcat""tomcat",,	value		value	==		80808080))
		int	tomcatPort		int	tomcatPort;;
P I N G P O N G T E S T . J A V A
@@RunWithRunWith((ArquillianArquillian..classclass))
publicpublic		classclass		HelloWorldServletTestHelloWorldServletTest		{{
		@		@DeploymentDeployment((testabletestable==falsefalse))
				publicpublic		staticstatic	WebArchive		WebArchive	createcreate(())		{{
												returnreturn	ShrinkWrap	ShrinkWrap..createcreate((WebArchiveWebArchive..classclass,,		"hello.war""hello.war"))
																				..addClassaddClass((HelloWorldServletHelloWorldServlet..classclass));;
				}}
				
		@HostIp		@HostIp
		String	hostIp		String	hostIp;;
		@		@HostPortHostPort((containerName	containerName	==		"tomcat""tomcat",,	value		value	==		80808080))
		int	tomcatPort		int	tomcatPort;;
		@Test		@Test
				publicpublic		voidvoid		testtest((@ArquillianResource	URL	base@ArquillianResource	URL	base))	throws	IOException		throws	IOException	{{
				URL	obj					URL	obj	==		newnew		URLURL((basebase,,		"HelloWorld""HelloWorld"));;
				}}
P I N G P O N G T E S T . J A V A
C O N T A I N E R L E S S
W H A T 	 I S 	 C O N T A I N E RL E S S ?
Runs	any	application	that	runs	on	Docker
W H A T 	 I S 	 C O N T A I N E RL E S S ?
Runs	any	application	that	runs	on	Docker
Including	but	not	limited	to	node.js,	Wildfly	Swarm,	Spring	Boot,	Vert.x,	Go
W H A T 	 I S 	 C O N T A I N E RL E S S ?
Runs	any	application	that	runs	on	Docker
Including	but	not	limited	to	node.js,	Wildfly	Swarm,	Spring	Boot,	Vert.x,	Go
Shrinkwrap	support
dependencies	dependencies	{{
		testCompile			testCompile	'org.arquillian.cube:arquillian-cube-containerless:...''org.arquillian.cube:arquillian-cube-containerless:...'
}}
B U I L D . G R A D L E
@@RunWithRunWith((ArquillianArquillian..classclass))
publicpublic		classclass		NodeTestNodeTest		{{
				@				@DeploymentDeployment((testable	testable	==		falsefalse))
								publicpublic		staticstatic	GenericArchive		GenericArchive	createDeploymentcreateDeployment(())		{{
																returnreturn	ShrinkWrap	ShrinkWrap..createcreate((GenericArchiveGenericArchive..classclass,,		"app.tar""app.tar"))
																																..addadd((newnew		FileAssetFileAsset((newnew		FileFile(("src/test/js/index.js""src/test/js/index.js")))),,		"index.js""index.js"))
																																..addadd((newnew		FileAssetFileAsset((newnew		FileFile(("src/test/js/package.json""src/test/js/package.json")))),,		"package.json""package.json"));;
								}}
								
				@Test				@Test
								publicpublic		voidvoid		should_work_its_javascriptshould_work_its_javascript((@ArquillianResource	URL	base@ArquillianResource	URL	base))		{{
												//	...//	...
								}}
}}
N O D E T E S T . J A V A
FROM	nodeFROM	node::latestlatest
RUN	mkdir	RUN	mkdir	--p	p	//usrusr//srcsrc//appapp
WORKDIR	WORKDIR	//usrusr//srcsrc//appapp
ADD	$ADD	${{deployableFilenamedeployableFilename}}		//usrusr//srcsrc//appapp
RUN	npm	installRUN	npm	install
EXPOSE	EXPOSE	80808080
CMD	CMD	[[		"npm""npm",,		"start""start"		]]
D O C K E R F I L E T E M P L A T E
D E M O
T R Y 	 D O C K E R
Run	builds	in	containers
T R Y 	 D O C K E R
Run	builds	in	containers
More	than	one	at	the	time
T R Y 	 D O C K E R
Run	builds	in	containers
More	than	one	at	the	time
Use	isolated	networks
D E M O
A R Q U I L L I A N 	 C U B E 	 Q
W H A T 	 I S 	 Q ?
W H A T 	 I S 	 Q : 	C O N T A I N E R 	 C H A O S ?
stop,	kill	&	remove	containers
W H A T 	 I S 	 Q : 	S Y S T E M 	 C H A O S ?
block	ports,	burn	cpu,	burn	io,	fill	disk,	kill	process	&	null	route
W H A T 	 I S 	 Q : 	N E T W O R K 	 C H A O S ?
latency,	bandwidth,	down,	timeout
helloworldhelloworld::
		image		image::	lordofthejars	lordofthejars//helloworldhelloworld
		ports		ports::
								--		"8081:8080""8081:8080"
		links		links::
								--	pingpong	pingpong::pingpongpingpong
								
pingpongpingpong::
		image		image::	jonmorehouse	jonmorehouse//pingping--pongpong
		expose		expose::
												--		"8080""8080"
												
D O C K E R - C O M P O S E . Y M L
dependencies	dependencies	{{
		testCompile			testCompile	'org.arquillian.cube.q:arquillian-cube-q-toxic:...''org.arquillian.cube.q:arquillian-cube-q-toxic:...'
}}
B U I L D . G R A D L E
@@RunWithRunWith((ArquillianArquillian..classclass))
publicpublic		classclass		ToxicTestCaseToxicTestCase		{{
		@ArquillianResource		@ArquillianResource
				privateprivate	NetworkChaos	networkChaos	NetworkChaos	networkChaos;;
				
		@HostIp		@HostIp
				privateprivate	String	ip	String	ip;;
				
T O X I C T E S T C A S E . J A V A
@@RunWithRunWith((ArquillianArquillian..classclass))
publicpublic		classclass		ToxicTestCaseToxicTestCase		{{
		@ArquillianResource		@ArquillianResource
				privateprivate	NetworkChaos	networkChaos	NetworkChaos	networkChaos;;
				
		@HostIp		@HostIp
				privateprivate	String	ip	String	ip;;
				
		@Test		@Test
				publicpublic		voidvoid		should_survive_on_latencyshould_survive_on_latency(())	throws	Exception		throws	Exception	{{
				networkChaos				networkChaos..onon(("pingpong""pingpong",,		80808080))..latencylatency((40004000,,		00,,		(())		-->>		{{
						URL	url							URL	url	==		newnew		URLURL(("http://""http://"		++	ip		ip	++		":"":"		++		80818081		++		"/hw/HelloWorld""/hw/HelloWorld"));;
						String	response							String	response	==	IOUtil	IOUtil..asStringasString((urlurl..openStreamopenStream(())));;
								}}));;
				}}
}}
T O X I C T E S T C A S E . J A V A
D E M O
L E T ' S 	 R E C A P
Unit	tests	are	important
Unit	tests	are	important
So	are	the	tests	in	production-like	environment
Unit	tests	are	important
So	are	the	tests	in	production-like	environment
When	it	hurts	automate!
Unit	tests	are	important
So	are	the	tests	in	production-like	environment
When	it	hurts	automate!
Arquillian	works	for	Non	Java	projects
Unit	tests	are	important
So	are	the	tests	in	production-like	environment
When	it	hurts	automate!
Arquillian	works	for	Non	Java	projects
Expect	unexpected
Unit	tests	are	important
So	are	the	tests	in	production-like	environment
When	it	hurts	automate!
Arquillian	works	for	Non	Java	projects
Expect	unexpected
Arquillian	extensions
B A R T O S Z 	 M A J S A K
R E D 	 H A T
S O F T W A R E 	 E N G I N E E R
@ M A J S O N
	majson		bartoszmajsak
github.com/lordofthejars/pingpongQ
github.com/arquillian/arquillian-cube/tree/master/docker/ftest-docker-containerobject
github.com/arquillian/arquillian-cube/tree/master/docker/ftest-docker-compose
toxiproxy.io
A R Q U I L L I A N . O R G
D I S C U S S . A R Q U I L L I A N . O R G
C R E A T I V E 	 C O M M O N S 	 P I C T U R E S
S L I D E 	 1 3 	 - 	 H T T P S : / / W W W . F L I C K R . C O M / P H O T O S / F R O D E R I K / 8 2 8 3 7 2 4 2 4 0 /
S L I D E 	 1 4 	 - 	 H T T P S : / / W W W . F L I C K R . C O M / P H O T O S / D O O K I N G T O N / 8 4 4 5 5 0 4 3 9 6
S L I D E 	 2 2 	 - 	 H T T P S : / / W W W . F L I C K R . C O M / P H O T O S / T H O M A S H A W K / 2 6 8 1 7 4 4 7 3 9
S L I D E 	 3 8 	 - 	 H T T P S : / / W W W . F L I C K R . C O M / P H O T O S / N E E L S A N D R I N E / 1 9 5 4 4 4 2 8 2 8 6
S L I D E 	 4 2 	 - 	 H T T P S : / / W W W . F L I C K R . C O M / P H O T O S / A L P H A C H I M P S T U D I O / 1 3 1 4 1 9 9 0 6 2

More Related Content

What's hot

An introduction to the MicroProfile
An introduction to the MicroProfileAn introduction to the MicroProfile
An introduction to the MicroProfile
Alex Soto
 
Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214
David Rodenas
 
Debugging Effectively - php[world] 2015
Debugging Effectively - php[world] 2015Debugging Effectively - php[world] 2015
Debugging Effectively - php[world] 2015
Colin O'Dell
 
Feedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCodeFeedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCode
Haja R
 
Scrum with Kanban; small adjustments, big improvements
Scrum with Kanban; small adjustments, big improvementsScrum with Kanban; small adjustments, big improvements
Scrum with Kanban; small adjustments, big improvements
Paulo Caroli
 
Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017
Colin O'Dell
 
Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017
Colin O'Dell
 
groovy & grails - lecture 9
groovy & grails - lecture 9groovy & grails - lecture 9
groovy & grails - lecture 9
Alexandre Masselot
 
Debugging Effectively - ZendCon 2016
Debugging Effectively - ZendCon 2016Debugging Effectively - ZendCon 2016
Debugging Effectively - ZendCon 2016
Colin O'Dell
 
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
Mintak Son
 
Debugging Effectively - DrupalCon Europe 2016
Debugging Effectively - DrupalCon Europe 2016Debugging Effectively - DrupalCon Europe 2016
Debugging Effectively - DrupalCon Europe 2016
Colin O'Dell
 
Debugging Effectively - DrupalCon Nashville 2018
Debugging Effectively - DrupalCon Nashville 2018Debugging Effectively - DrupalCon Nashville 2018
Debugging Effectively - DrupalCon Nashville 2018
Colin O'Dell
 
Debugging Effectively - All Things Open 2017
Debugging Effectively - All Things Open 2017Debugging Effectively - All Things Open 2017
Debugging Effectively - All Things Open 2017
Colin O'Dell
 
groovy & grails - lecture 5
groovy & grails - lecture 5groovy & grails - lecture 5
groovy & grails - lecture 5
Alexandre Masselot
 
Debugging Effectively - ConFoo Montreal 2019
Debugging Effectively - ConFoo Montreal 2019Debugging Effectively - ConFoo Montreal 2019
Debugging Effectively - ConFoo Montreal 2019
Colin O'Dell
 

What's hot (15)

An introduction to the MicroProfile
An introduction to the MicroProfileAn introduction to the MicroProfile
An introduction to the MicroProfile
 
Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214
 
Debugging Effectively - php[world] 2015
Debugging Effectively - php[world] 2015Debugging Effectively - php[world] 2015
Debugging Effectively - php[world] 2015
 
Feedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCodeFeedback en continu grâce au TDD et au AsCode
Feedback en continu grâce au TDD et au AsCode
 
Scrum with Kanban; small adjustments, big improvements
Scrum with Kanban; small adjustments, big improvementsScrum with Kanban; small adjustments, big improvements
Scrum with Kanban; small adjustments, big improvements
 
Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017
 
Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017
 
groovy & grails - lecture 9
groovy & grails - lecture 9groovy & grails - lecture 9
groovy & grails - lecture 9
 
Debugging Effectively - ZendCon 2016
Debugging Effectively - ZendCon 2016Debugging Effectively - ZendCon 2016
Debugging Effectively - ZendCon 2016
 
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
 
Debugging Effectively - DrupalCon Europe 2016
Debugging Effectively - DrupalCon Europe 2016Debugging Effectively - DrupalCon Europe 2016
Debugging Effectively - DrupalCon Europe 2016
 
Debugging Effectively - DrupalCon Nashville 2018
Debugging Effectively - DrupalCon Nashville 2018Debugging Effectively - DrupalCon Nashville 2018
Debugging Effectively - DrupalCon Nashville 2018
 
Debugging Effectively - All Things Open 2017
Debugging Effectively - All Things Open 2017Debugging Effectively - All Things Open 2017
Debugging Effectively - All Things Open 2017
 
groovy & grails - lecture 5
groovy & grails - lecture 5groovy & grails - lecture 5
groovy & grails - lecture 5
 
Debugging Effectively - ConFoo Montreal 2019
Debugging Effectively - ConFoo Montreal 2019Debugging Effectively - ConFoo Montreal 2019
Debugging Effectively - ConFoo Montreal 2019
 

Viewers also liked

JDD 2016 - Ondrej Mihalyi - How to bake reactive behavior into your Java EE ...
JDD 2016 - Ondrej Mihalyi -  How to bake reactive behavior into your Java EE ...JDD 2016 - Ondrej Mihalyi -  How to bake reactive behavior into your Java EE ...
JDD 2016 - Ondrej Mihalyi - How to bake reactive behavior into your Java EE ...
PROIDEA
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
PROIDEA
 
JDD 2016 - Jakub Kubrynski - Jpa - beyond copy-paste
JDD 2016 - Jakub Kubrynski - Jpa - beyond copy-pasteJDD 2016 - Jakub Kubrynski - Jpa - beyond copy-paste
JDD 2016 - Jakub Kubrynski - Jpa - beyond copy-paste
PROIDEA
 
JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...
JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...
JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...
PROIDEA
 
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
PROIDEA
 
Blazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java UniverseBlazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java Universe
Michał Kordas
 
How to write your database: the story about Event Store
How to write your database: the story about Event StoreHow to write your database: the story about Event Store
How to write your database: the story about Event Store
Victor Haydin
 
JDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacych
JDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacychJDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacych
JDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacych
PROIDEA
 

Viewers also liked (8)

JDD 2016 - Ondrej Mihalyi - How to bake reactive behavior into your Java EE ...
JDD 2016 - Ondrej Mihalyi -  How to bake reactive behavior into your Java EE ...JDD 2016 - Ondrej Mihalyi -  How to bake reactive behavior into your Java EE ...
JDD 2016 - Ondrej Mihalyi - How to bake reactive behavior into your Java EE ...
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
 
JDD 2016 - Jakub Kubrynski - Jpa - beyond copy-paste
JDD 2016 - Jakub Kubrynski - Jpa - beyond copy-pasteJDD 2016 - Jakub Kubrynski - Jpa - beyond copy-paste
JDD 2016 - Jakub Kubrynski - Jpa - beyond copy-paste
 
JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...
JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...
JDD 2016 - Michał Balinski, Oleksandr Goldobin - Practical Non Blocking Micro...
 
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
JDD 2016 - Tomasz Borek - DB for next project? Why, Postgres, of course
 
Blazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java UniverseBlazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java Universe
 
How to write your database: the story about Event Store
How to write your database: the story about Event StoreHow to write your database: the story about Event Store
How to write your database: the story about Event Store
 
JDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacych
JDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacychJDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacych
JDD 2016 - Marcin Stozek - Docker. Przewodnik dla poczatkujacych
 

Similar to JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys

What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?
Marcus Hellberg
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
Ahmed Ehab AbdulAziz
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기
Wanbok Choi
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of Speed
Ilia Idakiev
 
Meteor WWNRW Intro
Meteor WWNRW IntroMeteor WWNRW Intro
Meteor WWNRW Intro
Stephan Hochhaus
 
Andrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on ScalaAndrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on Scala
Scala Italy
 
How to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless ArchitectureHow to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless Architecture
Hidetaka Okamoto
 
Firebase Login Function
Firebase Login FunctionFirebase Login Function
Firebase Login Function
Wing Yiu Ng
 
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
Laura M. Castro
 
Meteor - not just for rockstars
Meteor - not just for rockstarsMeteor - not just for rockstars
Meteor - not just for rockstars
Stephan Hochhaus
 
Pipeline your Pipelines - 2020 All Day DevOps
Pipeline your Pipelines - 2020 All Day DevOpsPipeline your Pipelines - 2020 All Day DevOps
Pipeline your Pipelines - 2020 All Day DevOps
Giulio Vian
 
Introduction to WordPress Hooks 2016
Introduction to WordPress Hooks 2016Introduction to WordPress Hooks 2016
Introduction to WordPress Hooks 2016
Ian Wilson
 
React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101
Ranatchai Chernbamrung
 
Deployments in one click!
Deployments in one click!Deployments in one click!
Deployments in one click!
Manuel de la Peña Peña
 
Controlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous DeliveryControlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous Delivery
walkmod
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QAFest
 
OpenML DALI
OpenML DALIOpenML DALI
OpenML DALI
Joaquin Vanschoren
 
Build and deploy multiarch Linux and Windows Container images
Build and deploy multiarch Linux and Windows Container imagesBuild and deploy multiarch Linux and Windows Container images
Build and deploy multiarch Linux and Windows Container images
Stefan Scherer
 
Learn about AWS (Amazon Web Services)
Learn about AWS (Amazon Web Services)Learn about AWS (Amazon Web Services)
Learn about AWS (Amazon Web Services)
Srashti Jain
 
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceHosting Your Own OTA Update Service
Hosting Your Own OTA Update Service
Quinlan Jung
 

Similar to JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys (20)

What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?What's new in Vaadin 8, how do you upgrade, and what's next?
What's new in Vaadin 8, how do you upgrade, and what's next?
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of Speed
 
Meteor WWNRW Intro
Meteor WWNRW IntroMeteor WWNRW Intro
Meteor WWNRW Intro
 
Andrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on ScalaAndrea Lattuada, Gabriele Petronella - Building startups on Scala
Andrea Lattuada, Gabriele Petronella - Building startups on Scala
 
How to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless ArchitectureHow to develop Alexa Skill Kit based on Serverless Architecture
How to develop Alexa Skill Kit based on Serverless Architecture
 
Firebase Login Function
Firebase Login FunctionFirebase Login Function
Firebase Login Function
 
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
 
Meteor - not just for rockstars
Meteor - not just for rockstarsMeteor - not just for rockstars
Meteor - not just for rockstars
 
Pipeline your Pipelines - 2020 All Day DevOps
Pipeline your Pipelines - 2020 All Day DevOpsPipeline your Pipelines - 2020 All Day DevOps
Pipeline your Pipelines - 2020 All Day DevOps
 
Introduction to WordPress Hooks 2016
Introduction to WordPress Hooks 2016Introduction to WordPress Hooks 2016
Introduction to WordPress Hooks 2016
 
React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101
 
Deployments in one click!
Deployments in one click!Deployments in one click!
Deployments in one click!
 
Controlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous DeliveryControlling Technical Debt with Continuous Delivery
Controlling Technical Debt with Continuous Delivery
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
 
OpenML DALI
OpenML DALIOpenML DALI
OpenML DALI
 
Build and deploy multiarch Linux and Windows Container images
Build and deploy multiarch Linux and Windows Container imagesBuild and deploy multiarch Linux and Windows Container images
Build and deploy multiarch Linux and Windows Container images
 
Learn about AWS (Amazon Web Services)
Learn about AWS (Amazon Web Services)Learn about AWS (Amazon Web Services)
Learn about AWS (Amazon Web Services)
 
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceHosting Your Own OTA Update Service
Hosting Your Own OTA Update Service
 

Recently uploaded

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 

Recently uploaded (20)

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 

JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys