SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Go programming language
Introduction to Go programming languageIntroduction to Go programming language
Introduction to Go programming languageSlawomir Dorzak
 
Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewMarkus Schneider
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageAniruddha Chakrabarti
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by GoogleUttam Gandhi
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLangNVISIA
 
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
 
Go Programming Language (Golang)
Go Programming Language (Golang)Go Programming Language (Golang)
Go Programming Language (Golang)Ishin Vin
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)ShubhamMishra485
 
Golang getting started
Golang getting startedGolang getting started
Golang getting startedHarshad Patil
 
Introduction to Go language
Introduction to Go languageIntroduction to Go language
Introduction to Go languageTzar Umang
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programmingExotel
 
GO programming language
GO programming languageGO programming language
GO programming languagetung vu
 
Rust Programming Language
Rust Programming LanguageRust Programming Language
Rust Programming LanguageJaeju Kim
 

Was ist angesagt? (20)

Introduction to Go programming language
Introduction to Go programming languageIntroduction to Go programming language
Introduction to Go programming language
 
Golang
GolangGolang
Golang
 
Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / Overview
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
 
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
 
Go Programming Language (Golang)
Go Programming Language (Golang)Go Programming Language (Golang)
Go Programming Language (Golang)
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)
 
GoLang Introduction
GoLang IntroductionGoLang Introduction
GoLang Introduction
 
Golang getting started
Golang getting startedGolang getting started
Golang getting started
 
Introduction to Go language
Introduction to Go languageIntroduction to Go language
Introduction to Go language
 
Go Lang Tutorial
Go Lang TutorialGo Lang Tutorial
Go Lang Tutorial
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programming
 
GO programming language
GO programming languageGO programming language
GO programming language
 
An introduction to programming in Go
An introduction to programming in GoAn introduction to programming in Go
An introduction to programming in Go
 
Rust Programming Language
Rust Programming LanguageRust Programming Language
Rust Programming Language
 

Ähnlich wie 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
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programmingMahmoud Masih Tehrani
 
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
 
golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptxGuy Komari
 

Ähnlich wie 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
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programming
 
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
 
golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptx
 

Mehr von 宇 傅

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宇 傅
 

Mehr von 宇 傅 (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
 

Kürzlich hochgeladen

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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
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
 

Kürzlich hochgeladen (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
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...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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...
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 

Golang 101