SlideShare a Scribd company logo
1 of 38
Download to read offline
Golang 101
Eric	Fu
May	15,	2017	@	Splunk
Hello,	World
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
2
Hello,	World	
again
package main
import "fmt"
func main() {
ch := sayHello("World")
for str := range ch {
fmt.Println(str)
}
}
func sayHello(name string) <-chan string
{
ch := make(chan string)
go func() {
defer close(ch)
ch <- "Hello"
ch <- name
}()
return ch;
}
3
What	is	Go?
Go	is	an	open	source	programming	language	that	makes	it	easy	to	build	
simple,	reliable,	and	efficient software.
- golang.org
4
History
• Open	source	since	2009	with	a	very	active	community.
• Language	stable	as	of	Go	1,	early	2012
• Latest	Version:	Go	1.8,	released	on	Feb	2017
5
Designers
V8	JavaScript	engine,	Java	HotSpot VM
Robert Griesemer Rob Pike
UNIX,	Plan	9,	UTF-8
Ken Thompson
UNIX,	Plan	9,	B	language,	 UTF-8
6
Why	Go?
• Go	is	an	answer	to	problems	
of	scale at	Google
7
System	Scale
• Designed	to	scale	to	10⁶⁺	machines
• Everyday	jobs	run	on	1000s	of	machines
• Jobs	coordinate,	interacting	with	others	in	the	system
• Lots	going	on	at	once
Solution:	great	support	for	concurrency
8
Engineering	Scale
• 5000+	developers	across	40+	offices
• 20+	changes	per	minute
• 50%	of	code	base	changes	every	month
• 50	million	test	cases	executed	per	day
• Single	code	tree
Solution:	design	the	language	for	large	code	bases
9
Who	uses	Go?
10
Assuming	you	know	Java...
• Statically	typed
• Garbage	collected
• Memory	safe	(nil	references,	runtime	bounds	checks)
• Methods
• Interfaces
• Type	assertions	(instanceof)
• Reflection
11
Leaved	out...
• No	classes
• No	constructors
• No	inheritance
• No final
• No	exceptions
• No	annotations
• No	user-defined	generics
12
Add	some	Cool	things
• Programs	compile	to	machine	code.	There's	no	VM.
• Statically	linked	binaries
• Control	over	memory	layout
• Function	values	and	lexical	closures
• Built-in	strings	(UTF-8)
• Built-in	generic	maps	and	arrays/slices
• Built-in	concurrency
13
Built-in	Concurrency
CSP - Communicating	sequential	processes	(Hoare,	1978)
• Sequential	execution	is	easy	to	understand.	Async callbacks	are	not.
• “Don't	communicate	by	sharing	memory,	share	memory	by	
communicating.”
CSP	in	Golang:	goroutines,	channels,	select
14
Goroutines
• Goroutines are	like	lightweight	threads.
• They	start	with	tiny	stacks	and	resize	as	needed.
• Go	programs	can	have	hundreds	of	thousands of	them.
• Start	a	goroutine using	the go statement:		go f(args)
• The	Go	runtime	schedules	goroutines onto	OS	threads.
15
Channels
• Provide	communication	between	goroutines.
c := make(chan string)
// goroutine 1
c <- "hello!"
// goroutine 2
s := <-c
fmt.Println(s) // "hello!"
16
Buffered	vs.	Unbuffered	Channels
coroutine producer/consumer
17
c := make(chan string) c := make(chan string, 42)
Hello,	World
again
package main
import "fmt"
func main() {
ch := sayHello("World")
for str := range ch {
fmt.Println(str)
}
}
func sayHello(name string) <-chan string {
ch := make(chan string)
go func() {
defer close(ch)
ch <- "Hello"
ch <- name
}()
return ch;
}
18
Select
• A select statement	blocks	until	communication	can	proceed.
select {
case n := <-foo:
fmt.Println("received from foo", n)
case n := <-bar:
fmt.Println("received from bar", n)
case <- time.After(10 * time.Second)
fmt.Println("time out")
}
19
Function	&	Closure
• Local	variable	escape
20
#include <string>
#include <iostream>
#include <functional>
using namespace std;
function<void()> numberPrinter(int x) {
return [&]() {
cout << "Printer: " << x << endl;
};
}
int main()
{
numberPrinter(123)();
}
Hello,	World
again
package main
import "fmt"
func main() {
var ch = sayHello("World")
for str := range ch {
fmt.Println(str)
}
}
func sayHello(name string) <-chan string {
ch := make(chan string)
go func() {
defer close(ch)
ch <- "Hello"
ch <- name
}()
return ch;
}
21
Struct
• Control	over	memory	layout
• Value vs.	pointer	(reference)
type Example struct {
Number int
Data [128]byte
Payload struct{
Length int
Checksum int
}
}
22
func (e *Example) String() string {
if e == nil {
return "N/A"
}
return fmt.Sprintf("Example %d", e.Number)
}
Method	&	Interface
• Simple	interfaces
• Duck	type
23
// In package "fmt"
type Stringer interface {
String() string
}
Interface	and	Type	assertion
• Empty	interface{}	means	any	type
24
func do(i interface{}) {
switch v := i.(type) {
case int:
fmt.Printf("Twice %v is %vn", v, v*2)
case string:
fmt.Printf("%q is %v bytes longn", v, len(v))
default:
fmt.Printf("I don't know about type %T!n", v)
}
}
Compiled	to	binary
• Run	fast
• Compile	fast
• Deploy	fast
https://benchmarksgame.alioth.debian.org/u64q/fasta.html25
Talk	is	cheap
Show	me	the	code!
26
Design	a	Microservice
27
Design	Secure	Store	for	LSDC
28
Design	Secure	Store	for	LSDC
• Listen	on	API	calls	from	other	micro-services
• While	got	a	request...
• Run	a	handler	function	in	a	new	Goroutine to	handle	this	request
• Pass a	channel	(context)	to	control	request	timeout
• Back	to	main	loop,	waiting	for	next	request
• The	hander	function	does:
• For	PUT:	encrypt	the	secret	with	KMS,	put	it	into	DynamoDB
• For	GET:	query	it	from	DynamoDB,	decrypt	secret	with	KMS
29
Storage	Service	Interface
package storage
import (
"context"
"splunk.com/lsdc_secure_store/common"
)
type Service interface {
PutSecret(ctx context.Context, secret *SecretRecord) error
GetSecret(ctx context.Context, id string) (*SecretRecord, error)
}
type SecretRecord struct {
common.SecretMetadata
common.SecretTriple
}
30
Key	Service	Interface
package keysrv
type Service interface {
GenerateKey(context *SecretContext, size int) (*GeneratedKey, error)
DecryptKey(context *SecretContext, ciphertext []byte) ([]byte, error)
}
type GeneratedKey struct {
Plaintext []byte
Ciphertext []byte
}
type SecretContext struct {
Realm string
Tenant string
}
31
GetSecret
32
func GetSecret(ctx context.Context, id, tenant, realm string) (*common.Secret, error) {
record, err := storageService.GetSecret(ctx, id)
if err != nil {
return nil, err
}
if err := verifyTenantRealm(ctx, record, realm, tenant); err != nil {
return nil, err
}
plaintext, err := Decrypt(ctx, keyService, &keysrv.SecretContext{realm, tenant},
&record.SecretTriple)
if err != nil {
return nil, err
}
return &common.Secret{
SecretMetadata: record.SecretMetadata,
Content: string(plaintext),
}, nil
}
context.Context
• control	request	timeout
• other	request	context
33
func Stream(ctx context.Context, out chan<-
Value) error {
for {
v, err := DoSomething(ctx)
if err != nil {
return err
}
select {
case <-ctx.Done():
return ctx.Err()
case out <- v:
}
}
}
type Context interface {
Deadline() (deadline time.Time, ok bool)
Done() <-chan struct{}
Err() error
Value(key interface{}) interface{}
}
Set	handler
func GetRealmsRealmSecretsID(params secret.GetSecretParams) middleware.Responder {
sec, err := secstore.GetSecret(...)
if err != nil {
return handleError(err)
} else {
return secret.NewGetSecretOK().WithPayload(&models.SecretDataResponse{
Data: &models.SecretData{
Alias: &sec.Alias,
Data: &sec.Content,
LastModified: &sec.LastUpdate,
},
})
}
}
api.SecretGetSecretHandler =
secret.GetSecretHandlerFunc(handlers.GetRealmsRealmSecretsID)
34
Demo	(optional)
35
• A	very	basic	http	server
cd $GOPATH/src/github.com/fuyufjh/gowiki
vim server.go
gofmt -w server.go
go get
go run server.go
go build -o server server.go
So,	What	is	‘Gopher’?
36
Summary
• concurrent
• fast
• simple
• designed	for	large	scale	software
37
Thanks!
38
Learn	Go	>	https://tour.golang.org

More Related Content

What's hot

Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewMarkus Schneider
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLangNVISIA
 
Go Programming Language (Golang)
Go Programming Language (Golang)Go Programming Language (Golang)
Go Programming Language (Golang)Ishin Vin
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by GoogleUttam Gandhi
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)ShubhamMishra485
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventuremylittleadventure
 
Golang getting started
Golang getting startedGolang getting started
Golang getting startedHarshad Patil
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)Aaron Schlesinger
 
golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptxGuy Komari
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programmingMahmoud Masih Tehrani
 
Microservices in Golang
Microservices in GolangMicroservices in Golang
Microservices in GolangMo'ath Qasim
 
GO programming language
GO programming languageGO programming language
GO programming languagetung vu
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrencyjgrahamc
 

What's hot (20)

Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / Overview
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
 
Go Programming Language (Golang)
Go Programming Language (Golang)Go Programming Language (Golang)
Go Programming Language (Golang)
 
Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
 
GoLang Introduction
GoLang IntroductionGoLang Introduction
GoLang Introduction
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)
 
Go Lang Tutorial
Go Lang TutorialGo Lang Tutorial
Go Lang Tutorial
 
Go lang
Go langGo lang
Go lang
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
 
Golang getting started
Golang getting startedGolang getting started
Golang getting started
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)
 
golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptx
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programming
 
Microservices in Golang
Microservices in GolangMicroservices in Golang
Microservices in Golang
 
GO programming language
GO programming languageGO programming language
GO programming language
 
Concurrency With Go
Concurrency With GoConcurrency With Go
Concurrency With Go
 
An introduction to programming in Go
An introduction to programming in GoAn introduction to programming in Go
An introduction to programming in Go
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrency
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
 

Similar to Golang 101

Python programming workshop session 1
Python programming workshop session 1Python programming workshop session 1
Python programming workshop session 1Abdul Haseeb
 
Inroduction to golang
Inroduction to golangInroduction to golang
Inroduction to golangYoni Davidson
 
Coding in GO - GDG SL - NSBM
Coding in GO - GDG SL - NSBMCoding in GO - GDG SL - NSBM
Coding in GO - GDG SL - NSBMRaveen Perera
 
Lex (lexical analyzer)
Lex (lexical analyzer)Lex (lexical analyzer)
Lex (lexical analyzer)Sami Said
 
Lex tool manual
Lex tool manualLex tool manual
Lex tool manualSami Said
 
Go programming introduction
Go programming introductionGo programming introduction
Go programming introductionGinto Joseph
 
Golang iran - tutorial go programming language - Preliminary
Golang iran - tutorial  go programming language - PreliminaryGolang iran - tutorial  go programming language - Preliminary
Golang iran - tutorial go programming language - Preliminarygo-lang
 
なぜ検索しなかったのか
なぜ検索しなかったのかなぜ検索しなかったのか
なぜ検索しなかったのかN Masahiro
 
Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Robert Stern
 
Go from a PHP Perspective
Go from a PHP PerspectiveGo from a PHP Perspective
Go from a PHP PerspectiveBarry Jones
 
10 reasons to be excited about go
10 reasons to be excited about go10 reasons to be excited about go
10 reasons to be excited about goDvir Volk
 
Static Analysis in Go
Static Analysis in GoStatic Analysis in Go
Static Analysis in GoTakuya Ueda
 
Go serving: Building server app with go
Go serving: Building server app with goGo serving: Building server app with go
Go serving: Building server app with goHean Hong Leong
 

Similar to Golang 101 (20)

Python programming workshop session 1
Python programming workshop session 1Python programming workshop session 1
Python programming workshop session 1
 
Happy Go programing
Happy Go programingHappy Go programing
Happy Go programing
 
Inroduction to golang
Inroduction to golangInroduction to golang
Inroduction to golang
 
Coding in GO - GDG SL - NSBM
Coding in GO - GDG SL - NSBMCoding in GO - GDG SL - NSBM
Coding in GO - GDG SL - NSBM
 
Lex (lexical analyzer)
Lex (lexical analyzer)Lex (lexical analyzer)
Lex (lexical analyzer)
 
Python basics
Python basicsPython basics
Python basics
 
Lex tool manual
Lex tool manualLex tool manual
Lex tool manual
 
Go introduction
Go   introductionGo   introduction
Go introduction
 
Go programming introduction
Go programming introductionGo programming introduction
Go programming introduction
 
Golang iran - tutorial go programming language - Preliminary
Golang iran - tutorial  go programming language - PreliminaryGolang iran - tutorial  go programming language - Preliminary
Golang iran - tutorial go programming language - Preliminary
 
Let's Go-lang
Let's Go-langLet's Go-lang
Let's Go-lang
 
なぜ検索しなかったのか
なぜ検索しなかったのかなぜ検索しなかったのか
なぜ検索しなかったのか
 
Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1
 
Go from a PHP Perspective
Go from a PHP PerspectiveGo from a PHP Perspective
Go from a PHP Perspective
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
10 reasons to be excited about go
10 reasons to be excited about go10 reasons to be excited about go
10 reasons to be excited about go
 
50 shades of PHP
50 shades of PHP50 shades of PHP
50 shades of PHP
 
go.ppt
go.pptgo.ppt
go.ppt
 
Static Analysis in Go
Static Analysis in GoStatic Analysis in Go
Static Analysis in Go
 
Go serving: Building server app with go
Go serving: Building server app with goGo serving: Building server app with go
Go serving: Building server app with go
 

More from 宇 傅

Parallel Query Execution
Parallel Query ExecutionParallel Query Execution
Parallel Query Execution宇 傅
 
The Evolution of Data Systems
The Evolution of Data SystemsThe Evolution of Data Systems
The Evolution of Data Systems宇 傅
 
The Volcano/Cascades Optimizer
The Volcano/Cascades OptimizerThe Volcano/Cascades Optimizer
The Volcano/Cascades Optimizer宇 傅
 
PelotonDB - A self-driving database for hybrid workloads
PelotonDB - A self-driving database for hybrid workloadsPelotonDB - A self-driving database for hybrid workloads
PelotonDB - A self-driving database for hybrid workloads宇 傅
 
Immutable Data Structures
Immutable Data StructuresImmutable Data Structures
Immutable Data Structures宇 傅
 
The Case for Learned Index Structures
The Case for Learned Index StructuresThe Case for Learned Index Structures
The Case for Learned Index Structures宇 傅
 
Spark and Spark Streaming
Spark and Spark StreamingSpark and Spark Streaming
Spark and Spark Streaming宇 傅
 
Functional Programming in Java 8
Functional Programming in Java 8Functional Programming in Java 8
Functional Programming in Java 8宇 傅
 
第三届阿里中间件性能挑战赛冠军队伍答辩
第三届阿里中间件性能挑战赛冠军队伍答辩第三届阿里中间件性能挑战赛冠军队伍答辩
第三届阿里中间件性能挑战赛冠军队伍答辩宇 傅
 
Data Streaming Algorithms
Data Streaming AlgorithmsData Streaming Algorithms
Data Streaming Algorithms宇 傅
 
Docker Container: isolation and security
Docker Container: isolation and securityDocker Container: isolation and security
Docker Container: isolation and security宇 傅
 
Paxos and Raft Distributed Consensus Algorithm
Paxos and Raft Distributed Consensus AlgorithmPaxos and Raft Distributed Consensus Algorithm
Paxos and Raft Distributed Consensus Algorithm宇 傅
 

More from 宇 傅 (12)

Parallel Query Execution
Parallel Query ExecutionParallel Query Execution
Parallel Query Execution
 
The Evolution of Data Systems
The Evolution of Data SystemsThe Evolution of Data Systems
The Evolution of Data Systems
 
The Volcano/Cascades Optimizer
The Volcano/Cascades OptimizerThe Volcano/Cascades Optimizer
The Volcano/Cascades Optimizer
 
PelotonDB - A self-driving database for hybrid workloads
PelotonDB - A self-driving database for hybrid workloadsPelotonDB - A self-driving database for hybrid workloads
PelotonDB - A self-driving database for hybrid workloads
 
Immutable Data Structures
Immutable Data StructuresImmutable Data Structures
Immutable Data Structures
 
The Case for Learned Index Structures
The Case for Learned Index StructuresThe Case for Learned Index Structures
The Case for Learned Index Structures
 
Spark and Spark Streaming
Spark and Spark StreamingSpark and Spark Streaming
Spark and Spark Streaming
 
Functional Programming in Java 8
Functional Programming in Java 8Functional Programming in Java 8
Functional Programming in Java 8
 
第三届阿里中间件性能挑战赛冠军队伍答辩
第三届阿里中间件性能挑战赛冠军队伍答辩第三届阿里中间件性能挑战赛冠军队伍答辩
第三届阿里中间件性能挑战赛冠军队伍答辩
 
Data Streaming Algorithms
Data Streaming AlgorithmsData Streaming Algorithms
Data Streaming Algorithms
 
Docker Container: isolation and security
Docker Container: isolation and securityDocker Container: isolation and security
Docker Container: isolation and security
 
Paxos and Raft Distributed Consensus Algorithm
Paxos and Raft Distributed Consensus AlgorithmPaxos and Raft Distributed Consensus Algorithm
Paxos and Raft Distributed Consensus Algorithm
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Golang 101