P u t t i n g M Q T T i n y o u r t o o l k i - - PowerPoint PPT Presentation

p u t t i n g m q t t i n y o u r t o o l k i t
SMART_READER_LITE
LIVE PREVIEW

P u t t i n g M Q T T i n y o u r t o o l k i - - PowerPoint PPT Presentation

P u t t i n g M Q T T i n y o u r t o o l k i t S e a n D a g u e , D e v e l o p e r A d v o c a t e , I B M t h J u l y 1 9 2 0 1 8 I n t e r a c t i o n P a t t e


slide-1
SLIDE 1

S e a n D a g u e , D e v e l

  • p

e r A d v

  • c

a t e , I B M J u l y 1 9

t h

2 1 8

P u t t i n g M Q T T i n y

  • u

r t

  • l

k i t

slide-2
SLIDE 2

@s d a g u e

I n t e r a c t i

  • n

P a t t e r n s

Client Server HTTP Client Server ? Data Data C l i e n t d r i v e n q u e r i e s S e r v e r d r i v e n d a t a d i s t r i b u t i

  • n
slide-3
SLIDE 3

@s d a g u e

R e a l T i me E v e n t S t r a t e g i e s

  • C

l i e n t P

  • l

l i n g

E a s y t

  • i

mp l e me n t

R e a l l y i n e f fi c i e n t

  • 9

9 + % n

  • p
  • H

T T P L

  • n

g P

  • l

l

K e e p H T T P s

  • c

k e t

  • p

e n , b l

  • c

k

  • n

r e q u e s t s

H e a v y s e r v e r r e s

  • u

r c e u s a g e

  • We

b s

  • c

k e t s

C

  • n

n e c t e d s

  • c

k e t s i n w e b b r

  • w

s e r

  • We

b h

  • k

s

R e g i s t e r c a l l b a c k U R L

N e e d h i g h l y a v a i l a b l e " c a t c h e r " s e r v i c e

O n l y a v a i l a b l e f

  • r

s e r v i c e

  • w

n e r s

  • M

Q T T / A M Q P

O p t i mi z e d p u b / s u b s y s t e ms

We b c l i e n t s u p p

  • r

t r e q u i r e s b r i d g i n g

slide-4
SLIDE 4

@s d a g u e

P u b l i s h / S u b s c r i b e D e s i g n P a t t e r n

  • C
  • mmo

n me s s a g e b u s

E v e r y

  • n

e c a n p u b l i s h t

  • i

t

M e s s a g e s d i r e c t e d t

  • t
  • p

i c s

C

  • n

s u me r s s u b s c r i b e t

  • s

p e c i fi c t

  • p

i c s ( p

  • s

s i b l y b y w i l d c a r d )

  • G
  • d

f

  • r

ma n y t

  • ma

n y i n t e r a c t i

  • n

s

slide-5
SLIDE 5

@s d a g u e

Wh a t i s M Q T T ?

  • M

Q T T i s a n

  • p

e n s t a n d a r d

C r e a t e d i n 1 9 9 9 b y I B M & C i r r u s L i n k , O A S I S s t a n d a r d s i n c e 2 1 3

  • M

Q T T i s d e s i g n e d f

  • r

“ s ma l l f

  • t

p r i n t ” a n d “ l i mi t e d n e t w

  • r

k b a n d w i d t h ”

  • M

Q T T i s t h e b a c k b

  • n

e

  • f

a l l ma j

  • r

P u b l i c C l

  • u

d I

  • T

s e r v i c e s

G

  • g

l e I

  • T

C

  • r

e

  • h

t t p s : / / c l

  • u

d . g

  • g

l e . c

  • m/

i

  • t
  • c
  • r

e /

I B M Wa t s

  • n

I

  • T
  • h

t t p s : / / w w w . i b m. c

  • m/

i n t e r n e t

  • f
  • t

h i n g s /

A ma z

  • n

I

  • T
  • h

t t p s : / / a w s . a ma z

  • n

. c

  • m/

i

  • t
  • p

l a t f

  • r

m

M i c r

  • s
  • f

t A z u r e I

  • T
  • h

t t p s : / / a z u r e . mi c r

  • s
  • f

t . c

  • m/

e n

  • u

s / s e r v i c e s / i

  • t
  • h

u b /

  • M

Q T T h a s ma n y

  • p

e n s

  • u

r c e i mp l e me n t a t i

  • n

s

M

  • s

q u i t t

  • v

e r y p

  • p

u l a r b r

  • k

e r

C l i e n t s b i n d i n g s : A c

  • u

p l e d

  • z

e n l a n g u a g e s

E v e n a n A r d u i n

  • l

i b r a r y – P u b S u b C l i e n t E S P 8 2 6 6

  • A

r d u i n

  • w

i t h b u i l t i n Wi fi

  • $

9 . 9 5 a t A d a f r u i t

slide-6
SLIDE 6

@s d a g u e

M Q T T M e s s a g e F

  • r

ma t

220 characters Any content, up to 2 GB Topic Payload 0,1 Retain

  • Q
  • S
  • b

e s t e f f

  • r

t , 1 d e l i v e r a t l e a s t

  • n

c e , 2 d e l i v e r e x a c t l y

  • n

c e

  • R

e t a i n

  • c
  • n

t e n t w i l l b e s t

  • r

e d

  • n

t h e s e r v e r , r e p l a y e d

  • n

c

  • n

n e c t , d e f a u l t s t

  • n
  • t

s t

  • r

e d

  • T
  • p

i c

  • n

a me f

  • r

me s s a g e , / a r e s p e c i a l

  • P

a y l

  • a

d

  • a

n y t h i n g , 2 G B p a y l

  • a

d l i mi t N

  • t

e : n

  • m

e t a d a t a

  • n

p a c k e t s ( l i k e t i m e s e n t ) , m u s t p u t i t i n p a y l

  • a

d m a n u a l l y 0,1,2 QoS

slide-7
SLIDE 7

@s d a g u e

Wh a t ma k e s a g

  • d

T

  • p

i c S t r u c t u r e ?

  • R
  • t

w i t h A p p N a me

A s s u me mu l t i t e n a n c y

  • F

i n d a n y n a t u r a l h i e r a r c h y

  • f

d a t a

  • O

p t i mi z e f

  • r

s u b s c r i b e r e f fi c i e n c y

O f t e n n e e d t

  • r

e t h i n k t

  • p

i c s t r u c t u r e

  • n

c e y

  • u

s e e u s a g e p a t t e r n s

  • T

h e r e i s n

  • f
  • r

ma l s c h e ma s y s t e m

t

  • p

i c s t r u c t u r e e n c

  • d

e d i n t

  • a

p p l i c a t i

  • n

s E x a mp l e : { a p p n a me } / { l

  • c

a t i

  • n

} / { d e v i c e t y p e } / { s e n s

  • r

t y p e } A l l

  • w

s t h e f

  • l

l

  • w

i n g s u b s c r i p t i

  • n

s : my s e n s

  • r

s / p

  • r

t l a n d / #

  • s

e e e v e r y t h i n g i n P

  • r

t l a n d my s e n s

  • r

s / + / w e a t h e r / +

  • s

e e a l l w e a t h e r s e n s

  • r

s

slide-8
SLIDE 8

@s d a g u e

M Q T T Wi l l s

  • E

v e n t b a s e d s y s t e m

  • me

s s a g e s

  • n

l y s e n t w h e n e v e n t h a p p e n s

  • I

f n

  • t

h i n g i s s e n t , i s t h e c l i e n t h e a l t h y w i t h n

  • n

e w d a t a ,

  • r

d i d i t d i s a p p e a r ?

  • C

l i e n t s c a s e t a " Wi l l "

  • n

c l i e n t c

  • n

n e c t

a me s s a g e s t

  • r

e d i n t h e s e r v e r t h a t w i l l b e s e n t i f t h e s

  • c

k e t c

  • n

n e c t i

  • n

t

  • t

h e c l i e n t b r e a k s

b u i l d i n g b l

  • c

k f

  • r

f a u l t t

  • l

e r a n c e

slide-9
SLIDE 9

@s d a g u e

E x a mp l e A p p l i c a t i

  • n

s

slide-10
SLIDE 10

@s d a g u e

M y H

  • me

We a t h e r S t a t i

  • n
  • B

i l l

  • f

M a t e r i a l s

1 + O r e g

  • n

S c i e n t i fi c We a t h e r S e n s

  • r

s

R a s p b e r r y P i 3 – n e e d s s p e c i fi c p l a c e me n t t

  • s

e e a l l s e n s

  • r

s

R T L

  • S

D R D

  • n

g l e t

  • d

e c

  • d

e 4 3 3 M h z s i g n a l

  • u

t

  • f

a i r

  • L
  • n

g t e r m ( 1 y e a r ) b a c k g r

  • u

n d h a c k i n g p r

  • j

e c t

  • R

e p

  • r

t s t

  • We

a t h e r U n d e r g r

  • u

n d v i a P WS A P I

  • C
  • l

l e c t s t e mp e r a t u r e f r

  • m

n e a r l y e v e r y r

  • m

i n t h e h

  • u

s e

E x t r e me l y u s e f u l f

  • r

t u n i n g F

  • r

c e d A i r H V A C s y s t e m

slide-11
SLIDE 11

@s d a g u e

I n e a r l y 2 1 7 , d i s c

  • v

e r e d H

  • me

A s s i s t a n t H

  • w

t

  • i

n t e g r a t e my w e a t h e r s t a t i

  • n

t

  • t

h i s ?

slide-12
SLIDE 12

@s d a g u e 4 3 3 M h z

  • v

e r t h e a i r

a r w n / t e m p e r a t u r e / F r e e z e r { " b a t " : " L O W " , " s e n s

  • r

_ i d " : " 6 a : 3 " , " h u m i d " : 5 3 . , " t e m p " :

  • 1

. 8 , " d e w p

  • i

n t " :

  • 2

3 . 2 , " u n i t s " : " F " , " t i m e s t a m p " : 1 5 2 7 6 9 5 5 1 } a r w n / t e m p e r a t u r e / A r w e n R

  • m

{ " b a t " : " O K " , " s e n s

  • r

_ i d " : " c e : 8 " , " h u m i d " : 5 4 . , " t e m p " : 7 2 . 7 , " d e w p

  • i

n t " : 5 5 . 1 , " u n i t s " : " F " , " t i m e s t a m p " : 1 5 2 7 6 9 5 5 1 1 } a r w n / w i n d { " b a t " : " O K " , " s e n s

  • r

_ i d " : " 3 3 : " , " t i m e s t a m p " : 1 5 2 7 6 9 5 5 1 2 , " u n i t s " : " m p h " , " g u s t " : . 9 , " s p e e d " : 2 . 5 , " d i r e c t i

  • n

" : 3 1 5 . }

mqtt: broker: 10.42.0.3 sensor 1: platform: arwn

x 8 5 2 2 a 9 6 3 8 1 4 1 7 9 x d 5 4 1 2 a 9 6 3 8 1 4 1 6 3 4 6 7 9

slide-13
SLIDE 13

@s d a g u e

R a i n G a u g e

  • R

e t a i n T

  • p

i c s

a r w n / t

  • t

a l s / r a i n { " t i me s t a mp " : 1 5 2 8 8 4 8 4 , " t

  • t

a l " : 7 . 7 8 } ← r e t a i n e d t

  • p

i c a r w n / r a i n { " t i me s t a mp " : 1 5 2 8 8 4 8 6 8 , " t

  • t

a l " : 7 . 7 8 } a r w n / r a i n / t

  • d

a y { " t i me s t a mp " : 1 5 2 8 8 4 8 6 8 , " s i n c e _ mi d n i g h t " : . } a r w n / r a i n { " t i me s t a mp " : 1 5 2 8 9 1 7 3 7 , " t

  • t

a l " : 7 . 8 1 8 } a r w n / r a i n / t

  • d

a y { " t i me s t a mp " : 1 5 2 8 9 1 7 3 7 , " s i n c e _ mi d n i g h t " : . 4 } a r w n / r a i n { " t i me s t a mp " : 1 5 2 8 9 2 5 8 3 , " t

  • t

a l " : 7 . 9 4 4 } a r w n / r a i n / t

  • d

a y { " t i me s t a mp " : 1 5 2 8 9 2 5 8 3 , " s i n c e _ mi d n i g h t " : . 1 6 } a r w n / r a i n { " t i me s t a mp " : 1 5 2 8 1 7 8 5 8 , " t

  • t

a l " : 7 1 . 3 5 8 } a r w n / r a i n / t

  • d

a y { " t i me s t a mp " : 1 5 2 8 1 7 8 5 8 , " s i n c e _ mi d n i g h t " : . 5 8 } … a r w n / r a i n { " t i me s t a mp " : 1 5 2 8 1 7 1 9 8 , " t

  • t

a l " : 7 1 . 3 5 8 } a r w n / r a i n / t

  • d

a y { " t i me s t a mp " : 1 5 2 8 1 7 1 9 8 , " s i n c e _ mi d n i g h t " : . 5 8 } … r

  • l

l

  • v

e r e v e n t a r w n / r a i n { " t i me s t a mp " : 1 5 2 8 1 7 1 2 1 8 , " t

  • t

a l " : 7 1 . 3 5 8 } a r w n / t

  • t

a l s / r a i n { " t i me s t a mp " : 1 5 2 8 1 7 1 2 1 8 , " t

  • t

a l " : 7 1 . 3 5 8 } ← r e t a i n e d t

  • p

i c a r w n / r a i n / t

  • d

a y { " t i me s t a mp " : 1 5 2 8 1 7 1 2 1 8 , " s i n c e _ mi d n i g h t " : . }

  • S

e l f e mp t y i n g b u c k e t

  • 3

i n c r e me n t s a d d e d b a s e d

  • n

t i me b e t w e e n b u c k e t d u mp s

  • R

e p

  • r

t s R a i n T

  • t

a l

  • (

1

t h

s

  • f

mm a c c u mu l a t

  • r

)

  • Wu

n d e r g r

  • u

n d A P I

  • r

a i n i n

  • [

r a i n i n c h e s

  • v

e r t h e p a s t h

  • u

r ) ]

  • t

h e a c c u mu l a t e d r a i n f a l l i n t h e p a s t 6 mi n

  • d

a i l y r y r a i n i n

  • [

r a i n i n c h e s s

  • f

a r t

  • d

a y i n l

  • c

a l t i me ]

slide-14
SLIDE 14

@s d a g u e

Wh e n S h

  • u

l d I C h a r g e M y C a r ?

  • S

u p p

  • r

t s T i me

  • f

D e p a r t u r e C h a r g i n g

B e f u l l y c h a r g e d b y a s e t t i me e v e r y d a y

  • T

i me

  • f

U s e me t e r i n g a t

  • u

r h

  • me

P e a k i s 2

  • 7

p m We e k d a y s

P e a k p

  • w

e r c

  • s

t s 1 2 %,

  • f

f p e a k c

  • s

t s 8 9 %

  • Wh

a t ' s t h e d i f f e r e n c e i n p

  • w

e r

  • f

f p e a k ?

Wh a t i s g e n e r a t i n g t h e p

  • w

e r ?

Wh a t ' s t h e c a r b

  • n

i n t e n s i t y a t d i f f e r e n t t i me s ?

  • C

a n w e ma k e d a t a a v a i l a b l e i n r e a l t i me ?

O t h e r s mi g h t w a n t t

  • d
  • t

h i n g s w i t h t h i s d a t a

slide-15
SLIDE 15

@s d a g u e

slide-16
SLIDE 16

@s d a g u e

slide-17
SLIDE 17

@s d a g u e

n y

  • p
  • w

e r mi c r

  • s

e r v i c e s a r c h i t e c t u r e

n y

  • p
  • w

e r

  • p

u mp n y

  • p
  • w

e r

  • mq

t t ( a c c e s s w i t h "

mo s q u i t t

  • _

s u b

  • h

1 6 9 . 6 . 7 8 . 1 5 7

  • t

n y

  • p
  • w

e r / #

  • v

" )

N Y I S O C S V s

M Q T T p u b l i s h

n y

  • p
  • w

e r

  • a

r c h i v e n y

  • p
  • w

e r

  • i

n f l u x

T i me S t a mp T Z F u e l G e n M W 5 / 9 / 2 1 8 : 5 : E D T D u a l F u e l 1 4 5 / 9 / 2 1 8 : 5 : E D T N a t u r a l G a s 2 1 4 4 5 / 9 / 2 1 8 : 5 : E D T N u c l e a r 4 1 1 4

n y

  • p
  • w

e r / s t a t u s / f u e l

  • mi

x / u p d a t e d { " t s " : " 5 / 9 / 2 1 8 : 5 : " } n y

  • p
  • w

e r / u p s t r e a m/ f u e l

  • mi

x / N u c l e a r { " u n i t s " : " M W" , " v a l u e " : 4 1 1 4 , " t s " : " 5 / 9 / 2 1 8 : 5 : " } n y

  • p
  • w

e r / u p s t r e a m/ f u e l

  • mi

x / D u a l F u e l { " u n i t s " : " M W" , " v a l u e " : 1 4 , " t s " : " 5 / 9 / 2 1 8 : 5 : " } n y

  • p
  • w

e r / u p s t r e a m/ f u e l

  • mi

x / N a t u r a l G a s { " u n i t s " : " M W" , " v a l u e " : 2 1 4 4 , " t s " : " 5 / 9 / 2 1 8 : 5 : " } n y

  • p
  • w

e r / c

  • mp

u t e d / c

  • 2

{ " u n i t s " : " g / k Wh " , " v a l u e " : 1 3 5 . 8 8 , " t s " : " 5 / 9 / 2 1 8 : 5 : " } n y

  • p
  • w

e r / a r c h i v e / c

  • 2

/ 2 4 h { " u n i t s " : " g / k Wh " , " v a l u e s " : [ 1 6 2 . 6 9 8 , 1 6 3 . 9 2 8 , 1 6 1 . 5 8 7 … ] , " t s " : [ . . . ]

n y

  • p
  • w

e r

  • w

e b h t t p : / / n y

  • p
  • w

e r .

  • r

g

slide-18
SLIDE 18

@s d a g u e

{app name}/{source}/{details}/{more details}

n y

  • p
  • w

e r t

  • p

i c s

ny-power/upstream/fuel-mix/{fuel type} ny-power/computed/co2 ny-power/archive/co2/24h Allows the following subscriptions:

slide-19
SLIDE 19

@s d a g u e

v a r c l i e n t = n e w P a h

  • .

M Q T T . C l i e n t ( " m q t t . n y

  • p
  • w

e r .

  • r

g " , N u m b e r ( " 8 " ) , " c l i e n t

  • "

+ M a t h . r a n d

  • m

( ) ) ; / / s e t c a l l b a c k h a n d l e r s c l i e n t .

  • n

M e s s a g e A r r i v e d =

  • n

M e s s a g e A r r i v e d ; / / c

  • n

n e c t t h e c l i e n t c l i e n t . r e c

  • n

n e c t = t r u e ; c l i e n t . c

  • n

n e c t ( {

  • n

S u c c e s s :

  • n

C

  • n

n e c t } ) ; / / c a l l e d w h e n t h e c l i e n t c

  • n

n e c t s f u n c t i

  • n
  • n

C

  • n

n e c t ( ) { / / O n c e a c

  • n

n e c t i

  • n

h a s b e e n m a d e , m a k e a s u b s c r i p t i

  • n

a n d s e n d a m e s s a g e . c

  • n

s

  • l

e . l

  • g

( "

  • n

C

  • n

n e c t " ) ; c l i e n t . s u b s c r i b e ( " n y

  • p
  • w

e r / c

  • m

p u t e d / c

  • 2

" ) ; c l i e n t . s u b s c r i b e ( " n y

  • p
  • w

e r / a r c h i v e / c

  • 2

/ 2 4 h " ) ; c l i e n t . s u b s c r i b e ( " n y

  • p
  • w

e r / a p p l i c a t i

  • n

/ w e b u i " ) ; c l i e n t . s u b s c r i b e ( " n y

  • p
  • w

e r / u p s t r e a m / f u e l

  • m

i x / # " ) ; } / / c a l l e d w h e n a m e s s a g e a r r i v e s f u n c t i

  • n
  • n

M e s s a g e A r r i v e d ( m e s s a g e ) { c

  • n

s

  • l

e . l

  • g

( "

  • n

M e s s a g e A r r i v e d : " + m e s s a g e . d e s t i n a t i

  • n

N a m e + m e s s a g e . p a y l

  • a

d S t r i n g ) ; i f ( m e s s a g e . d e s t i n a t i

  • n

N a m e = = " n y

  • p
  • w

e r / c

  • m

p u t e d / c

  • 2

" ) { v a r d a t a = J S O N . p a r s e ( m e s s a g e . p a y l

  • a

d S t r i n g ) ; $ ( " # c

  • 2
  • p

e r

  • k

w h " ) . h t m l ( M a t h . r

  • u

n d ( d a t a . v a l u e ) ) ; $ ( " # c

  • 2
  • u

n i t s " ) . h t m l ( d a t a . u n i t s ) ; $ ( " # c

  • 2
  • u

p d a t e d " ) . h t m l ( d a t a . t s ) ; } i f ( m e s s a g e . d e s t i n a t i

  • n

N a m e . s t a r t s W i t h ( " n y

  • p
  • w

e r / u p s t r e a m / f u e l

  • m

i x " ) ) { f u e l _ m i x _ g r a p h ( m e s s a g e ) ; } i f ( m e s s a g e . d e s t i n a t i

  • n

N a m e = = " n y

  • p
  • w

e r / a r c h i v e / c

  • 2

/ 2 4 h " ) { v a r d a t a = J S O N . p a r s e ( m e s s a g e . p a y l

  • a

d S t r i n g ) ; v a r p l

  • t

= [

slide-20
SLIDE 20

@s d a g u e

h t t p : / / n y

  • p
  • w

e r .

  • r

g

C O 2 c a l c u l a t e d f r

  • m

2 1 6 t

  • t

a l s ( M W & E mi s s i

  • n

s P e r f u e l s

  • u

r c e ) P r

  • v

i d e d a s M Q T T s t r e a m A n s w e r : c

  • mp

l e t e c h a r g i n g b y 5 a m b e f

  • r

e l

  • a

d / N G s t a r t s r a mp i n g u p h t t p : / / g i t h u b . c

  • m/

I B M / n y

  • p
  • w

e r

  • H

e l m K u b e a p p l i c a t i

  • n
  • C
  • r

e l

  • g

i c i n p y t h

  • n
  • 5

p

  • d

s

slide-21
SLIDE 21

@s d a g u e

P u t M Q T T i n y

  • u

r t

  • l

k i t

  • I

n a w

  • r

l d a w a s h i n d a t a , e f fi c i e n t e v e n t s t r e a ms a r e c r i t i c a l

  • O

p e n e v e n t s t r e a ms c a n b e a p u b l i c g

  • d
  • M

Q T T d

  • mi

n a t e s I

  • T

, b u t a l s

  • u

s e f u l i n

  • t

h e r d

  • ma

i n s

  • T

h e P u b / S u b p r

  • g

r a mmi n g ma k e s y

  • u

t h i n k

  • f

p r

  • b

l e ms i n n e w w a y s

T h a n k Y

  • u

!

T w i t t e r : @s d a g u e E ma i l : s e a n . d a g u e @i b m. c

  • m

/ s e a n @d a g u e . n e t B l

  • g

: h t t p s : / / d a g u e . n e t

  • s
  • f

t w a r e e n g i n e e r i n g ,

  • p

e n s

  • u

r c e p r

  • j

e c t s , c l i ma t e & e n e r g y G e t t h e c

  • d

e :

  • a

r w n : h t t p s : / / d a g u e . n e t / a r w n

  • n

y

  • p
  • w

e r p r

  • j

e c t : h t t p s : / / d a g u e . n e t / n y

  • p
  • w

e r

slide-22
SLIDE 22

C a l l f

  • r

C

  • d

e i n s p i r e s d e v e l

  • p

e r s t

  • s
  • l

v e p r e s s i n g g l

  • b

a l p r

  • b

l e ms w i t h s u s t a i n a b l e s

  • f

t w a r e s

  • l

u t i

  • n

s , d e l i v e r i n g

  • n

t h e i r v a s t p

  • t

e n t i a l t

  • d
  • g
  • d

. B r i n g i n g t

  • g

e t h e r N G O s , a c a d e mi c i n s t i t u t i

  • n

s , e n t e r p r i s e s , a n d s t a r t u p d e v e l

  • p

e r s t

  • c
  • mp

e t e b u i l d e f f e c t i v e d i s a s t e r mi t i g a t i

  • n

s

  • l

u t i

  • n

s , w i t h a f

  • c

u s

  • n

h e a l t h a n d w e l l

  • b

e i n g . T h e A me r i c a n R e d C r

  • s

s , a n d t h e U n i t e d N a t i

  • n

s H u ma n R i g h t s O f fi c e c

  • mb

i n e f

  • r

t h e C a l l f

  • r

C

  • d

e A w a r d t

  • e

l e v a t e t h e p r

  • fi

l e

  • f

d e v e l

  • p

e r s . A w a r d w i n n e r s w i l l r e c e i v e l

  • n

g

  • t

e r m s u p p

  • r

t t h r

  • u

g h t h e L i n u x F

  • u

n d a t i

  • n

, fi n a n c i a l p r i z e s , t h e

  • p

p

  • r

t u n i t y t

  • p

r e s e n t t h e i r s

  • l

u t i

  • n

t

  • l

e a d i n g V C s , a n d w i l l d e p l

  • y

t h e i r s

  • l

u t i

  • n

t h r

  • u

g h I B M ’ s C

  • r

p

  • r

a t e S e r v i c e C

  • r

p s . D e v e l

  • p

e r s w i l l j u mp

  • s

t a r t t h e i r p r

  • j

e c t w i t h d e d i c a t e d I B M C

  • d

e P a t t e r n s , c

  • mb

i n e d w i t h

  • p

t i

  • n

a l e n t e r p r i s e t e c h n

  • l
  • g

y t

  • b

u i l d p r

  • j

e c t s

  • v

e r t h e c

  • u

r s e

  • f

t h r e e mo n t h s . J u d g e d b y t h e w

  • r

l d ’ s mo s t r e n

  • w

n e d t e c h n

  • l
  • g

i s t s , t h e g r a n d p r i z e w i l l b e p r e s e n t e d i n O c t

  • b

e r a t a n A w a r d E v e n t .

c a l l f

  • r

c

  • d

e .

  • r

g