SlideShare uma empresa Scribd logo
1 de 156
Baixar para ler offline
@theburningmonkYan Cui @theburningmonk
@theburningmonk
Hi, my name is Yan Cui.
@theburningmonk
@theburningmonk
@theburningmonk
@theburningmonk
http://bit.ly/1SPNPn7
ZOOZU
VAPA
BOROU
DUMBU
dark shades of blue, red, green & purple
white & some shades of yellow
some shades of green & blue
other shades of green, red & brown
@theburningmonk
“The limits of my
language means the
limits of my world.”
- Ludwig Wittgenstein
@theburningmonk
agenda
@theburningmonk
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Borrowed Pointers Dependent Types
Uniqueness Types
Bit Syntax
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
@theburningmonk
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Borrowed Pointers Dependent Types
Uniqueness Types
Bit Syntax
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
your
app
@theburningmonk
your
app
CSVCSVCSV
CSVCSVXML
@theburningmonk
your
app
CSVCSVCSV
CSVCSVXML
some
service
@theburningmonk
your
app
CSVCSVCSV
CSVCSVXML
some
service
DB
@theburningmonk
1. define DTO types
2. I/O
3. marshal data into DTO
4. do useful work
@theburningmonk
1. define DTO types
2. I/O
3. marshal data into DTO
4. do useful work
@theburningmonk
compiler
provideexternal
data source typed info
@theburningmonk
type providers
@theburningmonk
intellisense
tooltips
…
@theburningmonk
@theburningmonk
@theburningmonk
intellisense over S3
buckets & objects!
@theburningmonk
compile time validation
@theburningmonk
no code generation
@theburningmonk
R
FunScript
Azure
Amazon S3
CSVSQLite
SQL Server
WSDL
WorldBank
Regex
ODATA IKVM
Facebook
Apiary
XAMLFreebase
Hadoop
Oracle
Minesweeper
Don Syme
Powershell
JSON
Fizzbuzz
Mixin
RSS
Matlab
Dates
NorthPole
XML
Python
@theburningmonk
Don Syme can taste lies.
@theburningmonk
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Borrowed Pointers Dependent Types
Uniqueness Types
Bit Syntax
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
“…a clean design is one that
supports visual thinking so
people can meet their
informational needs with a
minimum of conscious effort.”
- Daniel Higginbotham
(www.visualmess.com)
@theburningmonk
Whilst talking with an ex-colleague, a question came up on how to implement the Stable Marriage
problem using a message passing approach. Naturally, I wanted to answer that question with Erlang!
Let’s first dissect the problem and decide what processes we need and how they need to interact with
one another.
The stable marriage problem is commonly stated as:
Given n men and n women, where each person has ranked all members of the opposite sex with a
unique number between 1 and n in order of preference, marry the men and women together such that
there are no two people of opposite sex who would both rather have each other than their current
partners. If there are no such people, all the marriages are “stable”. (It is assumed that the participants
are binary gendered and that marriages are not same-sex).
From the problem description, we can see that we need:
* a module for man
* a module for woman
* a module for orchestrating the experiment
In terms of interaction between the different modules, I imagined something along the lines of…
how we read ENGLISH
see also http://bit.ly/1KN8cd0
@theburningmonk
Whilst talking with an ex-colleague, a question came up on how to implement the Stable Marriage
problem using a message passing approach. Naturally, I wanted to answer that question with Erlang!
Let’s first dissect the problem and decide what processes we need and how they need to interact with
one another.
The stable marriage problem is commonly stated as:
Given n men and n women, where each person has ranked all members of the opposite sex with a
unique number between 1 and n in order of preference, marry the men and women together such that
there are no two people of opposite sex who would both rather have each other than their current
partners. If there are no such people, all the marriages are “stable”. (It is assumed that the participants
are binary gendered and that marriages are not same-sex).
From the problem description, we can see that we need:
* a module for man
* a module for woman
* a module for orchestrating the experiment
In terms of interaction between the different modules, I imagined something along the lines of…
2.top-to-bottom
1.left-to-right
how we read ENGLISH
see also http://bit.ly/1KN8cd0
@theburningmonk
how we read CODE
public void DoSomething(int x, int y)
{
Foo(y,
Bar(x,
Zoo(Monkey())));
}
see also http://bit.ly/1KN8cd0
@theburningmonk
how we read CODE
public void DoSomething(int x, int y)
{
Foo(y,
Bar(x,
Zoo(Monkey())));
}
2.bottom-to-top
1.right-to-left
see also http://bit.ly/1KN8cd0
@theburningmonk
Whilst talking with an ex-colleague, a question came up on
how to implement the Stable Marriage problem using a
message passing approach. Naturally, I wanted to answer
that question with Erlang!
Let’s first dissect the problem and decide what processes we
need and how they need to interact with one another.
The stable marriage problem is commonly stated as:
Given n men and n women, where each person has ranked
all members of the opposite sex with a unique number
between 1 and n in order of preference, marry the men and
women together such that there are no two people of
opposite sex who would both rather have each other than
their current partners. If there are no such people, all the
marriages are “stable”. (It is assumed that the participants
are binary gendered and that marriages are not same-sex).
From the problem description, we can see that we need:
* a module for man
* a module for woman
* a module for orchestrating the experiment
In terms of interaction between the different modules, I
imagined something along the lines of…
2.top-to-bottom
1.left-to-right
how we read ENGLISH
public void DoSomething(int x, int y)
{
Foo(y,
Bar(x,
Zoo(Monkey())));
}
2.top-to-bottom
1.right-to-left
how we read CODE
see also http://bit.ly/1KN8cd0
@theburningmonk
“…a clean design is one that
supports visual thinking so
people can meet their
informational needs with a
minimum of conscious effort.”
@theburningmonk
|>
@theburningmonk
how we read CODE
let drawCircle x y radius =
radius |> circle
|> filled (rgb 150 170 150)
|> alpha 0.5
|> move (x, y)
see also http://bit.ly/1KN8cd0
@theburningmonk
how we read CODE
let drawCircle x y radius =
radius |> circle
|> filled (rgb 150 170 150)
|> alpha 0.5
|> move (x, y)
2.top-to-bottom
1.left-to-right
see also http://bit.ly/1KN8cd0
@theburningmonk
let drawCircle x y radius =
circle radius
|> filled (rgb 150 170 150)
|> alpha 0.5
|> move (x, y)
see also http://bit.ly/1KN8cd0
@theburningmonk
let drawCircle x y radius =
circle radius
|> filled (rgb 150 170 150)
|> alpha 0.5
|> move (x, y)
see also http://bit.ly/1KN8cd0
@theburningmonk
let drawCircle x y radius =
circle radius
|> filled (rgb 150 170 150)
|> alpha 0.5
|> move (x, y)
see also http://bit.ly/1KN8cd0
@theburningmonk
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Borrowed Pointers Dependent Types
Uniqueness Types
Bit Syntax
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
NASA orbiter crashed
because one engineer
accidentally used miles
instead of kilometres
@theburningmonk
you’re never too smart
to make mistakes
@theburningmonk
unit-of-measure
@theburningmonk
[<Measure>]
type Pence
e.g. 42<Pence>
153<Pence>
…
@theburningmonk
10<Meter> / 2<Second> = 5<Meter/Second>
10<Meter> * 2<Second> = 20<Meter Second>
10<Meter> + 10<Meter> = 20<Meter>
10<Meter> * 10 = 100<Meter>
10<Meter> * 10<Meter> = 100<Meter2>
10<Meter> + 2<Second> // error
10<Meter> + 2 // error
@theburningmonk
10<Meter> / 2<Second> = 5<Meter/Second>
10<Meter> * 2<Second> = 20<Meter Second>
10<Meter> + 10<Meter> = 20<Meter>
10<Meter> * 10 = 100<Meter>
10<Meter> * 10<Meter> = 100<Meter2>
10<Meter> + 2<Second> // error
10<Meter> + 2 // error
@theburningmonk
@theburningmonk
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Borrowed Pointers Dependent Types
Uniqueness Types
Bit Syntax
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
Homoiconicity
…homoiconicity is a property of some
programming languages in which the program
structure is similar to its syntax, and therefore
the program’s internal representation can be
inferred by reading the text’s layout…
@theburningmonk
code is data
data is code
@theburningmonk
(let [x 1]
(inc x))
see also http://bit.ly/1PpIrjS
@theburningmonk
(let [x 1]
(inc x))
=> 2
see also http://bit.ly/1PpIrjS
@theburningmonk
list (1 2 3)
vector [1 2 3]
see also http://bit.ly/1PpIrjS
@theburningmonk
(let [x 1]
(inc x))
list
see also http://bit.ly/1PpIrjS
@theburningmonk
(let [x 1]
(inc x))
symbol
see also http://bit.ly/1PpIrjS
@theburningmonk
(let [x 1]
(inc x))
vector
see also http://bit.ly/1PpIrjS
@theburningmonk
(let [x 1]
(inc x))
list
see also http://bit.ly/1PpIrjS
@theburningmonk
form :
code as data structure
see also http://bit.ly/1PpIrjS
@theburningmonk
code data
quote
eval
see also http://bit.ly/1PpIrjS
@theburningmonk
quote
(+ 1 2)
=> 3
see also http://bit.ly/1PpIrjS
@theburningmonk
quote
(+ 1 2)
=> 3
(quote (+ 1 2))
=> (+ 1 2)
see also http://bit.ly/1PpIrjS
@theburningmonk
quote
(+ 1 2)
=> 3
(quote (+ 1 2))
=> (+ 1 2)
‘(+ 1 2)
=> (+ 1 2)
see also http://bit.ly/1PpIrjS
@theburningmonk
eval
‘(+ 1 2)
=> (+ 1 2)
(eval ‘(+ 1 2))
=> 3
see also http://bit.ly/1PpIrjS
@theburningmonk
macros
@theburningmonk
(defmacro assert-equals [actual expected]
‘(let [actual-val# ~actual]
(when-not (= actual-val# ~expected)
(throw
(AssertionError.
(str “FAIL in “ ‘~actual
“n expected: “ ‘~expected
“n actual: “ actual-val#))))))
see also http://bit.ly/1PpIrjS
@theburningmonk
(assert-equals (inc 1) 2) ; => nil
(assert-equals (inc 1) (+ 0 1))
; => AssertionError FAIL in (inc 1)
; expected: (+ 0 1)
; actual: 2
see also http://bit.ly/1PpIrjS
@theburningmonk
(assert-equals (inc 1) 2) ; => nil
(assert-equals (inc 1) (+ 0 1))
; => AssertionError FAIL in (inc 1)
; expected: (+ 0 1)
; actual: 2
see also http://bit.ly/1PpIrjS
@theburningmonk
(assert-equals (inc 1) 2) ; => nil
(assert-equals (inc 1) (+ 0 1))
; => AssertionError FAIL in (inc 1)
; expected: (+ 0 1)
; actual: 2
huh?? where? what? how?
see also http://bit.ly/1PpIrjS
@theburningmonk
(defmacro assert-equals [actual expected]
‘(let [actual-val# ~actual]
(when-not (= actual-val# ~expected)
(throw
(AssertionError.
(str “FAIL in “ ‘~actual
“n expected: “ ‘~expected
“n actual: “ actual-val#))))))
(assert-equals (inc 1) (+ 0 1))
see also http://bit.ly/1PpIrjS
@theburningmonk
(defmacro assert-equals [actual expected]
‘(let [actual-val# ~actual]
(when-not (= actual-val# ~expected)
(throw
(AssertionError.
(str “FAIL in “ ‘~actual
“n expected: “ ‘~expected
“n actual: “ actual-val#))))))
(assert-equals (inc 1) (+ 0 1))
see also http://bit.ly/1PpIrjS
@theburningmonk
(defmacro assert-equals [actual expected]
‘(let [actual-val# ~actual]
(when-not (= actual-val# ~expected)
(throw
(AssertionError.
(str “FAIL in “ ‘~actual
“n expected: “ ‘~expected
“n actual: “ actual-val#))))))
(assert-equals (inc 1) (+ 0 1))
see also http://bit.ly/1PpIrjS
@theburningmonk
(defmacro assert-equals [actual expected]
‘(let [actual-val# ~actual]
(when-not (= actual-val# ~expected)
(throw
(AssertionError.
(str “FAIL in “ ‘~actual
“n expected: “ ‘~expected
“n actual: “ actual-val#))))))
see also http://bit.ly/1PpIrjS
@theburningmonk
(defmacro assert-equals [actual expected]
‘(let [actual-val# ~actual]
(when-not (= actual-val# ~expected)
(throw
(AssertionError.
(str “FAIL in “ ‘~actual
“n expected: “ ‘~expected
“n actual: “ actual-val#))))))
‘(
see also http://bit.ly/1PpIrjS
@theburningmonk
expanded at
compile time
see also http://bit.ly/1PpIrjS
@theburningmonk
(macroexpand '(assert-equals (inc 1) (+ 0 1)))
; =>
; (let* [actual-value__16087__auto__ (inc 1)]
; (clojure.core/when-not
; (clojure.core/= actual-value__16087__auto__ (+ 0 1))
; (throw (java.lang.AssertionError.
; (clojure.core/str
; "FAIL in " (quote (inc 1))
; "nexpected: " (quote (+ 0 1))
; "n actual: " actual-value__16087__auto__)))))
see also http://bit.ly/1PpIrjS
@theburningmonk
@theburningmonk
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Borrowed Pointers Dependent Types
Uniqueness Types
Bit Syntax
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
GC is great
@theburningmonk
runtime cost
@theburningmonk
ownership
see also http://bit.ly/1F6WBVD
@theburningmonk
memory safety
without GC
see also http://bit.ly/1F6WBVD
@theburningmonk
ZERO
runtime cost
see also http://bit.ly/1F6WBVD
@theburningmonk
safety + speed
see also http://bit.ly/1F6WBVD
@theburningmonk
fn foo() {
// v has ownership of the vector
let v = vec![1, 2, 3];
// mutable binding
let mut v2 = vec![];
}
// vector is deallocated at the
// end of scope,
// this happens deterministically
see also http://bit.ly/1F6WBVD
@theburningmonk
immutable by default
see also http://bit.ly/1F6WBVD
@theburningmonk
// take ownership
let v = vec![1, 2, 3];
see also http://bit.ly/1F6WBVD
@theburningmonk
// take ownership
let v = vec![1, 2, 3];
// moved ownership to v2
let v2 = v;
see also http://bit.ly/1F6WBVD
@theburningmonk
// take ownership
let v = vec![1, 2, 3];
// moved ownership to v2
let v2 = v;
println!("v[0] is {}", v[0]);
// error: use of moved value: `v`
// println!("v[0] is {}", v[0]);
// ^
see also http://bit.ly/1F6WBVD
@theburningmonk
fn take(v : Vec<i32>) {
// ownership of vector transferred
// to v in this scope
}
see also http://bit.ly/1F6WBVD
@theburningmonk
// take ownership
let v = vec![1, 2, 3];
// moved ownership
take(v);
see also http://bit.ly/1F6WBVD
@theburningmonk
// take ownership
let v = vec![1, 2, 3];
// moved ownership
take(v);
println!("v[0] is {}", v[0]);
// error: use of moved value: `v`
// println!("v[0] is {}", v[0]);
// ^
see also http://bit.ly/1F6WBVD
@theburningmonk
see also http://bit.ly/1F6WBVD
@theburningmonk
let me buy
your book
see also http://bit.ly/1F6WBVD
@theburningmonk
sure thing!
see also http://bit.ly/1F6WBVD
@theburningmonk
thanks
see also http://bit.ly/1F6WBVD
@theburningmonk
BURN!!!
>:D
see also http://bit.ly/1F6WBVD
@theburningmonk
but I
still need it..
:’(
see also http://bit.ly/1F6WBVD
@theburningmonk
borrowing
see also http://bit.ly/1F6WBVD
@theburningmonk
// note we're taking a reference,
// &Vec<i32>, instead of Vec<i32>
fn take(v : &Vec<i32>) {
// no need to deallocate the vector
// after we go out of scope here
}
see also http://bit.ly/1F6WBVD
@theburningmonk
// take ownership
let v = vec![1, 2, 3];
// notice we're passing a reference,
// &v, instead of v
take(&v); // borrow ownership
println!("v[0] is {}", v[0]);
// v[0] is 1
see also http://bit.ly/1F6WBVD
@theburningmonk
let me
borrow your
book
see also http://bit.ly/1F6WBVD
@theburningmonk
sure thing!
see also http://bit.ly/1F6WBVD
@theburningmonk
thanks
see also http://bit.ly/1F6WBVD
@theburningmonk
I’m done,
here you go
see also http://bit.ly/1F6WBVD
@theburningmonk
thanks
see also http://bit.ly/1F6WBVD
@theburningmonk
immutable by default
see also http://bit.ly/1F6WBVD
@theburningmonk
fn take(v : &Vec<i32>) {
v.push(5);
}
let v = vec![];
take(&v);
// cannot borrow immutable borrowed
// content `*v` as mutable
// v.push(5);
// ^
see also http://bit.ly/1F6WBVD
@theburningmonk
fn take(v : &mut Vec<i32>) {
v.push(5);
}
let mut v = vec![];
take(&mut v);
println!("v[0] is {}", v[0]);
// v[0] is 5
see also http://bit.ly/1F6WBVD
there are 2 rules to BORROWING
@theburningmonk
Rule 1.
the borrower’s scope must not
outlast the owner
see also http://bit.ly/1F6WBVD
@theburningmonk
Rule 2.
one of the following, but not both:
2.1 0 or more refs to a resource
2.2 exactly 1 mutable ref
see also http://bit.ly/1F6WBVD
@theburningmonk
data race
There is a ‘data race’ when two or more pointers
access the same memory location at the same
time, where at least one of them is writing, and
the operations are not synchronised.
see also http://bit.ly/1F6WBVD
@theburningmonk
data race
a. two or more pointers to the same resource
b. at least one is writing
c. operations are not synchronised
see also http://bit.ly/1F6WBVD
@theburningmonk
Data Race Conditions
a. two or more pointers to the same resource
b. at least one is writing
c. operations are not synchronised
Borrowing Rules
one of the following, but not both:
2.1 0 or more refs to a resource
2.2 exactly 1 mutable ref
see also http://bit.ly/1F6WBVD
@theburningmonk
Data Race Conditions
a. two or more pointers to the same resource
b. at least one is writing
c. operations are not synchronised
Borrowing Rules
one of the following, but not both:
2.1 0 or more refs to a resource
2.2 exactly 1 mutable ref
see also http://bit.ly/1F6WBVD
@theburningmonk
see also http://bit.ly/1F6WBVD
@theburningmonk
@theburningmonk
Dependent Types
Uniqueness Types
Bit Syntax
Borrowed Pointers
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
seen generics?
aka parametric polymorphism
@theburningmonk
List<T>
@theburningmonk
List<T>
List<int> List<Cat>
List<string>
@theburningmonk
what if…
@theburningmonk
types that depend on
arbitrary values?
@theburningmonk
Vect n a
vector of n elements of type a
@theburningmonk
zipWith :
(a -> b -> c)
-> Vect n a
-> Vect n b
-> Vect n c
@theburningmonk
zipWith f [] [] = []
zipWith f (x :: xs) (y :: ys) =
f x y :: zipWith f xs ys
@theburningmonk
Type Driven Development
“Make illegal states unrepresentable”
- Yaron Minsky
@theburningmonk
Type Provider Pipes
Statically Resolved TP
Implicit Interface
Implementation
Borrowed Pointers Dependent Types
Uniqueness Types
Bit Syntax
Signals
Macros
Unit-of-Measure
Actor Model
@theburningmonk
10,000 hours to be
good at something
see also http://bit.ly/1KN7SLq
@theburningmonk
10,000 hours to be
good at something
see also http://bit.ly/1KN7SLq
@theburningmonk
10,000 hours to reach
top of an ultra-
competitive field
see also http://bit.ly/1KN7SLq
@theburningmonk
@theburningmonk
the first 20 hours -
how to learn anything
see also http://bit.ly/1KN7SLq
@theburningmonk
Practice Time
Howgoodyouare
see also http://bit.ly/1KN7SLq
@theburningmonk
1.Deconstruct the skill
see also http://bit.ly/1KN7SLq
@theburningmonk
1.Deconstruct the skill
2.Learn enough to self-correct
see also http://bit.ly/1KN7SLq
@theburningmonk
1.Deconstruct the skill
2.Learn enough to self-correct
3.Remove practice barriers
see also http://bit.ly/1KN7SLq
@theburningmonk
1.Deconstruct the skill
2.Learn enough to self-correct
3.Remove practice barriers
4.Practice at least 20 hrs
see also http://bit.ly/1KN7SLq
@theburningmonk
@theburningmonk
learn a new paradigm
not a new syntax
see also http://bit.ly/1IzXVSo
“Programming languages
have a devious influence:
they shape our thinking
habits.”
- Edsger W. Dijkstra
@theburningmonk
logic programming
@theburningmonk
stack-oriented
programming
@theburningmonk
array programming
@theburningmonk
“A language that doesn't
affect the way you think
about programming, is not
worth knowing.”
- Alan Perlis
@theburningmonk
see also http://bit.ly/1IzXVSo
@theburningmonk
see also http://bit.ly/1IzXVSo
@theburningmonk
“Learning is an act of creation
itself, because something
happens in you that wasn't
there before.”
- Alan Kay
@theburningmonk
@theburningmonk
theburningmonk.com
github.com/theburningmonk

Mais conteúdo relacionado

Semelhante a Tour of language landscape

A Complete Guide On How To Write A Conclusion For A Research Paper
A Complete Guide On How To Write A Conclusion For A Research PaperA Complete Guide On How To Write A Conclusion For A Research Paper
A Complete Guide On How To Write A Conclusion For A Research PaperMichelle Meienburg
 
7 ineffective coding habits many F# programmers don't have
7 ineffective coding habits many F# programmers don't have7 ineffective coding habits many F# programmers don't have
7 ineffective coding habits many F# programmers don't haveYan Cui
 
How To Write Woring Paper In Mun Https Static1 Squ
How To Write Woring Paper In Mun  Https Static1 SquHow To Write Woring Paper In Mun  Https Static1 Squ
How To Write Woring Paper In Mun Https Static1 SquAlexis Naranjo
 
Friendship Essay In Easy English. Online assignment writing service.
Friendship Essay In Easy English. Online assignment writing service.Friendship Essay In Easy English. Online assignment writing service.
Friendship Essay In Easy English. Online assignment writing service.Inell Campbell
 
A Report Writing Skills, Essay Writing Skills, Essay
A Report Writing Skills, Essay Writing Skills, EssayA Report Writing Skills, Essay Writing Skills, Essay
A Report Writing Skills, Essay Writing Skills, EssaySusan Matthews
 
HarambeeNet: Data by the people, for the people
HarambeeNet: Data by the people, for the peopleHarambeeNet: Data by the people, for the people
HarambeeNet: Data by the people, for the peopleMichael Bernstein
 
Ap Government Bureaucracy Essay Questions
Ap Government Bureaucracy Essay QuestionsAp Government Bureaucracy Essay Questions
Ap Government Bureaucracy Essay QuestionsMelissa Bailey
 
Tom Brennan Essay Transitions
Tom Brennan Essay TransitionsTom Brennan Essay Transitions
Tom Brennan Essay TransitionsLaurel Connor
 
CMPSC 461 Programming Language ConceptsSpring 2018Pro.docx
CMPSC 461 Programming Language ConceptsSpring 2018Pro.docxCMPSC 461 Programming Language ConceptsSpring 2018Pro.docx
CMPSC 461 Programming Language ConceptsSpring 2018Pro.docxclarebernice
 
NLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in PythonNLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in Pythonshanbady
 
Short Essay On Ms Excel. Online assignment writing service.
Short Essay On Ms Excel. Online assignment writing service.Short Essay On Ms Excel. Online assignment writing service.
Short Essay On Ms Excel. Online assignment writing service.Kari Lowry
 
Eid Short Essay In English
Eid Short Essay In EnglishEid Short Essay In English
Eid Short Essay In EnglishAdriana Lovato
 
Admission Essay Proofreading Service. Online assignment writing service.
Admission Essay Proofreading Service. Online assignment writing service.Admission Essay Proofreading Service. Online assignment writing service.
Admission Essay Proofreading Service. Online assignment writing service.Sharon Garcia
 
Argument Paper For Hypothetical Research Paper
Argument Paper For Hypothetical Research PaperArgument Paper For Hypothetical Research Paper
Argument Paper For Hypothetical Research PaperSara Lewis
 
019 Good College Essay Hooks Example Hook Sent
019 Good College Essay Hooks Example Hook Sent019 Good College Essay Hooks Example Hook Sent
019 Good College Essay Hooks Example Hook SentJenny Schickling
 
GMAT AWA - How To Write A. Online assignment writing service.
GMAT AWA - How To Write A. Online assignment writing service.GMAT AWA - How To Write A. Online assignment writing service.
GMAT AWA - How To Write A. Online assignment writing service.Sarah Gordon
 
Common Application College Essay. Online assignment writing service.
Common Application College Essay. Online assignment writing service.Common Application College Essay. Online assignment writing service.
Common Application College Essay. Online assignment writing service.Cecilia Lucero
 
What Is A Common College Application Essay Question
What Is A Common College Application Essay QuestionWhat Is A Common College Application Essay Question
What Is A Common College Application Essay QuestionViviana Principe
 
Essay About My Best Friend Personality. Online assignment writing service.
Essay About My Best Friend Personality. Online assignment writing service.Essay About My Best Friend Personality. Online assignment writing service.
Essay About My Best Friend Personality. Online assignment writing service.Sabrina Kramer
 

Semelhante a Tour of language landscape (20)

A Complete Guide On How To Write A Conclusion For A Research Paper
A Complete Guide On How To Write A Conclusion For A Research PaperA Complete Guide On How To Write A Conclusion For A Research Paper
A Complete Guide On How To Write A Conclusion For A Research Paper
 
7 ineffective coding habits many F# programmers don't have
7 ineffective coding habits many F# programmers don't have7 ineffective coding habits many F# programmers don't have
7 ineffective coding habits many F# programmers don't have
 
How To Write Woring Paper In Mun Https Static1 Squ
How To Write Woring Paper In Mun  Https Static1 SquHow To Write Woring Paper In Mun  Https Static1 Squ
How To Write Woring Paper In Mun Https Static1 Squ
 
Friendship Essay In Easy English. Online assignment writing service.
Friendship Essay In Easy English. Online assignment writing service.Friendship Essay In Easy English. Online assignment writing service.
Friendship Essay In Easy English. Online assignment writing service.
 
A Report Writing Skills, Essay Writing Skills, Essay
A Report Writing Skills, Essay Writing Skills, EssayA Report Writing Skills, Essay Writing Skills, Essay
A Report Writing Skills, Essay Writing Skills, Essay
 
Python by Rj
Python by RjPython by Rj
Python by Rj
 
HarambeeNet: Data by the people, for the people
HarambeeNet: Data by the people, for the peopleHarambeeNet: Data by the people, for the people
HarambeeNet: Data by the people, for the people
 
Ap Government Bureaucracy Essay Questions
Ap Government Bureaucracy Essay QuestionsAp Government Bureaucracy Essay Questions
Ap Government Bureaucracy Essay Questions
 
Tom Brennan Essay Transitions
Tom Brennan Essay TransitionsTom Brennan Essay Transitions
Tom Brennan Essay Transitions
 
CMPSC 461 Programming Language ConceptsSpring 2018Pro.docx
CMPSC 461 Programming Language ConceptsSpring 2018Pro.docxCMPSC 461 Programming Language ConceptsSpring 2018Pro.docx
CMPSC 461 Programming Language ConceptsSpring 2018Pro.docx
 
NLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in PythonNLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in Python
 
Short Essay On Ms Excel. Online assignment writing service.
Short Essay On Ms Excel. Online assignment writing service.Short Essay On Ms Excel. Online assignment writing service.
Short Essay On Ms Excel. Online assignment writing service.
 
Eid Short Essay In English
Eid Short Essay In EnglishEid Short Essay In English
Eid Short Essay In English
 
Admission Essay Proofreading Service. Online assignment writing service.
Admission Essay Proofreading Service. Online assignment writing service.Admission Essay Proofreading Service. Online assignment writing service.
Admission Essay Proofreading Service. Online assignment writing service.
 
Argument Paper For Hypothetical Research Paper
Argument Paper For Hypothetical Research PaperArgument Paper For Hypothetical Research Paper
Argument Paper For Hypothetical Research Paper
 
019 Good College Essay Hooks Example Hook Sent
019 Good College Essay Hooks Example Hook Sent019 Good College Essay Hooks Example Hook Sent
019 Good College Essay Hooks Example Hook Sent
 
GMAT AWA - How To Write A. Online assignment writing service.
GMAT AWA - How To Write A. Online assignment writing service.GMAT AWA - How To Write A. Online assignment writing service.
GMAT AWA - How To Write A. Online assignment writing service.
 
Common Application College Essay. Online assignment writing service.
Common Application College Essay. Online assignment writing service.Common Application College Essay. Online assignment writing service.
Common Application College Essay. Online assignment writing service.
 
What Is A Common College Application Essay Question
What Is A Common College Application Essay QuestionWhat Is A Common College Application Essay Question
What Is A Common College Application Essay Question
 
Essay About My Best Friend Personality. Online assignment writing service.
Essay About My Best Friend Personality. Online assignment writing service.Essay About My Best Friend Personality. Online assignment writing service.
Essay About My Best Friend Personality. Online assignment writing service.
 

Mais de Yan Cui

How to win the game of trade-offs
How to win the game of trade-offsHow to win the game of trade-offs
How to win the game of trade-offsYan Cui
 
How to choose the right messaging service
How to choose the right messaging serviceHow to choose the right messaging service
How to choose the right messaging serviceYan Cui
 
How to choose the right messaging service for your workload
How to choose the right messaging service for your workloadHow to choose the right messaging service for your workload
How to choose the right messaging service for your workloadYan Cui
 
Patterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdfPatterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdfYan Cui
 
Lambda and DynamoDB best practices
Lambda and DynamoDB best practicesLambda and DynamoDB best practices
Lambda and DynamoDB best practicesYan Cui
 
Lessons from running AppSync in prod
Lessons from running AppSync in prodLessons from running AppSync in prod
Lessons from running AppSync in prodYan Cui
 
Serverless observability - a hero's perspective
Serverless observability - a hero's perspectiveServerless observability - a hero's perspective
Serverless observability - a hero's perspectiveYan Cui
 
How to ship customer value faster with step functions
How to ship customer value faster with step functionsHow to ship customer value faster with step functions
How to ship customer value faster with step functionsYan Cui
 
How serverless changes the cost paradigm
How serverless changes the cost paradigmHow serverless changes the cost paradigm
How serverless changes the cost paradigmYan Cui
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncYan Cui
 
Build social network in 4 weeks
Build social network in 4 weeksBuild social network in 4 weeks
Build social network in 4 weeksYan Cui
 
Patterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applicationsPatterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applicationsYan Cui
 
How to bring chaos engineering to serverless
How to bring chaos engineering to serverlessHow to bring chaos engineering to serverless
How to bring chaos engineering to serverlessYan Cui
 
Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsYan Cui
 
Building a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQLBuilding a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQLYan Cui
 
FinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economyFinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economyYan Cui
 
How to improve lambda cold starts
How to improve lambda cold startsHow to improve lambda cold starts
How to improve lambda cold startsYan Cui
 
What can you do with lambda in 2020
What can you do with lambda in 2020What can you do with lambda in 2020
What can you do with lambda in 2020Yan Cui
 
A chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage awayA chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage awayYan Cui
 
How to debug slow lambda response times
How to debug slow lambda response timesHow to debug slow lambda response times
How to debug slow lambda response timesYan Cui
 

Mais de Yan Cui (20)

How to win the game of trade-offs
How to win the game of trade-offsHow to win the game of trade-offs
How to win the game of trade-offs
 
How to choose the right messaging service
How to choose the right messaging serviceHow to choose the right messaging service
How to choose the right messaging service
 
How to choose the right messaging service for your workload
How to choose the right messaging service for your workloadHow to choose the right messaging service for your workload
How to choose the right messaging service for your workload
 
Patterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdfPatterns and practices for building resilient serverless applications.pdf
Patterns and practices for building resilient serverless applications.pdf
 
Lambda and DynamoDB best practices
Lambda and DynamoDB best practicesLambda and DynamoDB best practices
Lambda and DynamoDB best practices
 
Lessons from running AppSync in prod
Lessons from running AppSync in prodLessons from running AppSync in prod
Lessons from running AppSync in prod
 
Serverless observability - a hero's perspective
Serverless observability - a hero's perspectiveServerless observability - a hero's perspective
Serverless observability - a hero's perspective
 
How to ship customer value faster with step functions
How to ship customer value faster with step functionsHow to ship customer value faster with step functions
How to ship customer value faster with step functions
 
How serverless changes the cost paradigm
How serverless changes the cost paradigmHow serverless changes the cost paradigm
How serverless changes the cost paradigm
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSync
 
Build social network in 4 weeks
Build social network in 4 weeksBuild social network in 4 weeks
Build social network in 4 weeks
 
Patterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applicationsPatterns and practices for building resilient serverless applications
Patterns and practices for building resilient serverless applications
 
How to bring chaos engineering to serverless
How to bring chaos engineering to serverlessHow to bring chaos engineering to serverless
How to bring chaos engineering to serverless
 
Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 steps
 
Building a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQLBuilding a social network in under 4 weeks with Serverless and GraphQL
Building a social network in under 4 weeks with Serverless and GraphQL
 
FinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economyFinDev as a business advantage in the post covid19 economy
FinDev as a business advantage in the post covid19 economy
 
How to improve lambda cold starts
How to improve lambda cold startsHow to improve lambda cold starts
How to improve lambda cold starts
 
What can you do with lambda in 2020
What can you do with lambda in 2020What can you do with lambda in 2020
What can you do with lambda in 2020
 
A chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage awayA chaos experiment a day, keeping the outage away
A chaos experiment a day, keeping the outage away
 
How to debug slow lambda response times
How to debug slow lambda response timesHow to debug slow lambda response times
How to debug slow lambda response times
 

Último

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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
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
 

Último (20)

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 New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 

Tour of language landscape