SlideShare a Scribd company logo
CONCURRENCY
&
RUBY
Rocky	Jaiswal
RubyConf	India	2013
WHY	CONCURRENCY?
ABOUT	ME
Learning	programming	for	the	last	11	years
Did	Java	for	around	8	years
Started	learning	Ruby	~3	years	back
♥	Ruby
♥	the	Ruby	community
Also	learning	some	CoffeeScript	and	Scala
http://rockyj.in
@whatsuprocky
CONCURRENCY?
Concurrency	is	when	two	tasks	can	start,	run,	and
complete	in	overlapping	time	periods
Concurrency	can	be	implemented	even	in	single
processing	units	to	speed	things	up
Concurrency	is	non-deterministic
Whereas	a		parallel	program	is	one	that	merely	runs	on
multiple	processors,	with	the	goal	of	hopefully	running
faster	than	it	would	on	a	single	CPU
THREADS	VS	PROCESSESS
Threads	are	light	weight	processes	that	run	in	the	same
memory	context
Ruby	has	Green	Threads	which	are	managed	by	the	Ruby
process
JRuby	has	real	OS	thread	that	run	parallel	to	the	parent
thread
THREADS	IN	RUBY
SAMPLE	UNICORN	SETUP
15	Unicorns	=	15	Processes
1	Unicorn	Process	~=	150	MB
15	Processes	~=	2	GB	RAM*
Scaling	this	means	more	processes	=	more	memory	=
more	money
Also,	If	you	are	CPU	bound	you	want	to	use	no	more
unicorn	processes	than	you	have	cores,	otherwise	you
overload	the	system	and	slow	down	the	scheduler.
CONCURRENCY	IS	GOOD
JRuby	+	Puma	/	Torquebox
High-Scalability	with	less	memory
Resque	/	Sidekiq
More	workers	and	faster	processing	with	less	memory
SO	IS	IT	ALL	DOOM	AND	GLOOM?
No!
Most	Rails	applications	are	IO	bound
With	MRI	you	are	always	thread	safe
MRI	is	getting	faster	and	GC	is	getting	better
Processes	management	is	optimized
Passenger	is	using	a	hybrid	-	evented	+	threaded	/
process	architecture
THREAD-SAFETY
LET	ME	GIVE	YOU	A	DEMO
Appending	to	Arrays:
MRI	Version
vs
JRuby	Version
DEMO
RUN	CODE	ON	MRI	&	JRUBY
array	=	[]
5.times.map	do
		Thread.new	do	#Init	5	threads
				1000.times	do
						array	<<	nil	#In	each	thread	add	1000	elements	to	the	Ar
				end
		end
end.each(&:join)
puts	array.size
EVEN	APPENDING	TO	ARRAYS	IS
NOT	THREAD	SAFE!
WHAT	ABOUT	RAILS
config.threadsafe!
	def	threadsafe!
		@preload_frameworks	=	true
		@cache_classes						=	true
		@dependency_loading	=	false
		@allow_concurrency		=	true
		self
end
JRUBY	ON	RAILS
DEMO
BAD	COUNTER	CODE
	class	PagesController	<	ApplicationController
		@counter	=	0
		class	<<	self
				attr_accessor	:counter
		end
		#Classic	read-modify-write	problem
		def	index
				counter	=	self.class.counter	#	read
				sleep(0.1)
				counter	+=	1	#update
				sleep(0.1)
				self.class.counter	=	counter	#	write
				users	=	User.all
				puts	"-----------"	+	self.class.counter.to_s	+	"------------"
		end
end
UGLY	SYNCHRONIZED	CODE
	class	PagesController	<	ApplicationController
		@counter	=	0
		@semaphore	=	Mutex.new
		class	<<	self
				attr_accessor	:counter
				attr_accessor	:semaphore
		end
		def	index
				#counter	=	self.class.counter	#	read
				sleep(0.1)
				self.class.semaphore.synchronize	{
						self.class.counter	+=	1	#update
				}
				sleep(0.1)
				#self.class.counter	=	counter	#	write
				users	=	User.all
				puts	"-----------"	+	self.class.counter.to_s	+	"------------"
		end
end
RAILS	4	IS	CONCURRENCY
ENABLED	BY	DEFAULT
CONCURRENCY	INTRODUCES
Race	Conditions
Deadlocks
Starvation
etc.
BUT	GIVES	YOU
Speed
Less	Memory	Usage
SAFE	CONCURRENCY
Don't	do	it.
If	you	must	do	it,	don't	share	data	across
threads.
If	you	must	share	data	across	threads,	don't
share	mutable	data.
If	you	must	share	mutable	data	across	threads,
synchronize	access	to	that	data.
THREAD	SAFETY	IN	JRUBY
LOCKS
ATOMICITY
IMMUTABILITY
ATOMIC	COUNTER
java_import	'java.util.concurrent.atomic.AtomicInteger'
class	PagesController	<	ApplicationController
		@counter	=	AtomicInteger.new(1)	
		
		class	<<	self
				attr_accessor	:counter
		end
		def	index
				sleep(0.1)
				counter	=	self.class.counter.getAndIncrement()	#update
				sleep(0.1)
				users	=	User.all
				puts	"-----------------"	+	counter.to_s	+	"-----------------"
		end
end
ALL	THIS	SUCKS!
95%	of	syncronized	code	is	broken.	The	other	5%	is
written	by	Brian	Goetz.	-	Venkat	Subramaniam
ENTER	ACTOR
THE	ACTOR	MODEL
Introduced	by	Carl	Hewitt	in	1973
Contributions	by	a	lot	of	scholars	and	universities
Popularized	by	Erlang,	now	in	Scala
Simple	and	high-level	abstractions	for	concurrency	and
parallelism
Objects	are	Actors	each	with	their	own	state	which	is	never
shared
Communication	happens	through	messages
Very	lightweight	event-driven	processes	(approximately	2.7
million	actors	per	GB	RAM	[Akka])
THE	ACTOR	MODEL	-2
Easier	to	deal	with	humans	than	with	threads
Like	humans,	Actors	communicate	via	messages
No	state	sharing,	communicate	via	immutable	messages
IMPLEMENTATIONS
PRODUCER	CONSUMER	PROBLEM
Demo	with	JRuby	+	Locks
Demo	with	JRuby	+	Celluloid
PRODUCER	CONSUMER
with	locks
HTTPS://GIST.GITHUB.COM/ROCKY-
JAISWAL/5847810
PRODUCER	CONSUMER
with	actors
HTTPS://GIST.GITHUB.COM/ROCKY-
JAISWAL/5847814
SUMMARY
Concurrency	is	the	need	of	the	hour
MRI	is	thread	safe	by	default	due	to	GIL	/	GVL
JRuby	gives	you	real	concurrency	(RBX	as	well)
With	power	comes	responsibility
Don't	worry,	concurrency	can	be	easy	if	you	follow	the
ground	rules
If	you	want	to	write	concurrent	code	yourself,	use
Actors
*	I	did	not	cover	STM	(provided	by	Clojure)
THANK	YOU!
QUESTIONS
#A	lot	of	this	content	has	been	taken	from	blogs,	wikis	and	books.	I	do	not	claim	it	is	my
own	and	I	wholeheartedly	thank	everyone	who	helped	me	with	this	presentation.

More Related Content

What's hot

Rubyhosting
RubyhostingRubyhosting
Rubyhosting
Artit Rubybox
 
JRuby - Everything in a single process
JRuby - Everything in a single processJRuby - Everything in a single process
JRuby - Everything in a single process
ocher
 
AWS Lambdas are cool - Cheminfo Stories Day 1
AWS Lambdas are cool - Cheminfo Stories Day 1AWS Lambdas are cool - Cheminfo Stories Day 1
AWS Lambdas are cool - Cheminfo Stories Day 1
ChemAxon
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To Rails
Eric Gruber
 
My S Q L Replication Getting The Most From Slaves
My S Q L  Replication  Getting  The  Most  From  SlavesMy S Q L  Replication  Getting  The  Most  From  Slaves
My S Q L Replication Getting The Most From SlavesPerconaPerformance
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
Gourab Mitra
 
Scaling a Web Service
Scaling a Web ServiceScaling a Web Service
Scaling a Web ServiceLeon Ho
 

What's hot (8)

Rubyhosting
RubyhostingRubyhosting
Rubyhosting
 
JRuby - Everything in a single process
JRuby - Everything in a single processJRuby - Everything in a single process
JRuby - Everything in a single process
 
AWS Lambdas are cool - Cheminfo Stories Day 1
AWS Lambdas are cool - Cheminfo Stories Day 1AWS Lambdas are cool - Cheminfo Stories Day 1
AWS Lambdas are cool - Cheminfo Stories Day 1
 
Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To Rails
 
My S Q L Replication Getting The Most From Slaves
My S Q L  Replication  Getting  The  Most  From  SlavesMy S Q L  Replication  Getting  The  Most  From  Slaves
My S Q L Replication Getting The Most From Slaves
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Scaling a Web Service
Scaling a Web ServiceScaling a Web Service
Scaling a Web Service
 

Viewers also liked

What lies beneath the beautiful code?
What lies beneath the beautiful code?What lies beneath the beautiful code?
What lies beneath the beautiful code?
Niranjan Sarade
 
Testing smells
Testing smellsTesting smells
Testing smells
Sidu Ponnappa
 
Lightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open SourceLightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open SourceSidu Ponnappa
 
Everything ruby
Everything rubyEverything ruby
Everything ruby
ajeygore
 
Ruby Internals
Ruby InternalsRuby Internals
Ruby Internals
Burke Libbey
 
Aspen ideas Festival Talk on Gov20
Aspen ideas Festival Talk on Gov20Aspen ideas Festival Talk on Gov20
Aspen ideas Festival Talk on Gov20
Tim O'Reilly
 
clearScienceStrataRx2012
clearScienceStrataRx2012clearScienceStrataRx2012
clearScienceStrataRx2012
OReillyStrata
 
Awakening India - Jago Party
Awakening India - Jago PartyAwakening India - Jago Party
Awakening India - Jago Party
Kapil Mohan
 
Open Data: From the Information Age to the Action Age (Keynote File)
Open Data: From the Information Age to the Action Age (Keynote File)Open Data: From the Information Age to the Action Age (Keynote File)
Open Data: From the Information Age to the Action Age (Keynote File)
Tim O'Reilly
 
Creating actionable marketo reports july, 2013
Creating actionable marketo reports   july, 2013Creating actionable marketo reports   july, 2013
Creating actionable marketo reports july, 2013Inga Romanoff
 
Larry's Free Culture
Larry's Free CultureLarry's Free Culture
Larry's Free CultureKapil Mohan
 
Parzania Movie Preview
Parzania Movie PreviewParzania Movie Preview
Parzania Movie Preview
Kapil Mohan
 
What we can take for granted in online communities
What we can take for granted in online communitiesWhat we can take for granted in online communities
What we can take for granted in online communities
Chris Messina
 
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
OSCON Byrum
 
A New Business World Within A Blockchain
A New Business World Within A BlockchainA New Business World Within A Blockchain
A New Business World Within A Blockchain
Alex Chepurnoy
 
Pinterest for Business 101
Pinterest for Business 101Pinterest for Business 101
Pinterest for Business 101
Nick Armstrong
 
Visual Conversations on Urban Futures - DRS 2016
Visual Conversations on Urban Futures - DRS 2016Visual Conversations on Urban Futures - DRS 2016
Visual Conversations on Urban Futures - DRS 2016
serena pollastri
 
A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...
A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...
A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...
SMART Infrastructure Facility
 
Cio Exchange08
Cio Exchange08Cio Exchange08
Cio Exchange08
Tim O'Reilly
 
Government 2.0
Government 2.0Government 2.0
Government 2.0
Tim O'Reilly
 

Viewers also liked (20)

What lies beneath the beautiful code?
What lies beneath the beautiful code?What lies beneath the beautiful code?
What lies beneath the beautiful code?
 
Testing smells
Testing smellsTesting smells
Testing smells
 
Lightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open SourceLightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open Source
 
Everything ruby
Everything rubyEverything ruby
Everything ruby
 
Ruby Internals
Ruby InternalsRuby Internals
Ruby Internals
 
Aspen ideas Festival Talk on Gov20
Aspen ideas Festival Talk on Gov20Aspen ideas Festival Talk on Gov20
Aspen ideas Festival Talk on Gov20
 
clearScienceStrataRx2012
clearScienceStrataRx2012clearScienceStrataRx2012
clearScienceStrataRx2012
 
Awakening India - Jago Party
Awakening India - Jago PartyAwakening India - Jago Party
Awakening India - Jago Party
 
Open Data: From the Information Age to the Action Age (Keynote File)
Open Data: From the Information Age to the Action Age (Keynote File)Open Data: From the Information Age to the Action Age (Keynote File)
Open Data: From the Information Age to the Action Age (Keynote File)
 
Creating actionable marketo reports july, 2013
Creating actionable marketo reports   july, 2013Creating actionable marketo reports   july, 2013
Creating actionable marketo reports july, 2013
 
Larry's Free Culture
Larry's Free CultureLarry's Free Culture
Larry's Free Culture
 
Parzania Movie Preview
Parzania Movie PreviewParzania Movie Preview
Parzania Movie Preview
 
What we can take for granted in online communities
What we can take for granted in online communitiesWhat we can take for granted in online communities
What we can take for granted in online communities
 
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
 
A New Business World Within A Blockchain
A New Business World Within A BlockchainA New Business World Within A Blockchain
A New Business World Within A Blockchain
 
Pinterest for Business 101
Pinterest for Business 101Pinterest for Business 101
Pinterest for Business 101
 
Visual Conversations on Urban Futures - DRS 2016
Visual Conversations on Urban Futures - DRS 2016Visual Conversations on Urban Futures - DRS 2016
Visual Conversations on Urban Futures - DRS 2016
 
A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...
A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...
A GeoSocial Intelligence Framework for Studying & Promoting Resilience to Sea...
 
Cio Exchange08
Cio Exchange08Cio Exchange08
Cio Exchange08
 
Government 2.0
Government 2.0Government 2.0
Government 2.0
 

Similar to Concurrency & Ruby

JRuby and Google App Engine
JRuby and Google App EngineJRuby and Google App Engine
JRuby and Google App Engine
joshsmoore
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
Parallel js
Parallel jsParallel js
Parallel js
Shams Nahid
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
luccastera
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
Pradeep Elankumaran
 
Day 8 - jRuby
Day 8 - jRubyDay 8 - jRuby
Day 8 - jRuby
Barry Jones
 
NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...
NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...
NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...
Tien Nguyen
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?
Barry Jones
 
Feels Like Ruby - Ruby Kaigi 2010
Feels Like Ruby - Ruby Kaigi 2010Feels Like Ruby - Ruby Kaigi 2010
Feels Like Ruby - Ruby Kaigi 2010
Sarah Mei
 
Ruby/Rails Performance Tips
Ruby/Rails Performance TipsRuby/Rails Performance Tips
Ruby/Rails Performance Tips
PatrickMcSweeny
 
Node.JS Expreee.JS scale webapp on Google cloud
Node.JS Expreee.JS scale webapp on Google cloudNode.JS Expreee.JS scale webapp on Google cloud
Node.JS Expreee.JS scale webapp on Google cloud
Jimish Parekh
 
performance_tuning.pdf
performance_tuning.pdfperformance_tuning.pdf
performance_tuning.pdf
Alexadiaz52
 
performance_tuning.pdf
performance_tuning.pdfperformance_tuning.pdf
performance_tuning.pdf
Alexadiaz52
 
Gluecon 2014 - Bringing Node.js to the JVM
Gluecon 2014 - Bringing Node.js to the JVMGluecon 2014 - Bringing Node.js to the JVM
Gluecon 2014 - Bringing Node.js to the JVM
Jeremy Whitlock
 
Concurrency in java
Concurrency in javaConcurrency in java
Concurrency in java
Saquib Sajid
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac x
Remote Stacx
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
Robert Postill
 

Similar to Concurrency & Ruby (20)

JRuby and Google App Engine
JRuby and Google App EngineJRuby and Google App Engine
JRuby and Google App Engine
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
 
Concurrency in ruby
Concurrency in rubyConcurrency in ruby
Concurrency in ruby
 
Parallel js
Parallel jsParallel js
Parallel js
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
 
Message Queues in Ruby - An Overview
Message Queues in Ruby - An OverviewMessage Queues in Ruby - An Overview
Message Queues in Ruby - An Overview
 
re7olabini
re7olabinire7olabini
re7olabini
 
Day 8 - jRuby
Day 8 - jRubyDay 8 - jRuby
Day 8 - jRuby
 
NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...
NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...
NodeJS or Apache: Unveiling the Differences in Performance, Use Cases, and Se...
 
What's the "right" PHP Framework?
What's the "right" PHP Framework?What's the "right" PHP Framework?
What's the "right" PHP Framework?
 
Feels Like Ruby - Ruby Kaigi 2010
Feels Like Ruby - Ruby Kaigi 2010Feels Like Ruby - Ruby Kaigi 2010
Feels Like Ruby - Ruby Kaigi 2010
 
Ruby/Rails Performance Tips
Ruby/Rails Performance TipsRuby/Rails Performance Tips
Ruby/Rails Performance Tips
 
Node.JS Expreee.JS scale webapp on Google cloud
Node.JS Expreee.JS scale webapp on Google cloudNode.JS Expreee.JS scale webapp on Google cloud
Node.JS Expreee.JS scale webapp on Google cloud
 
performance_tuning.pdf
performance_tuning.pdfperformance_tuning.pdf
performance_tuning.pdf
 
performance_tuning.pdf
performance_tuning.pdfperformance_tuning.pdf
performance_tuning.pdf
 
Gluecon 2014 - Bringing Node.js to the JVM
Gluecon 2014 - Bringing Node.js to the JVMGluecon 2014 - Bringing Node.js to the JVM
Gluecon 2014 - Bringing Node.js to the JVM
 
Concurrency in java
Concurrency in javaConcurrency in java
Concurrency in java
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac x
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
 
Rails Concept
Rails ConceptRails Concept
Rails Concept
 

Recently uploaded

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 

Concurrency & Ruby