real analysis
Contents
3.3. real analysis#
Some notes on real analysis, following the textbook Understanding analysis
3.3.1. ch 1 - the real numbers#
there is no rational number whose square is 2 (proof by contradiction)
contrapositive: $\(-q \to -p\)$ - logically equivalent
triangle inequality: \(\|a+b\| \leq \|a\| + \|b\|\) (often use |a-b| = |(a-c)+(c-b)|)
axiom of completeness - every nonempty set \(A \subseteq \mathbb{R}\) that is bounded above has a least upper bound
doesn’t work for \(\mathbb{Q}\)
supremum = supA = least upper bound (similarly, infimum)
supA is an upper bound of A
if \(s \in \mathbb{R}\) is another u.b. then \(s \geq supA\)
can be restated as \(\forall \epsilon > 0, \exists a \in A\) \(s-\epsilon < a\)
nested interval property - for each \(n \in N\), assume we are given a closed interval \(I_n = [a_n,b_n]=\{ x \in \mathbb{R} : a_n \leq x \leq b_n \}\) Assume also that each \(I_n\) contains \(I_{n+1}\). Then, the resulting nested sequence of nonempty closed intervals \(I_1 \supseteq I_2 \supseteq ...\) has a nonempty intersection use AoC with x = sup{\(a_n: n \in \mathbb{N}\)} in the intersection of all sets
archimedean property
\(\mathbb{N}\) is unbounded above (sup \(\mathbb{N}=\infty\))
\(\forall x \in \mathbb{R}, x>0, \exists n \in \mathbb{N}, 0 < \frac{1}{n} < x\)
\(\mathbb{Q}\) is dense in \(\mathbb{R}\) - for every \(a,b \in \mathbb{R}, a<b\), \(\exists r \in \mathbb{Q}\) s.t. \(a<r<b\)
pf: want \(a < \frac{m}{n} < b\)
by Archimedean property, want \(\frac{1}{n} < b-a\)
corollary: the irrationals are dense in \(\mathbb{R}\)
there exists a real number \(r \in \mathbb{R}\) satisfying \(r^2 = 2\)
pf: let r = \(sup \{ t \in \mathbb{R} : t^2 < 2 \}\). disprove \(r^2<2, r^2>2\) by considering \(r+\frac{1}{n},r-\frac{1}{n}\)
A ~ B if there exists f:A->B that is 1-1 and onto
A is finite - there exists n \(\in \mathbb{N}\) s.t. \(\mathbb{N}_n\)~A
countable = \(\mathbb{N}\)~A.
uncountable - inifinite set that isn’t countable
Q is countable
pf: Let \(A_n = \{ \pm \frac{p}{q}:\) where p,q \(\in \mathbb{N}\) are in lowest terms with p+q=n}
R is uncountable
pf: Assume we can enumerate \(\mathbb{R}\) Use NIP to exclude one point from \(\mathbb{R}\) each time. The intersection is still nonempty, so we didn’t succesfully enumerate \(\mathbb{R}\)
\(\frac{x}{x^2-1}\) maps (0,1) \(\to \mathbb{R}\)
countable union of countable sets is countable
if \(A \subseteq B\) and B countable, then A is either countable or finite
if \(A_n\) is a countable set for each \(n \in \mathbb{N}\), then their union is countable
the open interval (0,1) = \(\{ x \in \mathbb{R} : 0 < x < 1 \}\) is uncountable
pf: diagonalization - assume there exists a function from (0,1) to \(\mathbb{R}\). List the decimal expansions of these as rows of a matrix. Complement of diagonal does not exist.
cantor’s thm - Given any set A, there does not exist a function f:\(A \to P(A)\) that is onto
P(A) is the set of all subsets of A
3.3.2. ch 2 - sequences and series#
a sequence \((a_n)\) converges to a real number if \(\forall \epsilon > 0, \exists N \in \mathbb{N}\) such that \(\forall n\geq N, \|a_n-a\| < \epsilon\)
otherwise it diverges
if a limit exists, it is unique
a sequence \((x_n)\) is bounded if there exists a number M > 0 such that \(\|x_n\|\leq M \forall n \in \mathbb{N}\)
every convergent sequence is bounded
algebraic limit thm - let lim \(a_n = a\) and lim \(b_n\) = b. Then
lim(\(ca_n\)) = ca
lim(\(a_n+b_n\)) = a+b
lim(\(a_n b_n\)) = ab
lim(\(a_n/b_n\)) = a/b, provided b \(\neq\) 0
pf 3: use triangle inequality, \(\|a_nb_n-ab\|=\|a_nb_n-ab_n+ab_n-ab\|=...=\|b_n\|\|a_n-a\|+\|a\|\|b_n-b\|\)
pf 4: show \((b_n) \to b\) implies \((\frac{1}{b_n}) \to \frac{1}{b}\)
order limit thm - Assume lim \(a_n = a\) and lim \(b_n\) = b.
If \(a_n \geq 0\) \(\forall n \in \mathbb{N}\), then \(a \geq 0\)
If \(a_n \leq b_n\) \(\forall n \in \mathbb{N}\), then \(a \leq b\)
If \(\exists c \in \mathbb{R}\) for which \(c \leq b_n\) \(\forall n \in \mathbb{N}\), then \(c \leq b\)
pf 1: by contradiction
monotone - increasing or decreasing (not strictly)
monotone convergence thm - if a sequence is monotone and bounded, then it converges
convergence of a series
define \(s_m=a_1+a_2+...+a_m\)
\(\sum_{n=1}^\infty a_n\) converges to A \(\iff (s_m)\) converges to A
cauchy condensation test - suppose \(a_n\) is decreasing and satisfies \(a_n \geq 0\) for all \(n \in \mathbb{N}\). Then, the series \(\sum_{n=1}^\infty a_n\) converges iff the series \(\sum_{n=1}^\infty 2^na_{2^n}\) converges
p-series \(\sum_{n=1}^\infty 1/n^p\) converges iff p > 1
<IP_ADDRESS>. 2.5#
let \((a_n)\) be a sequence and \(n_1<n_2<...\) be an increasing sequence of natural numbers. Then \((a_{n_1},a_{n_2},...)\) is a subsequence of \((a_n)\)
subsequences of a convergent sequence converge to the same limit as the original sequence
can be used as divergence criterion
bolzano-weierstrass thm - every bounded sequence contains a convergent subsequence
pf: use NIP, keep splitting interval into two
<IP_ADDRESS>. 2.6#
\((a_n)\) is a cauchy sequence if \(\forall \epsilon > 0, \exists N \in \mathbb{N}\) such that \(\forall m,n\geq N, \|a_n-a_m\| < \epsilon\)
cauchy criterion - a sequence converges \(\iff\) it is a cauchy sequence
cauchy sequences are bounded
overview: AoC \(\iff\) NIP \(\iff\) MCT \(\iff\) BW \(\iff\) CC
<IP_ADDRESS>. 2.7#
algebraic limit thm - let \(\sum_{n=1}^\infty a_n\) = A, \(\sum_{n=1}^\infty b_n\) = B
\(\sum_{n=1}^\infty ca_n\) = cA
\(\sum_{n=1}^\infty a_n+b_n\) = A+B
cauchy criterion for series - series converges \(\iff\) \((s_m)\) is a cauchy sequence
if the series \(\sum_{n=1}^\infty a_n\) converges then lim \(a_n=0\)
comparison test
geometric series - \(\sum_{n=0}^\infty a r^n = \frac{a}{1-r}\)
\(s_m = a+ar+...+ar^{m-1} = \frac{a(1-r^m)}{1-r}\)
absolute convergence test
alternating series test
decreasing
lim \(a_n\) = 0
then, \(\sum_{n=1}^\infty (-1)^{n+1} a_n\) converges
rearrangements: there exists one-to-one correspondence
if a series converges absolutely, any rearrangement converges to same limit
3.3.3. ch 3 - basic topology of R#
<IP_ADDRESS>. 3.1 cantor set#
C has small length, but its cardinality is uncountable
discussion of dimensions, doubling sizes leads to 2^dimension sizes
Cantor set is about dimension .631
<IP_ADDRESS>. 3.2 open/closed sets#
A set O \(\subseteq \mathbb{R}\) is open if for all points a \(\in\) O there exists an \(\epsilon\)-neighborhood \(V_{\epsilon}(a) \subseteq O\)
\(V_{\epsilon}(a)=\{ x \in R : \|x-a\| < \epsilon\)}
the union of an arbitrary collection of open sets is open
the intersection of a finite collection of open sets is open
a point x is a limit point of a set A if every \(\epsilon\)-neighborhood \(V_{\epsilon}(x)\) of x intersects the set A at some point other than x
a point x is a limit point of a set A if and only if x = lim \(a_n\) for some sequence (\(a_n\)) contained in A satisfying \(a_n \neq x\) for all n \(\in\) N
isolated point - not a limit point
set \(F \subseteq \mathbb{R}\) closed - contains all limit points
closed iff every Cauchy sequence contained in F has a limit that is also an element of F
density of Q in R - for every \(y \in \mathbb{R}\), there exists a sequence of rational numbers that converges to y
closure - set with its limit points
closure \(\bar{A}\) is smallest closed set containing A
iff set open, complement is closed
R and \(\emptyset\) are both open and closed
the union of a finite collection of closed sets is closed
the intersection of an arbitrary collection of closed sets is closed
<IP_ADDRESS>. 3.3#
a set K \(\subseteq \mathbb{R}\) is compact if every sequence in K has a subsequence that converges to a limit that is also in K
Nested Compact Set Property - intersection of nested sequence of nonempty compact sets is not empty
let A \(\subseteq \mathbb{R}\). open cover for A is a (possibly infinite) collection of open sets whose union contains the set A.
given an open cover for A, a finite subcover is a finite sub-collection of open sets from the original open cover whose union still manages to completely contain A
Heine-Borel thm - let K \(\subseteq \mathbb{R}\). All of the following are equivalent
K is compact
K is closed and bounded
every open cover for K has a finite subcover
3.3.4. ch 4 - functional limits and continuity#
<IP_ADDRESS>. 4.1#
dirichlet function: 1 if r \(\in \mathbb{Q}\) 0 otherwise
<IP_ADDRESS>. 4.2 functional limits#
def 1. Let f:\(A \to R\), and let c be a limit point of the domain A. We say that \(lim_{x \to c} f(x) = L\) provided that for all \(\epsilon\) > 0, there exists a \(\delta\) > 0 s.t. whenever 0 < |x-c| < \(\delta\) (and x \(\in\) A) it follows that |f(x)-L|< \(\epsilon\)
def 2. Let f:\(A \to R\), and let c be a limit point of the domain A. We say that \(lim_{x \to c} f(x) = L\) provided that for every \(\epsilon\)-neighborhood \(V_{\epsilon}(L)\) of L, there exists a \(\delta\)-neighborhood \(V_{\delta}(\)c) around c with the property that for all x \(\in V_{\delta}(\)c) different from c (with x \(\in\) A) it follows that f(x) \(\in V_{\epsilon}(L)\).
sequential criterion for functional limits - Given function f:\(A \to R\) and a limit point c of A, the following 2 statements are equivalent:
\(lim_{x \to c} f(x) = L\)
for all sequences \((x_n) \subseteq\) A satisfying \(x_n \neq\) c and \((x_n) \to c\), it follows that \(f(x_n) \to L\).
algebraic limit thm for functional limits
divergence criterion for functional limits
<IP_ADDRESS>. 4.3 continuous functions#
a function f:\(A \to R\) is continuous at a point c \(\in\) A if, for all \(\epsilon\)>0, there exists a \(\delta\)>0 such that whenever |x-c|<\(\delta\) (and x\(\in\) A) it follows that \(\|f(x)-f( c)\|<\epsilon\). F is continous if it is continuous at every point in the domain A
characterizations of continuouty
criterion for discontinuity
algebraic continuity theorem
if f is continuous at c and g is continous at f( c) then g \(\circ\) f is continuous at c
<IP_ADDRESS>. 4.4 continuous functions on compact sets#
preservation of compact sets - if f continuous and K compact, then f(K) is compact as well
extreme value theorem - if f if continuous on a compact set K, then f attains a maximum and minimum value. In other words, there exist \(x_0,x_1 \in K\) such that \(f(x_0) \leq f(x) \leq f(x_1)\) for all x \(\in\) K
f is uniformly continuous on A if for every \(\epsilon\)>0, there exists a \(\delta\)>0 such that for all x,y \(\in\) A, \(\|x-y\| < \delta \implies \|f(x)-f(y)\| < \epsilon\)
a function f fails to be uniformly continuous on A iff there exists a particular \(\epsilon_o\) > 0 and two sequences \((x_n),(y_n)\) in A sastisfying \(\|x_n - y_n\| \to 0\) but \(\|f(x_n)-f(y_n)\| \geq \epsilon_o\)
a function that is continuous on a compact set K is uniformly continuous on K
<IP_ADDRESS>. 4.5 intermediate value theorem#
intermediate value theorem - Let f:[a,b]\( \to R\) be continuous. If L is a real number satisfying f(a) < L < f(b) or f(a) > L > f(b), then there exists a point c \(\in (a,b)\) where f( c) = L
a function f has the intermediate value property on an inverval [a,b] if for all x < y in [a,n] and all L between f(x) and f(y), it is always possible to find a point c \(\in (x,y)\) where f( c)=L.
3.3.5. ch 5 - the derivative#
<IP_ADDRESS>. 5.2 derivatives and the intermediate value property#
let g: A -> R be a function defined on an interval A. Given c \(\in\) A, the derivative of g at c is defined by g’( c) = \(\lim_{x \to c} \frac{g(x) - g( c)}{x-c}\), provided this limit exists. Then g is differentiable at c. If g’ exists for all points in A, we say g is differentiable on A
identity: \(x^n-c^n = (x-c)(x^{n-1}+cx^{n-2}+c^2x^{n-3}+...+c^{n-1}\))
differentiable \(\implies\) continuous
algebraic differentiability theorem
adding
scalar multiplying
product rule
quotient rule
chain rule: let f:A-> R and g:B->R satisfy f(A)\(\subseteq\) B so that the composition g \(\circ\) f is defined. If f is differentiable at c in A and g differentiable at f( c) in B, then g \(\circ\) f is differnetiable at c with (g\(\circ\)f)’( c)=g’(f( c))*f’( c)
interior extremum thm - let f be differentiable on an open interval (a,b). If f attains a maximum or minimum value at some point c \(\in\) (a,b), then f’( c) = 0.
Darboux’s thm - if f is differentiable on an interval [a,b], and a satisfies f’(a) < \(\alpha\) < f’(b) (or f’(a) > \(\alpha\) > f’(b)), then there exists a point c \(\in (a,b)\) where f’( c) = \(\alpha\)
derivative satisfies intermediate value property
<IP_ADDRESS>. 5.3 mean value theorems#
mean value theorem - if f:[a,b] -> R is continuous on [a,b] and differentiable on (a,b), then there exists a point c \(\in\) (a,b) where \(f'( c) = \frac{f(b)-f(a)}{b-a}\)
Rolle’s thm - f(a)=f(b) -> f’( c)=0
if f’(x) = 0 for all x in A, then f(x) = k for some constant k
if f and g are differentiable functions on an interval A and satisfy f’(x) = g’(x) for all x \(\in\) A, then f(x) = g(x) + k for some constant k
generalized mean value theorem - if f and g are continuous on the closed interval [a,b] and differentiable on the open interval (a,b), then there exists a point c \(\in (a,b)\) where |f(b)-f(a)|g’( c) = |g(b)-g(a)|f’( c). If g’ is never 0 on (a,b), then can be restated \(\frac{f'( c)}{g'( c)} = \frac{f(b)-f(a)}{g(b)-g(a)}\)
given g: A -> R and a limit point c of A, we say that \(lim_{x \to c} g(x) = \infty\) if, for every M > 0, there exists a \(\delta\)> 0 such that whenever 0 < |x-c| < \(\delta\) it follows that g(x) ≥ M
L’Hospital’s Rule: 0/0 - let f and g be continuous on an interval containing a, and assume f and g are differentiable on this interval with the possible exception of the point a. If f(a) = g(a) = 0 and g’(x) ≠ 0 for all x ≠ a, then \(lim_{x \to a} \frac{f'(x)}{g'(x)} = L \implies lim_{x \to a} \frac{f'(x)}{g'(x)} = L\)
L’Hospital’s Rule: \(\infty / \infty\) - assume f and g are differentiable on (a,b) and g’(x) ≠ 0 for all x in (a,b). If \(lim_{x \to a} g(x) = \infty \), then \(lim_{x \to a} \frac{f'(x)}{g'(x)} = L \implies lim_{x \to a} \frac{f'(x)}{g'(x)} = L\)
3.3.6. ch 6 - sequences and series of function#
<IP_ADDRESS>. 6.2 uniform convergence of a sequence of functions#
for each n \(\in \mathbb{N}\) let \(f_n\) be a function defined on a set A\(\subseteq R\). The sequence (\(f_n\)) of functions converges pointwise on A to a function f if, for all x in A, the sequence of real numbers \(f_n(x)\) converges to f(x)
let (\(f_n\)) be a sequence of functions defined on a set A\(\subseteq\)R. Then (\(f_n\)) converges unformly on A to a limit function f defined on A if, for every \(\epsilon\)>0, there exists an N in \(\mathbb{N}\) such that \(\forall n ≥N, x \in A , \|f_n(x)-f(x)\|<\epsilon\)
Cauchy Criterion for uniform convergence - a sequence of functions \((f_n)\) defined on a set A \(\subseteq\) R converges uniformly on A iff \(\forall \epsilon > 0 \exists N \in \mathbb{N}\) s.t. whenever m,n ≥N and x in A, \(\|f_n(x)-f_m(x)\|<\epsilon\)
continuous limit thm - Let (\(f_n\)) be a sequence of functions defined on A that converges uniformly on A to a function f. If each \(f_n\) is continuous at c in A, then f is continuous at c
<IP_ADDRESS>. 6.3 uniform convergence and differentiation#
differentiable limit theorem - let \(f_n \to f\) pointwise on the closed interval [a,b], and assume that each \(f_n\) is differentiable. If \((f'_n)\) converges uniformly on [a,b] to a function g, then the function f is differentiable and f’=g
let (\(f_n\)) be a sequence of differentiable functions defined on the closed interval [a,b], and assume \((f'_n)\) converges uniformly to a function g on [a,b]. If there exists a point \(x_0 \in [a,b]\) for which \(f_n(x_0)\) is convergent, then (\(f_n\)) converges uniformly. Moreover, the limit function f = lim \(f_n\) is differentiable and satisfies f’ = g
<IP_ADDRESS>. 6.4 series of functions#
term-by-term continuity thm - let \(f_n\) be continuous functions defined on a set A \(\subseteq\) R and assume \(\sum f_n\) converges uniformly on A to a function f. Then, f is continuous on A.
term-by-term differentiability thm - let \(f_n\) be differentiable functions defined on an interval A, and assume \(\sum f'_n(x)\) converges uniformly to a limit g(x) on A. If there exists a point \(x_0 \in [a,b]\) where \(\sum f_n(x_0)\) converges, then the series \(\sum f_n(x)\) converges uniformly to a differentiable function f(x) satisfying f’(x) = g(x) on A. In other words, \(f(x) = \sum f_n(x)\) and \(f'(x) = \sum f'_n(x)\)
Cauchy Criterion for uniform convergence of series - A series \(\sum f_n\) converges uniformly on A iff \(\forall \epsilon > 0 \exists N \in N\) s.t. whenever n>m≥N, x in A \(\|f_{m+1}(x) + f_{m+2}(x) + f_{m+3}(x) + ...+f_n(x)\| < \epsilon\)
Wierstrass M-Test - For each n in N, let \(f_n\) be a function defined on a set A \(\subseteq\) R, and let \(M_n > 0\) be a real number satisfying \(\|f_n(x)\| ≤ M_n\) for all x in A. If \(\sum M_n\) converges, then \(\sum f_n\) converges uniformly on A
<IP_ADDRESS>. 6.5 power series#
power series f(x) = \(\sum_{n=0}^\infty a_n x^n = a_0 + a_1 x_1 + a_2 x^2 + a_3 x^3 + ...\)
if a power series converges at some point \(x_0 \in \mathbb{R}\), then it converges absolutely for any x satisfying |x|<|\(x_0\)|
if a power series converges pointwise on the set A, then it converges uniformly on any compact set K \(\subseteq\) A
if a power series converges absolutely at a point \(x_0\), then it converges uniformly on the closed interval [-c,c], where c = |\(x_0\)|
Abel’s thm - if a power series converges at the point x = R > 0, the the series converges uniformly on the interval [0,R]. A similar result holds if the series converges at x = -R
if \(\sum_{n=0}^\infty a_n x^n\) converges for all x in (-R,R), then the differentiated series \(\sum_{n=0}^\infty n a_n x^{n-1}\) converges at each x in (-R,R) as well. Consequently the convergence is uniform on compact sets contained in (-R,R).
can take infinite derivatives
<IP_ADDRESS>. 6.6 taylor series#
Taylor’s Formula \(\sum_{n=0}^\infty a_n x^n = a_0 + a_1 x_1 + a_2 x^2 + a_3 x^3 + ...\)
centered at 0: \(a_n = \frac{f^{(n)}(0)}{n!}\)
Lagrange’s Remainder thm - Let f be differentiable N+1 times on (-R,R), define \(a_n = \frac{f^{(n)}(0)}{n!}.....\)
not every infinitely differentiable function can be represented by its Taylor series (radius of convergence zero)
3.3.7. ch 7 - the Riemann Integral#
<IP_ADDRESS>. 7.2 def of Riemann integral#
partition of [a,b] is a finite set of points from [a,b] that includes both a and b
lower sum - sum all the possible smallest rectangles
a partition Q is a refinement of a partition P if \(P \subseteq Q\)
if \(P \subseteq Q\), then L(f,P)≤L(f,Q) and U(f,P)≥U(f,Q)
a bounded function f on the interval [a,b] is Riemann-integrable if U(f) = L(f) = \(\int_a^b f\)
iff \(\forall \epsilon >0\), there exists a partition P of [a,b] such that \(U(f,P)-L(f,P)<\epsilon\)
U(f) = inf{U(f,P)} for all possible partitions P
if f is continuous on [a,b] then it is integrable
<IP_ADDRESS>. 7.3 integrating functions with discontinuities#
if f:[a,b]->R is bounded and f is integrable on [c,b] for all c in (a,b), then f is integrable on [a,b]
<IP_ADDRESS>. 7.4 properties of Integral#
assume f: [a,b]->R is bounded and let c in (a,b). Then, f is integrable on [a,b] iff f is integrable on [a,c] and [c,b]. In this case we have \(\int_a^b f = \int_a^c f + \int_c^b f.\)F
integrable limit thm - Assume that \(f_n \to f\) uniformly on [a,b] and that each \(f_n\) is integarble. Then, f is integrable and \(lim_{n \to \infty} \int_a^b f_n = \int_a^b f\).
<IP_ADDRESS>. 7.5 fundamental theorem of calculus#
If f:[a,b] -> R is integrable, and F:[a,b]->R satisfies F’(x) = f(x) for all x \(\in\) [a,b], then \(\int_a^b f = F(b) - F(a)\)
Let f: [a,b]-> R be integrable and for x \(\in\) [a,b] define G(x) = \(\int_a^x g\). Then G is continuous on [a,b]. If g is continuous at some point \(c \in [a,b]\) then G is differentiable at c and G’(c) = g(c).
3.3.8. overview#
convergence
sequences
series
functional limits
normal, uniform
sequence of funcs
pointwise, uniform
series of funcs
pointwise, uniform
integrability
sequential criterion - usually good for proving discontinuous
limit points
functional limits
continuity
absence of uniform continuity
algebraic limit theorem ~ scalar multiplication, addition, multiplication, division
limit thm
sequences
series - can’t multiply / divide these
functional limits
continuity
differentiability
~integrability~
limit thms
continuous limit thm - Let (\(f_n\)) be a sequence of functions defined on A that converges uniformly on A to a function f. If each \(f_n\) is continuous at c in A, then f is continuous at c
differentiable limit theorem - let \(f_n \to f\) pointwise on the closed interval [a,b], and assume that each \(f_n\) is differentiable. If \((f'_n)\) converges uniformly on [a,b] to a function g, then the function f is differentiable and f’=g
convergent derivatives almost proves that \(f_n \to f\)
let (\(f_n\)) be a sequence of differentiable functions defined on the closed interval [a,b], and assume \((f'_n)\) converges uniformly to a function g on [a,b]. If there exists a point \(x_0 \in [a,b]\) for which \(f_n(x_0) \to f(x_0)\) is convergent, then (\(f_n\)) converges uniformly
integrable limit thm - Assume that \(f_n \to f\) uniformly on [a,b] and that each \(f_n\) is integarble. Then, f is integrable and \(lim_{n \to \infty} \int_a^b f_n = \int_a^b f\).
functions are continuous at isolated points, but limits don’t exist there
uniform continuity: minimize \(\|f(x)-f(y)\|\)
derivative doesn’t have to be continuous
integrable if finite amount of discontinuities and bounded


Contact Us If you would like to sign up we will send you an invoice. First Name Last Name Service Beginner Course Advanced Course Tutoring Subject


- The basics (Quick glance through what we already know)
- Connecting the Dots
- Connecting the Dots - The Capacity of our Cluster!
When I wanted to learn about Spark and its Architecture, to get it from horses mouth, I went directly to the Apache Spark homepage Spark Architecture. Not surprisingly, I was presented with a neat Architecture diagram and a collection of jargons to start with - Cluster manager, Driver Program, Spark Context, Worker node, Executor, Task, Job, Stage.
Since I have been working with Big Data Technologies for quite some time, I was able to map the things on a high level. Not recently, I started imbibing a pattern of learning in which I mark something as learned if and only if I am successful in making another person understand that concept in the most simple terms. So sticking on to that thumb rule and to force the zen pattern, I am trying to to explain the Architecture from a different(more practical) point of view(I presume you have basic understanding of Hadoop and MapReduce).
The basics (Quick glance through what we already know)
We all know that the Spark Architecture sits on top of the Hadoop Platform. So, the simple layman question - What is a Hadoop cluster and why do we need it ?
As per Wiki - Apache Hadoop is an open-source software framework used for distributed storage and processing of dataset of big data using the MapReduce programming model.
To understand the need and evolution of Hadoop-MapReduce, I suggest you to go through the below write up :-
Evolution of Hadoop and MapReduce
P.S : - More to Come on this introduction part.
Connecting the Dots
Ok, Let’s try to see the whole architecture from a different perspective. We all know that the Hadoop cluster is “made” using the commodity Hardwares and let’s assume that we have 5 Physical machines each of them is having a basic configuration (16GB RAM, 1 TB HDD, and 8 Core Processors).
Ta-da, we have got the physical machines in place and we now need to do is to setup a Spark Cluster using these machines. To separate the concerns, we will be sticking on to the official Spark Architecture (Documentation) and try to illustrate how the following components are form part of the Architecture.
- Main Components - Hypothesis
- Driver Program :- This should be the user logic and configuration, eh?
- Cluster Manager :- This should be something which manages the Cluster (Hmm, resources and flow ? )
- Worker Node :- This should be something which does the actual work ?
We will try to give a formal definition and the responsibilities of each of these components in a while. Since we are building a Hadoop Spark Cluster, we should
have a Distributed Storage layer built first by connecting all these machines to store the large volumes of data. So in the cluster we are going to build,
we will make the Machine 1 as the Edge Node (A single point of access from where an end-user can perform anything on the cluster) and only 3 out of the 4 remaining
machines(Machine 2, 3 & 4) will only be used to store the data in the cluster and thus form the storage layer (3 * 1 TB = ~3 TB). If you closely observe the different
components in Hadoop Eco-system, almost everything work in a Master-Slave architecture.  In the case of Distributed Storage, the master is called NameNode and the slaves are called DataNodes. So if you try to point them back to our simple
cluster NameNode is a process running on the Machine 5 and DataNodes are individual processes running on Machine 2,3 & 4. Similarly, for managing the task allocation
and resources, the Resource Manager(Master) will be running on Machine 5 and individual Node Managers(slaves) will be running on each of the Machines 2, 3 & 4.
Connecting the Dots - The Capacity of our Cluster!
Now that we have a storage layer to layer to store our ‘Big Data’, there should be some mechanism to do the computation/processing. If we do a quick peek into the Spark Architecture(Yes, I am still following the bottom up method to explain things :D ), we can see Components named Executor with individual Task and Cache. Yes, these are the Heros which gets the work done. We can treat each Executor as individual container with its own Processor and Memory(Virtual Cores - Will be explained in a separate thread - Spark Memory Management - Ideally the V-Cores are equal to the number of physical cores available in each Node). So if we do the math, Each of our Worker Node makes the following contributions to the total capacity of the Cluster.
| * | Attribute | Value | How |
| 1 | Storage | 1 GB | It is the HDD available to Store Data |
| 2 | V - Cores | 5 Cores | Leaving 1 Core for NM, 1 Core for DN and 1 Core for OS |
| 3 | Memory | 10 GB | Leaving 4 GB for OS, NM and DN |
| * | Total | 3 TB HDD + 15 V-Cores + 30 GB | Adding the resources from each of the nodes |
To summarize, the Node Managers will share the Memory and V-Core information to the Resource Managers and the DataNodes will share the Disk space statistics with the NameNodes during their startup. The cumulative information will actually provide the overall capacity of the cluster.
P.S: There are more to this like pluggable Capacity Scheduler and the Algorithm for Calculating the resource availability (Default Resource Calculator and DominantResource Calculator using Dominant Resource Fairness ) - We will talk about this in a separate thread Resource Scheduling
The continuation of this discussion will happen in the next Post Spark Architecture : Part 2 - Let’s set the ball rolling


--- layout: post status: publish published: true title: "无法可修饰的一对手..." author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 686 wordpress_url: http://leaskh.wordpress.com/2005/09/11/%e6%97%a0%e6%b3%95%e5%8f%af%e4%bf%ae%e9%a5%b0%e7%9a%84%e4%b8%80%e5%af%b9%e6%89%8b date: '2005-09-11 13:01:46 +0800' date_gmt: '2005-09-11 13:01:46 +0800' categories: - Life tags: [] comments: - id: 102 author: Kısaca author_email: '' author_url: '' date: '2005-09-22 08:00:27 +0800' date_gmt: '2005-09-22 08:00:27 +0800' content: Hi!! Just visiting spaces by to say hello. You have a pretty space..I like all what you've done on your space..Congratulations! I wish your happiness with your family..You are welcome to my space whenever you wish..Greetings & Best wishesHaldun - id: 103 author: "文祥" author_email: '' author_url: '' date: '2005-09-11 13:48:56 +0800' date_gmt: '2005-09-11 13:48:56 +0800' content: "祝伯母早日康复！" - id: 104 author: Sas. author_email: '' author_url: '' date: '2005-09-11 13:07:53 +0800' date_gmt: '2005-09-11 13:07:53 +0800' content: "伯母会健康的!!一定会!!" ---


27
The Redemption of Israel
1 In that day the LORD with his hard and great and strong sword will punish Leviathan the fleeing serpent, Leviathan the twisting serpent, and he will slay the dragon that is in the sea.
2 In that day,
“A pleasant vineyard, sing of it!
3 I, the LORD, am its keeper;
every moment I water it.
Lest anyone punish it,
I keep it night and day;
4 I have no wrath.
Would that I had thorns and briers to battle!
I would march against them,
I would burn them up together.
5 Or let them lay hold of my protection,
let them make peace with me,
let them make peace with me.”
6 In days to come Jacob shall take root,
Israel shall blossom and put forth shoots
and fill the whole world with fruit.
7 Has he struck them as he struck those who struck them?
Or have they been slain as their slayers were slain?
8 Measure by measure, by exile you contended with them;
he removed them with his fierce breath in the day of the east wind.
9 Therefore by this the guilt of Jacob will be atoned for,
and this will be the full fruit of the removal of his sin:
when he makes all the stones of the altars
like chalkstones crushed to pieces,
no Asherim or incense altars will remain standing.
10 For the fortified city is solitary,
a habitation deserted and forsaken, like the wilderness;
there the calf grazes;
there it lies down and strips its branches.
11 When its boughs are dry, they are broken;
women come and make a fire of them.
For this is a people without discernment;
therefore he who made them will not have compassion on them;
he who formed them will show them no favor.
12 In that day from the river Euphrates to the Brook of Egypt the LORD will thresh out the grain, and you will be gleaned one by one, O people of Israel.
13 And in that day a great trumpet will be blown, and those who were lost in the land of Assyria and those who were driven out to the land of Egypt will come and worship the LORD on the holy mountain at Jerusalem.


Instances¶
Create a new instance¶
// Create an empty object
$instance = $service->instance();
// Send to the API
$instance->create(array(
'name' => '{name}',
'flavor' => $service->flavor('{flavorId}'),
'volume' => array('size' => 4) // 4GB of volume disk
));
Get the executable PHP script for this sample
Waiting for the instance to build¶
The SDK provides a blocking operation that will wait until your instance resource has transitioned into an ACTIVE state. During this period, it will continuously poll the API and break the loop when the state has been achieved:
$instance->waitFor('ACTIVE', null, function ($instance) {
// This will be executed continuously
printf("Database instance build status: %s\n", $instance->status);
});
Connecting an instance to a load balancer¶
The instance created in the previous step can only be accessed from the Rackspace private network (aka SERVICENET). If you have a cloud server instance in the same region as the database server instance, you will be able to connect to the database from that cloud server instance.
If, however, you would like to access the database from the Internet, you will need to create a load balancer with an IP address that is routable from the Internet and attach the database server instance as a back-end node of this load balancer.
$lbService = $client->loadBalancerService(null, '{region}');
// Create empty object
$loadBalancer = $lbService->loadBalancer();
// Associate this LB with the instance as a "node"
$loadBalancer->addNode($instance->hostname, 3306);
$loadBalancer->addVirtualIp('PUBLIC');
// Configure other parameters and send to the API
$loadBalancer->create(array(
'name' => 'DB Load Balancer',
'port' => 3306,
'protocol' => 'MYSQL',
));
// Wait for the resource to create
$loadBalancer->waitFor('ACTIVE', null, function ($loadBalancer) {
printf("Load balancer build status: %s\n", $loadBalancer->status);
});
foreach ($loadBalancer->virtualIps as $vip) {
if ($vip->type == 'PUBLIC') {
printf("Load balancer public %s address: %s\n", $vip->ipVersion, $vip->address);
}
}
In the example above, a load balancer is created with the database server instance as its only back-end node. Further, this load balancer is configured to listen for MySQL connections on port 3306. Finally a virtual IP address (VIP) is configured in the PUBLIC network address space so that this load balancer may receive connections from the Internet.
Once the load balancer is created and becomes ACTIVE, it’s Internet-accessible IP addresses are printed out. If you connect to any of these IP addresses on port 3306 using the MySQL protocol, you will be connected to the database created in step 3.
Retrieving an instance¶
$instance = $service->instance('{instanceId}');
Updating an instance¶
An instance can be updated to use a specific configuration as shown below.
$instance->update(array(
'configuration' => '{configurationId}'
));
Note
If any parameters in the associated configuration require a restart, then you will need to restart the instance after the update.
Deleting an instance¶
$instance->delete();
Restarting an instance¶
$instance->restart();
Resizing an instance’s RAM¶
To change the amount of RAM allocated to the instance:
$flavor = $service->flavor('{flavorId}');
$instance->resize($flavor);
Resizing an instance’s volume¶
You can also independently change the volume size to increase the disk space:
// Increase to 8GB disk
$instance->resizeVolume(8);


It's cool, right? Let's checkout our awesome projects!
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
This card has supporting text below as a natural lead-in to additional content.
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.


It's been 20 years since I wrote my first line of code. Since then, I got my MSc in Software Engineering back in 2010; I have been software developer (1 year), team leader (1 year), co-founder and CEO (3 years) and CTO (1.5 years) in different software companies.
My professional career history advertises me as Java developer in the field of enterprise systems. While that's (very) true, it's not the whole truth! My deep dive in technical work didn't dim my enthusiasm about human communication, teamwork, and learning new things.
I am currently a PhD student at Stony Brook University.
Yes! A few months ago I started with the idea of building a fully automated online radio station, which now has many listeners worldwide and named Radio Auto-asaad. I invite you to take a look at its technical blog to see my notes on design approaches and challenges of building Radio Auto-asaad.


Covered topics: Hierarchical State Machine, Motion Planning, Visual Servoing, Collision Avoidance, Singularity Avoidance, Inverse Kinematics with Jacobian, Face Detection, Person Tracking, Hand Tracking, Pose Estimation
Bubble Lab is dedicated to introducing innovative automation technologies to the foodservice industry, which helps to bridge the gap between human and machine. Their previous work focused on the design of intelligent devices for cafés and restaurant. This project is a whole new attempt. We took advantage of the power of UR3, a collaborative industrial robotic arm, to develop a computer-vision-based robot to interact with customers and provide on-demand service. The robot is currently in beta test at Dotcom Space, Beijing. My contribution of the project:
Covered topics: Behavior Tree, Face Tracking, Panorama Stitching, Beat Tracking, Voice Recognition, Video/Audio Streaming, Motion Control, Wireless Communication, TDD, Software Deployment
PLEN Cube is a portable personal assistant robot that fits in the palm of user's hand. It is the first product of PLENGoer Robotics (current PLEN Robotics) that I developed as a founding member of the company. My major accomplishments include:
Covered topics: Tech Transfer, Commercialization, Entrepreneurship, Case Study, Elevator Pitch, Market Research, Business Plan, Technology Assessment, Venture Assessment
A two-week experiential training course on commercialization of early-stage technology. Groups are formed by experts with different backgrounds, and a real technology under development is assigned to each group for thorough assessment in terms of its feasibility of commercialization. For a technology with great potential, participants are required to perform market research, prior art search, etc. and draft business plan to evaluate its profitability. On the final pitch day, the groups will present the assessment results to actual venture capitalists and investment could be made to bootstrap promising business.
Check it outCovered topics: Mobile Robot, 3D Modeling, 3D Printing
A highly customizable mobile robotic platform with 3D printable components that can be used for testing of mobile sensor network algorithms in an indoor laboratory environment. We designed this platform to facilitate mobile robot experiments as it is very inconvenient to design a chassis every time the sensor configuration changes. The design is highly modularized so most of the common sensor types can be used on the platform without modification.
Check it outCovered topics: Biomechanics, Movement Analysis, Kinetic Chain, Sensor Fusion, Data Acquisition, Statistical Analysis, Data Visualization, 3D Modeling, Golf, Putting Stroke, EEG, ERP
This research aims to develop a novel coaching system that can substantially improve motor learning efficiency for certain sports skills. We developed an 18-channel 6-axis full-body wearable sensor network in order to obtain real-time, precise biomechanical data for high-performance movement analysis. Golf putting stroke is selected as our target skill in the experiment. We are then able to compare movement patterns of professional athletes and amateur players and derive necessary on-line feedback signals to help the amateur players' movement converge to the professionals'. In the end, we also attempted to develop a self-evaluation sub-system using event-related potential (ERP) so we know if the user reacted to our feedback timely or not.
Covered topics: Exoskeleton, Power-Assisted Device, Timing, Well-Timed Assistance, Sit-to-Stand Movement, Data Acquisition, Statistical Analysis, Data Visualization 3D Modeling, EMG
This is a continuation of the previous work on the exoskeleton. We investigated the commonly neglected timing issue in power-assisted devices and designed an EMG based evaluation method to verify our hypothesis. As a result, we achieved above-the-norm performance with well-timed assistance than most of the other proportional-EMG-controlled human augmentation devices. A journal paper has been published in SICE Journal of Control, Measurement, and System Integration titled On the Well-Timed Assistance in Power-Assisted Sit-to-Stand Movement.
Check it outCovered topics: Mechanical Design, Exoskeleton, Pneumatic Actuation, Biomechanics, Legged Locomotion
We designed a lower-body exoskeleton for power assistance in daily activities. Our prototype has been through several iterations. The initial concept was to incorporate energy recycling mechanism so the suit could be quasi-passive and energy efficient. We then adopted the tensegrity structure in Architecture in order to reduce the overall size. The final exoskeleton is more similar to traditional designs, which employed one air cylinder each leg as the main actuators. Encoders are also mounted on hip, knee and ankle joints for gait detection and movement analysis.
Covered topics: Real-Time Kernel(µC/OS-II), Finite State Machine, PWM, PID Controller，Ackermann Steering, Speed Differential, Embedded System, Signal Processing
The Freescale Cup is similar to the Renesas competition below but has more restrictions on the car itself. To improve the algorithm-heavy system's performance, for the first time we tried to use a real-time kernel(µC/OS-II) on the Freescale HCS12 and won a district 3rd prize in the end.
Check it out (Chinese)Covered topics: Finite State Machine, PWM, PID Controller, Ackermann Steering, Speed Differential, Embedded System, Coreless DC Motor, H Bridge
A smart line-tracking car built on top of the Renesas H8/3048F-ONE microcontroller. The goal is to race on an unknown track at maximum speed with only eight IR sensors in front. We customized the car using high-performance coreless DC motors and encoder and achieved ultra low failure rate at 3.2m/s. I worked as the algorithm architect with my team and won the 1st prize winner.
Check it out (Chinese)


0
USER
Account
Teamwork
Sentinel client
News
About the university
For us
Professions
Plans
Partners
Trainers
Dorms
Apply
Training Courses
C# Basics
Java Basics
Web Fundamentals
PHP & MySQL
For Companies
Forum
Contacts


There are many power tools at your disposal when using the DevTools, some of which are more obvious than others. In this guide, we will highlight some of those great tools, tips and tricks that are less well known. Read on and learn about those capabilities you might not know yet!
- Console
- Write multi-line commands
- A shortcut to launch in inspect element mode
- Support for the console.table command
- Preview logged console objects
- Pass multiple arguments to styled console logs
- Shortcut to clear the console history
- Become a keyboard ninja
- Accessing elements from the console
- Access the last console result
- Querying the DOM using XPath expressions
- Using console.dir
- Running the JS console in a specific iframe
- Stop the console clearing when navigating to a new page
- Benchmark loops using console.time() and console.timeEnd()
- Profiling with console.profile() and console.profileEnd()
- Timeline
- Profiles
- Sources
- Debug on DOM modifications
- Tracking uncaught exceptions
- Conditional breakpoint actions with console.log
- Pretty Print JavaScript
- ‘Favourite’ an expression or variable value
- Get insights into internal properties
- Easily debug XHRs
- Retrieve event handlers registered on elements
- Escape to see the console
- Become more effective when paused at a breakpoint
- Pause on exceptions
- Text search across all scripts
- Debugging CoffeeScript With DevTools And Source Maps
- Elements
- Network
- Settings
- General
- Quickly switch between tabs
- Get an improved dock-to-right experience
- Use ‘Disable Cache’ for cache invalidation
- Inspect Shadow DOM
- Preview all inspectable pages
- Get insights into which sites have appcached
- Select multiple filters in the Network/Console panels
- Clear the cache and perform a hard reload
- Insights with the Chrome Task Manager
- Additional Tools
Console
Write multi-line commands
When in the console's multi-line editing mode, you can treat blocks of text as if you were using a standard text editor. Shift + Enter allows you enter multi-line mode in the console.
This can be particularly helpful when writing JavaScript that is more complex than a simple one-liner. Once you've entered a block of text, press Enter at the end of the command and it should run.
A shortcut to launch in inspect-element mode
Ctrl + Shift + C or Cmd + Shift + C will open up DevTools in inspect element mode (or switch focus to it) so you can inspect the current page immediately. Repeating returns focus to the page. On Mac, use Cmd + Shift + C to achieve the same.
More: Using The Console | DevTools Docs
Support for the console.table command
This command logs any supplied data using a tabular layout. Some examples of how to use it include:
console.table([{a:1, b:2, c:3}, {a:"foo", b:false, c:undefined}]); console.table([[1,2,3], [2,3,4]]);
There is also an optional 'columns' parameter which takes the form of an array of strings. Below, we define a family object containing many "Person"s and can then choose which columns we would like displayed using it:
function Person(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } var family = {}; family.mother = new Person("Susan", "Doyle", 32); family.father = new Person("John", "Doyle", 33); family.daughter = new Person("Lily", "Doyle", 5); family.son = new Person("Mike", "Doyle", 8); console.table(family, ["firstName", "lastName", "age"]);
whilst, if you just want to output the first two of these columns, use:
console.table(family, ["firstName", "lastName"]);
More: Support for the console.table command has landed | G+.
Preview logged console objects
Objects logged using console.log() can be previewed directly inside the DevTools without further work on your part.
Pass multiple arguments to styled console logs
As we’ve documented you can add style to your console logs via %c
, just like you can in Firebug. e.g
console.log("%cBlue!", "color: blue;");
Blocks specifying multiple styles are also supported:
console.log('%cBlue! %cRed!', 'color: blue;', 'color: red;');
More: Styled Console Logging In The DevTools | G+
Shortcut to clear the console history
With the console open you can easily clear your console history using the Ctrl + L or Cmd + L shortcut. A clear() command is also available at the shell prompt as is the console.clear() method via the Console API from JavaScript.
Become a keyboard ninja
With the DevTools open you can just use ? to see all of the supported shortcuts in a convenient panel.
Accessing elements from the console
Select an element and type $0 in the console, it will be used by the script. If you have jQuery on the page, you can then use $($0) to reselect the element in the page.
You can also right click on any element output to the console and click “Reveal in Elements Panel” to find it in the DOM.
Querying the DOM using XPath expressions
XPath is a query language for selecting nodes from documents and generally returns a node-set, string, boolean or number. You can use XPath expressions to query the DOM from the DevTools JavaScript console.
The $x(xpath)
command will allow you to execute a query - see below for an example of how to search for the images in a page using $x(‘//img’)
:
However, the function also accepts an optional second argument for the path context - i.e $x(xpath, context)
. This lets us select a specific context (e.g an iframe) and run an XPath query against it.
var frame = document.getElementsByTagName('iframe')[0].contentWindow.document.body; $x('//'img, frame);
which queries the images within the specified iframe.
Access the last console result
Using the $_ helper will allow you to access the last console result. We can demonstrate using this with another XPath example:
Using console.dir
The console.dir(object) command lists out all of the properties of a provided object as an expandable JavaScript object. Below is an example displaying an expandable object representing the properties found under document.body.
Running the JS console in a specific iframe
Along the bottom bar of the DevTools are drop-down options that change depending on the context of your current tab. When you’re in the Console panel, there’s a drop-down that allows you to select the frame context that the console will operate in. Select your frame in the drop-down and you’ll find yourself in the right context in no time.
Stop the console clearing when navigating to a new page
Sometimes you want to be able to preserve your console log history when you navigate to a new page. To enable this, right-click in the console and select "Preserve Log upon Navigation". When you navigate to a different page from the current tab, the console history will no longer be cleared.
Benchmark loops using console.time()
and console.timeEnd()
console.time() begins a new timer using a specific label. When console.timeEnd() is called using the same label the time is stopped and the elapsed time between both is logged to the console. This is particularly useful for benchmarking loops or code which doesn’t call a function.
Profiling with console.profile()
and console.profileEnd()
With the DevTools open, calling console.profile() begins a JavaScript CPU profile. A label for the profile can be optionally passed, as seen below in console.profile("Processing"). To complete a profile run, call console.profileEnd().
Each profile run gets added to the Profiles panel:
It is also added to the console.profiles[]
array for inspection later on:
For more key tricks with the console, dive into Using The Console:
- A place to log diagnostic information using methods provided by the Console API, such as
console.log()
, orconsole.profile()
. - The methods provided by the Command Line API, such as
$()
command for selecting elements, orprofile()
to start the CPU profiler.
Timeline
Frame profiling with Timeline Frames Mode
The Timeline panel provides an overview of where time is spent loading up your web application such as how long it takes to process DOM events, render page layouts or paint elements to the screen. It allows you to drill down into three separate facets that can help discover why your application is slow: Events, Frames and actual Memory usage.
Timeline won’t display any data by default but you can begin a recording session with it by opening your app and clicking on the circle at the bottom of the pane. Using the Ctrl + E or Cmd + E shortcut will also trigger a record.
This record button will turn from gray to red and the Timeline will begin to capture the timelines for your page. Complete a few actions inside your app and after a few seconds, click the button again to stop recording.
Frames mode gives you insight into the tasks Chrome had to perform to generate a single frame (update) of your application for presentation on the screen. In this mode, the shaded vertical bars correspond to recalculating styles, compositing and so on. The transparent areas of each vertical bar correspond to idle time, at least, idle on the part of your page.
For example, say your first frame takes 15ms to execute and the next takes 30ms. A common situation is that frames are synchronized to refresh rate and in this case, the second frame took slightly longer than 15ms to render. Here, frame 3 missed the "true" hardware frame and was rendered upon the next frame, hence, the length of the second frame was effectively doubled.
If your app doesn't have a lot of animation in it, the idea of frames is useful as the browser has to perform a repeated sequence of actions while processing input events. When you leave enough time to process such events in a frame, it makes your app more responsive, meaning a better user experience.
When we target 60fps, we have a max of 16.66ms to do everything. That's not a lot of time and so squeezing as much performance out of your animations as possible is important.
More: Improving Performance With The DevTools Timeline | DevTools Docs
Spot forced layout events using warnings
In the DevTools Timeline, if you see a yellow triangular icon in the Records view, this is an indication some of your code is triggering forced/synchronous layout events.
You ideally want to avoid unnecessary layout triggers as they can have a significant impact on the performance of your page.
More: Timeline Warnings Are A Performance Smell | G+
Share and analyze a Timeline recorded by someone else
You can view and share Timelines with other developers thanks to a useful import/export feature. Use Ctrl + E or Cmd + E to start & stop recording then right-click inside the Timeline and use Save Timeline data. The same menu supports Load Timeline data for loading an exported file back in for viewing.
Annotating Timeline Recordings
Your code can add annotations to Timeline recordings using the console.timeStamp() method. This helps correlate code in your web app to other activity going on or browser events.
More: DevTools Console API - Marking The Timeline | DevTools Docs
Your application can add annotations to Timeline recordings by calling the console.timeStamp() method. This lets you easily correlate code in your application to other activity in your application or browser events. In the following recording, the Timeline is annotated with the string "Adding result". See Marking the Timeline in Using the Console for example code.
FPS Counter/HUD Display
A useful tool for visualizing frame rate and jank is the real-time FPS counter. This can be enabled in the DevTools by going to the Settings menu and checking “Show FPS meter”.
When activated, you will see a dark box in the top-right corner of your page with frame statistics. The counter can be used during live editing to diagnose what in your page is causing a drop-off in frame rate without having to switch back and forth with the Timeline view.
More: Profiling Long Paint Times with DevTools' Continuous Painting Mode | HTML5Rocks
Keep in mind that just tracking the FPS counter may lead to you not noticing frames with intermittent jank. Be careful when using the content. It is also worth noting that FPS on desktop does not equal FPS on devices and special care should be taken to profile the performance there too.
For more key tricks with profiling using the Timeline, dive into Performance Profiling With The Timeline:
- A place to record and analyze all the activity in your application as it runs. It's the best place to start investigating perceived performance issues in your application.
- Insights into frame-rate, individual types of records that are generated in recordings and the layout process by which Chrome calculates the positions and sizes of all the elements on the page.
Profiles
Finding JavaScript memory leaks with the “3 snapshot” technique
Open up the DevTools and switch to the Profiles panel
Perform an action in your page that makes a leak
Take a new heap snaphot
Repeat steps 2 and 3 three times
Select the latest heap snapshot
Change the filter “All Object” to “Objects between Snapshot 1 and 2”
You should now see a set of leaked objects. You can select one and look at the list of retainers in the Object’s retaining tree for insights into what is causing leaks.
More: BloatBusters - Eliminating Memory Leaks In GMail
Understanding Nodes In The Heap Profiler
Red nodes are those that are staying alive because they're part of a detached DOM tree and there is a node in the tree referenced from JavaScript (either as a closure variable or by some property).
Yellow nodes indicate a detached DOM node reference from an object's property or an array element - there should be a chain of properties leading from the DOM window to the element (e.g window.foo.bar[2].baz).
More: Understanding Nodes In The Heap Profiler | G+
Understanding time spent in CPU profiler
In the CPU profiler, "(idle)" time is now marked as such. Time spent in non-browser processing is "(program)".
Additional insights with Heap profiler views
One common question we get asked is “what are the differences between the Comparison, Dominator, Containment and Summary views in DevTools > Profiles > Heap snapshot”. These views provide additional insights into the data exposed by the profiler and break down as follows:
Comparison view helps you track down memory leaks, by displaying which objects have been correctly cleaned up by the garbage collector. Generally used to record and compare two (or more) memory snapshots of before and after an operation. The idea is that inspecting the delta in freed memory and reference count lets you confirm the presence and cause of a memory leak.
Dominators view helps confirm that no unexpected references to objects are still hanging around (i.e that they are well contained) and that deletion/garbage collection is actually working.
Summary view helps you hunt down objects (and their memory use) based on type grouped by constructor name. This view is particularly helpful for tracking down DOM leaks.
Containment view provides a better view of object structure, helping us analyze objects referenced in the global namespace (i.e. window) to find out what is keeping them around. It lets you analyze closures and dive into your objects at a low level.
More: Taming The Unicorn: Easing JavaScript Memory Profiling In Chrome | AddyOsmani.com
For more key tricks with memory profiling, dive into Profiling Memory Performance:
- A place to learn how to use the Heap Profiler for uncovering memory leaks in your applications.
- Insights into the different views of data that are available - including Summary view, Comparison view Containment view and Dominator view.
Sources
Debug on DOM modifications
Right-click an element and enable ‘Break on Subtree Modifications’: whenever a script traverses that element childs and modifies them, the debugger rolls in automatically to let you inspect what’s happening:
Also worth noting is that Attribute modifications pause on inline style changes which can be useful for debugging DOM animations.
Tracking uncaught exceptions
From the Sources pane, double clicking the pause script execution () button will break the code when an uncaught exception occurs, preserving the call stack and the current state of the application - some refer to this as the purple pause.
Conditional breakpoint actions with console.log
The DevTools support conditional breakpoints, which we know can be set by clicking the line you wish to set a breakpoint on and applying a breakpoint as normal.
You then right-click the line and "Edit Breakpoint" where you are presented with an expression field. Define your condition here (e.g if the expression evaluates as truthy execution will break here).
A normal expression may be of the form x === 5
, however console.log statements are also completely valid input in the field.
This approach works well and we can easily see the console.log statements being fired in the console on breakpoints:
As console.log doesn't have a real return value, undefined means the conditional breakpoint won't result in execution being paused and your code will continue to run. It's much like a hard-coded console.log statement without the need to modify your code directly.
More: Breakpoint Actions In JavaScript | randomthink.net
Pretty Print JavaScript
The DevTools support prettifying of minified JavaScript to a more readable form. To pretty print:
Go to the Sources panel and selected your desired script from the scripts list.
Next, press the "Pretty print" button (marked with curly braces) from the bottom of the DevTools window.
Your code should now be prettified!
Before
After
‘Favorite’ an expression or variable value
Instead of writing again and again a variable name or an expression you are going to check a lot during a debug session, add it to the ‘Watch Expression’ list. You refresh the values if you modify them directly, or just watch them change while the code runs
Get insights into internal properties
Suppose you've defined a variable of value `s` and it performs the following operation:
s.substring(1, 4) // returns 'ell'
Do you think that `s` is a string? Not necessarily. It also can be a string object wrapper. Try the following in watch expressions:
"hello" Object("hello")
First is a regular string value, the second is a full-featured object. As confusing as it could be, the two values behave almost identically. But the second one has real properties and you can set your own too.
Expand the properties list and you will notice, how it's not a completely regular object: it will have an internal property [[PrimitiveValue]]
, where the original string value is stored. You cannot access this property from your code, but you can see it in DevTools debugger now.
More: Learn JavaScript Concepts With The DevTools | GitHub
Easily debug XHRs
From the debugger open the “XHR Breakpoints” section, you can specify any URL (even a substring) your code should break into when doing an XHR request. Or even tell it to break on every XHR:
Retrieve event handlers registered on elements
With the "Elements" tab open, find an element in the DOM tree and click to select the node. Note: You can also do this using the console API with getEventListeners(targetNode);
Next on the right, click to expand the "Event Listeners" section. There you will find a list of all event listeners attached to the element.
Escape to see the console
When debugging in the Sources panel, you sometimes require simultaneous access to a console. Simply hit the escape key and the console panel will be displayed.
You can write and execute JavaScript in this console as expected, but what's even better is if you're paused at a breakpoint, JS executed will be within the currently paused context.
Become more effective when paused at a breakpoint
While your script is paused at a breakpoint, there are a number of useful features at your disposal.
You might know that you can move around using "Continue", "Step Over", "Step Into" and "Step Out", but there are keyboard shortcuts available for each of these buttons. As mentioned in an earlier tip, ? will bring up a panel displaying them. Learn them as they'll make you more efficient at navigating through your code.
Watch Expressions (in the sidebar to the right) will keep an eye on expressions so you don't have to keep switching back to the console (e.g X === Y). Call Stack (under it) displays function cals the system has gone through to achieve where it is at present.
In Scope Variables, you're able to right click on any function and hten use "Jump to definition" to jump to the line in your script that defines that function.
DOM Breakpoints display any "Break on" modifications taken by right-clicking on a node in the Elements panel. This is helpful for debugging whether listeners have been correctly attached to nodes and what occurs when they are invokved.
The XHR Breakpoints panel is also useful as it can setup a breakpoint for XMLHttpRequests. Specify a breakpoint by typing in a substring of the URL you wish to inspect.
Pause on exceptions
You may want to pause JavaScript execution next time an exception is thrown and inspect its call stack, scope variables and state of your app.
A tri-state stop button ( ) at the bottom of the Scripts panel enables you to switch between different exception handling modes:
Pause on all exceptions
Pause on uncaught exceptions
Don’t pause on exceptions (default)
Text search across all scripts
If you wish to search across all of the files loaded for a page for a particular string, you can load up the search pane using the following shortcut:
Ctrl + Shift + F (Windows, Linux)
Cmd + Opt + F (Max OSX)
This supports both regular expressions and case sensitive search.
Debugging CoffeeScript With DevTools And Source Maps
Source Maps provide a language-agnostic way to map compiled production code back to the original source code that was authored in your development environment.
When analyzing code generated for production, it is often minified (and in the case of a language that tranpiles to JavaScript, compiled) making it difficult to locate where the lines map to your originally authored code.
During the compilation phase, source maps can store this information, allowing you to debug production code, a line will return the exact location in the original file back to you. This makes a world of difference as you can both read and debug production code, whether it's in CoffeeScript or otherwise - as long as it has a source map.
To enable Source Maps support in Chrome:
Open the Settings cog > General
Select "Enable source maps"
Next:
Compile your CoffeeScript to JavaScript running: coffee -c myexample.coffee
Install CoffeeScript Redux
Create a Source map file example.js.map which will hold the mapping information:
$ coffee-redux/bin/coffee --source-map -i example.coffee > example.js.map
Make sure the generated JavaScript file, example.js, has the source mapping url at the end as follows:
//# sourceMappingURL=example.js.map
Now when you're debugging CoffeeScript code, thanks to this statement the DevTools know where your original source file lives.
You could then take this source map and during your optimization/minification phase use a tool like UglifyJS2 to reference this first source map (CS to JS) and have it map the minified JavaScript back to the CoffeeScript and not the compiled JavaScript output. This allows you to debug production code straight back to your source CoffeeScript code.
More: NetTuts - Source Maps 101
For more key tricks with your authoring workflow, dive into Authoring And Development Workflow:
- A place to learn how to optimize your development workflow to save time achieving common tasks, such as locating files or functions, persisting edits to scripts or stylesheets or simply rearranging the layout to better suit your needs.
- Learning about new features such as Snippets which can be used to save and execute custom snippets of JavaScripts which are always available inside the DevTools.
Elements
Enable rulers
Under Settings > General > Show rulers a ruler can be enabled which will be displayed when you hover over or select an element in the Elements panel.
Autocompletion of CSS properties
The DevTools support autocompletion of known CSS properties and values (including those requiring a prefix), which is a useful way to determine which properties can be set for the current element.
Suggestions are displayed when you begin to type in a name for for a property or value, but you can also scroll through the available options for some properties using the right arrow key. It's also useful to know that the selected item will get applied to the page stylesheet so its effect will become visible instantly.
Colors can be defined within the Styles pane using named (e.g ‘red’), HSL, HEX or RGB values. You can shift/click to iterate through these if required.
Should you wish to display all supported values for a property, you can use Ctrl + space to display a complete list of suggestions.
The list of suggestions is context-specific and in certain cases (e.g font) numeric, named and prefixed values supported will also be displayed.
Color picker in the DevTools
The DevTools include a built-in color picker which is displayed when clicking on the colored preview square next to any valid color.
You can Shift + click to change the color format of the color being selected.
Adding new CSS styles
Clicking anywhere within the opening and closing brackets for a CSS rule (including within "element.style"), allows you to add a new CSS property which will similarly be instantly applied.
Once you have finished adding a property, you can hit the tab key to set the next property.
New selectors can be added by clicking the button to the right-hand side of the "Styles" sub-panel. This allows you to define a selector and similarly, add new properties and values as needed.
Note: You can also edit any selector in the Styles pane by single-clicking on the name of a selector. Once the name has been changed, the existing properties for the selector will be applied to the element selection defined by the new selector.
New pseudo-selectors can be added in a similar fashion, by appending them to the name of a selector. Also note that clicking on the "toggle element states" button, to the right of the new selector button will toggle the visibility of the "Force element state" pane.
Going back to the “Matched CSS Rules” panel, clicking on the link to the stylesheet next to a rule will take you to the Sources panel. The will display the complete stylesheet and take you to the line number where the relevant CSS rule exists.
Drag and drop in the Elements panel
In the Elements panel you can drag-and-drop an element to change its position within its parent, or move it to a completely different part of the document.
Force Element State
Want to force an element to adopt a particular state?
Right click on a child element and select 'Inspect Element'
In the Elements panel right-click the parent element and choose "Force Element State"
You can now choose one of :active, :hover, :focus or :visited to force the element into one of these states.
Writing and debugging Sass with the DevTools
Note: To use Sass debugging in Chrome you need to have version 3.3.0 (pre-release) of the Sass compiler, which is the only version that currently supports source map generation.
Working with a page containing pre-processed CSS can be a challenge as modifications made to your CSS styles within the DevTools typically won’t apply them back to your Sass source files. This means if making changes to your styles on the fly, you would need to go back and manually apply them to your source files using an external editor if you wanted to maintain them.
This is no longer an issue with recent improvements which improve the Sass development workflow. To enable Sass support:
Check to ensure you have Developer Tools experiments enabled in about:flags.
-
Next, go to the Settings cog > Experiments and enable “Sass stylesheet debugging” (Note that this feature will be out of experiments soon).
-
Go to the General menu > Settings > Check “Enable source maps” and “Auto-reload CSS upon Sass save”.
You can leave the timeout at its default value. Depending on how long the Sass compiler needs to complete its work, you may need to adjust the auto-reload delay. You can also disable auto-reload to manually reload the page as necessary.
Navigate to the page for a project you wish to debug Sass on in Chrome (with the DevTools open)
-
Next, fire up the Sass compiler using the following flags (which also specify a target CSS compile target):
sass --watch --sourcemap sass/styles.scss:styles.css
. This will have Sass watch for changes to your Sass source files and create source map files (.map) for each generated CSS file. You should see something similar to the below in your terminal:This confirms Sass debugging is indeed working.
-
If the setup worked as expected, you can go to the Elements panel. The first thing you’ll notice is that the filename for your styles will now display the corresponding .scss source file as well as the line number reflecting the line number in your source.
-
Clicking on a filename from here will take you directly to the Sources panel, with the line that corresponds to the selector highlighted. You’re now able to work with your Sass source file directly inside the developer tools with syntax highlighting in place.
-
When you wish to edit a Sass file from inside the Sources panel, the one thing you need to ensure is that DevTools is aware of where this file exists in your local file system. Right-click within the editor and choose “Save As” to overwrite your original source file with the one you are editing. As auto-reloading has been enabled and Sass is running in the background, changes we make are instantaneously shown inside both Chrome and the DevTools editor.
For more key tricks with working with elements and styles, dive into Editing Styles And The DOM:
- A place to learn how to view the real underlying structure of the page. For example, you may be curious if an image has an HTML id attribute, and what that attribute's value is.
- Discovery how to see everything in one DOM tree, including inspection and on-the-fly editing of DOM elements. You will often visit the Elements tabs when you need to identify the HTML snippet for some aspect of the page.
Network
Replay XHRs
As you probably know, the Network panel shows a list of all the requests your page has made including XHRs. You can replay any XHR (POST or GET) by right-clicking on the request to display the context-menu then selecting “Replay XHR”.
Clear the network cache or cookies
Right-click/Ctrl-click anywhere in Network panel and select Clear Browser Cache/Network Cache from context menu.
Record a trace & export the waterfall
Hit "record" to capture a multi-page trace
Export request meta-data: right click, "Copy Entry as HAR"
Export entire waterfall: right click, "Copy All as HAR"
More: Wait, DevTools Could Do That? | Igvita.com
Using large resource rows in network timeline for more detail
By triggering the “Use large resource rows” icon in the bottom of the Network panel, you can enable display of additional insights not found in the more compact/smaller resource rows view.
Compare the smaller resource rows view:
and the larger row version:
Tricks for getting more information out of the Network panel
Left-click on the header of the Timeline column in the Network panel to get access to further insights about network requests. You can switch between:
Timeline
Start Time
Response Time
End Time
Duration
Latency
What is the HTTP overhead on each request?
What is the time to first byte (TTFB) for each request?
Which is the slowest resource by response time?
Which is the slowest resource by duration?
Right-click anywhere on the header of any column in the network panel and you can enable or disable columns. 3 of these columns are not shown by default:
- Cookies
- Domain
- Set-Cookies
WebSocket inspection
In the Network panel, you can use the filters at the bottom of the window to inspect WebSocket message frames.
For example, navigate to the Echo demo, select the "WebSockets" filter from the bottom of the Network panel then click the "Connect" button. Any messages you send by clicking the 'Send' button can be inspected using the 'Frames' subpanel.
Green reflects messages sent by your client. WebSocket inspection is useful has it allows you to inspect both the WebSocket handshake as well as individual WebSocket frames.
More: Wait, DevTools Could Do That? | Igvita.com
More: WebSocket inspection with DevTools | Zaaking
Find and filter XHRs from the Network panel
When inspecting network requests in the Network panel you often need to narrow down to a specific request based on a specific keyboard. This can be easily done using theCtrl + F or Cmd + F keyboard shortcut.
In the search input field, type in the keyword you are searching for and those requests with a filename/URL matching it will be highlighted. You can flip between results using the up and down buttons beside the input field.
Although this is useful, it can be of more help to only display those results in the Network panel that matched your search term. Checking the “Filter” option will do this and we can see below.
More: Evaluating Network Performance | DevTools Docs
Get a dump of the network stack’s internal state
The "about:net-internals" page is a special URL that dumps a view of the network stack's internal state. This data can be helpful when debugging performance or connectivity problems. It includes information on request performance, proxy settings and DNS cache.
Also note that about:net-internals/#tests
is able to run tests for a specific URL.
For more key tricks with measuring network performance, dive into Evaluating Network Performance:
- A place to learn how to get insights each network operation in your application, including detailed timing data, HTTP request and response headers, cookies, WebSocket data, and more
- Learn which resource had the slowest time to first byte?. Which resources took the longest time to load (duration)? Who initiated a particular network request? and much more.
Settings
Emulating touch events
Touch is an input method that's difficult to test on the desktop, since most desktops don't have touch input. Having to test on mobile can lengthen your development cycle, since every change you make needs to be pushed out to a server and then loaded on the device.
A solution to this problem is to simulate touch events on your development machine. For single-touches, the Chrome DevTools supports single touch event emulation to make it easier to debug mobile applications on the desktop.
To enable support for touch event emulation:
Open up the overrides menu in the DevTools
Scroll down and check “Enable touch events”
We can now debug touch events in the same way that we can with standard desktop events via Event Listener Breakpoints in Sources.
Note: A caveat with touch event emulation is that the DOM0 event handlers do not currently work with the emulation mode. See here for the relevant bug to track.
More: DevTools Mobile Emulation | DevTools Docs
Emulating UA Strings & Device Viewports
It’s often easier to start prototyping on the desktop and then tackle the mobile-specific parts on the devices you intend to support. Device emulation can make this process more straightforward.
The DevTools support for device emulation includes native User Agent and dimension overriding. This allows developers to debug mobile browsers on different devices and operating systems via the overrides Menu.
Now you can emulate the exact device metrics of devices like the Galaxy Nexus and the iPhone to test your media query-driven design.
More: DevTools Mobile Emulation | DevTools Docs
Emulating Geolocation
When working with HTML5 geolocation support in an application, it can be useful to debug the output received when using different values for longitude and latitude.
The DevTools support both overriding position values for navigator.geolocation and simulating geolocation not being available via the overrides menu.
Overriding geolocation positions
Navigate to the Geolocation demo
Allow the page access to your position. This should hopefully be accurate.
Open up the overrides menu in the DevTools
Check “Override Geolocation” then enter in Lat = 41.4949819 and Lat = -0.1461206
- Refresh the page. The demo will now use your overridden positions for geolocation
Now check the “Emulate position unavailable” option
Refresh the page. The demo will now inform you that finding your location failed
More: DevTools Mobile Emulation | DevTools Docs
Dock-to-right for viewport debugging
Dock-to-right mode is also useful for previewing how your pages look when viewed on screens with smaller viewports. To use this:
Enable dock-to-right mode by long-holding on the layout switcher icon at the bottom of the DevTools window
You can now drag the window splitter right and left to change the width of the viewport and trigger your media query breakpoints.
Disable JavaScript
Click the Settings cog in the lower-right corner, then under Settings -> General enable “Disable JavaScript”. While the DevTools are open and this option is checked JavaScript will be disabled in the current page.
Should you require it, you can also run Chrome with the “-disable-javascript” flag to achieve the same effect.
General
Quickly switch between tabs
The Cmd + ] and Cmd + [ (or Ctrl + ] and Ctrl + [) shortcuts allow you to move right and left between the different tabs within the DevTools with ease. Use them to avoid manually selecting the tab you’re after!.
Get an improved dock-to-right experience
Improved horizontal splitting for the Elements and Sources panels are now in Chrome beta and can be experienced anytime you toggle dock-to-right mode:
However, if you have a very wide screen and would like to disable this, simply uncheck the “Split panels vertically when docked to right” option in the Settings panel.
More: 3 Steps To A Better Dock-To-Right Experience | G+
Use ‘Disable Cache’ for cache invalidation
Under the Settings cog, you can enable ‘Disable cache’ to invalidate the disk cache. This is great for developing, but the DevTools must be visible/open for this to work.
Inspect Shadow DOM
Elements which have Shadow DOM elements will now be displayed in the elements tab.
Enable the ‘Show Shadow DOM’ checkbox in Settings
Restart the DevTools
You can now peek inside Shadow DOM. For example, you can poke around the Shadow DOM Title demo on HTML5 Rocks:
Preview all inspectable pages
If you find yourself regularly using remote debugging, you might enjoy “about:inspect” which displays all inspectable tabs/extensions in Chrome. Click 'inspect' to switch to a page & launch the DevTools for it in one go.
Get insights into which sites have appcache'd
You can see information about appcached sites by visiting “about:appcache-internals”. This allows you to see which sites have appcached, when they were last modified, and how much space they're using. You can also remove appcaches here.
Select multiple filters in the Network/Console panels
You’re probably aware that there are filters available in the Network and Console panels, allowing you to narrow down the data displays based on different criteria.
What you probably don’t know is that you can use a shortcut (Cmd / Ctrl + click) to select more than one filter to be applied to view. Below you can see this in action across both panels.
Clear the cache and perform a hard reload
If you require a hard refresh, click and hold Chrome’s refresh button with the DevTools open. You should see a drop-down menu allowing you to clear the cache and do a hard reload in one go. Time saver!.
Note: This is currently only available on Windows and ChromeOS
Insights with the Chrome Task Manager
The task manager in Chrome can give you useful insights into the GPU, CPU and JavaScript memory usage, CSS and Script cache usage and more for any tab.
Follow these steps to open the task manager:
Click the Chrome menu on the browser toolbar.
Select Tools.
Select Task manager.
From there you can either select additional views to drill down to by right-clicking on any column or end a process by right-clicking on it.
Additional Tools
Debugging iOS apps in DevTools
PonyDebugger is a client library and gateway server combination that uses Chrome Developer Tools on your browser to debug your application's network traffic and managed object contexts.
JSRunTime: DevTools Extension For Grepping JavaScript Objects
Andrei Kashcha wrote a very useful extension for DevTools that can grep a reachable graph of JavaScript objects in memory and find matches by their value or name.
More: JSRuntime - A DevTools Extension For Grepping Objects | G+.
Other Resources
In addition to the tips above, there are also a number of fantastic external resources, slides, articles and videos that discuss the lesser known capabilities of the DevTools. We recommend looking at:
- Chrome DevTools Revolutions 2013 (I/O 2013)
- Improving Your 2013 Productivity With The Chrome DevTools
- The DevTools Cheatsheet
- Wait DevTools can do that?
- Chrome DevTools Evolution (I/O 2012)
- A Re-introduction to the Chrome DevTools (I/O 2011)
- TextMate-like features in Chrome DevTools
- Google Chrome Developer Tools: 12 Tricks to Develop Quicker
- Become a JavaScript Power User With The DevTools
- Modern Web Development


{% extends "base.html" %} {% load sentiment charts %} {% block breadcrumbs %} Dashboard / {{ object.project.name|truncatewords:5 }} / {{ object.name|truncatewords:5 }} / Transcript Analysis {% endblock breadcrumbs %} {% block content %}
This video is generally {% sentiment_display object.analyzed_transcript.documentSentiment.score %} in content
Sorry, we are either currently analysing or were unable to analyse the transcript for this video. So we can't provide you with accurate charts and graphs
{% endif %} {% endif %} {% else %} {% if not object.transcript_failed %}A transcript could not be found for this video, so we are unable to analyze the content! Sorry!
{% endif %} {% endif %}


Recommended and the fastest way to get started is to use CDN
Normal.css can be used in HTML , CSS/SCSS , JS and The examples below show how to do it


| Tanzania(https://www.cdc.gov/malaria/images/map/Tanzania_3.14.16.jpg) |
All areas at altitudes below 1,800 m (5,906 ft) |
High |
Chloroquine |
P. falciparum >85% P. ovale >10% P. malariae, and P. vivax rare |
Atovaquone-proguanil, doxycycline, or mefloquine |
Altitude of city(ies) of travel
Altitude information |
| Thailand(https://www.cdc.gov/malaria/images/map/Thailand_3.29.16.jpg) |
Primarily in provinces that border Burma (Myanmar), Cambodia, and Laos, and the provinces of Kalasin, Krabi (Plai Phraya District), Nakhon Si Thammarat, Narathiwat, Pattani, Phang Nga (including Phang Nga City), Rayong, Sakon Nakhon, Songkhla, Surat Thani, and Yala, especially the rural forest and forest fringe areas of these provinces. Rare to few cases in other parts of Thailand including the cities of Bangkok, Chang Mai, Chang Rai, Koh Phangan, Koh Samui, and Phuket. None in the islands of Krabi Province (Koh Phi Phi, Koh Yao Noi, Koh Yao Yai, and Ko Lanta) and Pattaya City. |
Low |
Chloroquine and Mefloquine |
P. falciparum 50% (up to 75% some areas) P. vivax 50% (up to 60% some areas) P. ovale and P. knowlesi rare. |
Provinces that border Burma (Myanmar), Cambodia, and Laos, the provinces of Kalasin, Krabi (Plai Phraya District only), Nakhon Si Thammarat, Narathiwat, Pattani, Phang Nga (including Phang Nga City), Rayong, Sakon Nakhon, Songkhla, Surat Thani, and Yala:
Atovaquone-proguanil or doxycycline
All other areas of Thailand including the cities of Bangkok, Chang Mai, Chang Rai, Koh Phangan, Koh Samui, and Phuket:
Mosquito avoidance only. |
Map of provinces of Thailand to determine if a city is within a certain district
|


---
title: Publications from the Richardson Lab
layout: default
group: publications
---
In Prep & Under Review
Richardson, H., Saxe, R., Bedny, M. (in prep). Selective responses for theory of mind in congenitally blind children.
Richardson, H., Boebinger, D., Saxe, R. (in prep). Neural Correlates of Processing Music in School-Aged Children.
Park, A.,
Richardson, H., Tooley, U., McDermott, C., Boroshok, A., Leonard, J., Tisdall, D., Deater-Deckard, K., Edgar, C., Mackey, A. (in prep). Negative parent affect and control is associated with reduced neural responses to positive emotional content in children.
*Kamps, F., *
Richardson, H., Murty, N.A.R., Kanwisher, N., Saxe, R. (under review). Using child-friendly movie stimuli to study the development of face, place, and object regions from age 3 to 12 years.
*joint first authorship
Peer-Reviewed Publications
{% for publication in site.publications reversed %}
{{ publication.citation | markdownify }} [
Full Text]
{% if publication.links %}
{% for link in publication.links %}
[
{{link.name}}]
{% endfor %}
{% endif %}
{% endfor %}
Conference Proceedings
Richardson, H., Baker, C., Tenenbaum, J., & Saxe, R. (2012). The development of joint belief-desire inferences.
In
Proceedings of the Annual Meeting of the Cognitive Science Society (Vol. 34, No. 34). [
Full Text]
Book Chapters
Richardson, H., Saxe, R. (2020). Early signatures and developmental change in brain regions for theory of mind.
In J. Rubenstein & P. Rakic (Eds.)
Neural Circuit and Cognitive Development, Second Edition, Volume 2. [
Full Text]
Richardson, H., Saxe, R. (2016). Using MRI to study developmental change in theory of mind.
In J. Sommerville & J. Decety (Eds.)
Social Cognition: Development Across the Life Span, 210.
Commentaries & Essays
Richardson, H. (2020). Beliefs for Human-Unique Social Learning. Commentary on Phillips et al., 2020 "Knowledge before Belief".
Behavioral and Brain Sciences, 1-37. [
Preprint]
Richardson, H.. (2012). New discoveries about the developing brain.
Future Reflections, 31(1). [
Full Text]
For a dynamic list of publications, please see Hilary's
Google Scholar profile. Stimuli and analysis plans are shared via the
Open Science Framework.
Download Hilary's full CV
here.


Total Correct Answers :0
Total Incorrect Answers :0
No of Unanswered Questions :0
What is typically considered the largest island in the world ?
Iceland    Greenland   Big Island Hawaii   Madagascar
What river flows into the Pacific Ocean between Oregon and Washington ?
Columbia River    Snake River   Sacramento River   San Joaquin River
Which European country replaced the Guilder with the Euro?
France    Italy   Netherlands   Switzerland
On which Hawaiian island would you find Diamond Head ?
Oahu    Molokai   Lanai   Kauai
What island is Tokyo located on ?
Kyushu    Okinawa   Honshu   Enoshima
Which is the westernmost state in the US?
California    Alaska   Washington   Nevada
Zagreb is the capital of which European country ?
Austria    Slovakia   Czech Republic   Croatia
What is the capital of South Africa ?
Cape Town    Pretoria   Johannesburg   Durban


Jottly is a place to bring your ideas and let them grow. Writers, editors, idea makers, content creators, and more can find someone to help take their thoughts and turn them into something more. If you need a really great writer to flesh out your idea, you can find that here. If you need an editor to elevate your project to the next level, you can find that here.
Jottly is a two-sided marketplace where they can find real people that they don’t already know to work with. While once a publisher was needed to find talented people, now you have Jottly
Never let a concept go to waste. Jottly is an infinite notebook to hold all your ideas.
Jottly has thousands of users, each with unique ideas and talents. Meet new content creators at the click of a button and let your ideas grow.
Jottly has a user base of thousands of writers, editors, journalists, musicians, poets, and more all sharing their ideas and thoughts. If you're looking to collaborate with a type of creative, you'll find them here.
“Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.”
“Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.”
“Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.”
Sign up for a free trial today!


Quiz Results
Thank you for getting to know me!
About Me
- I love to code
- Traveling while I can.
- Love to hike!
Education
- Background in Mechanical Engineer
- Bachelor's in Software Development
- CodeFellows Alumni
Work experience
- Software Development Engineer at AWS
- Vet Corp Navigator
- US Air Force - Dental Assistant
Goals
Continue to learn new technologies. I'm always curious to learn and dive deep into understanding programming languages and technologies.
Top Ten Places I Want to Visit
- Maldives
- Hawaii (Kauai)
- Paris
- Australia
- Japan
- Canada
- Italy
- Germany
- New York
- Antartica


Xbox One gets ability to easily buy games friends are playing
The software keeps on getting better and better.
by Asher MadanWhat you need to know
- Microsoft just rolled out a new feature that allows you to easily discover games.
- The Xbox One Guide now features the ability to directly buy the game a friend is playing.
- This means that it'll be easier for players to discover titles their friends are interested in.
Playing with your friends is a major aspect of Xbox Live and Microsoft keeps on introducing new ways to tell what your friends are doing. Today, Director of Programming for Xbox Live, Larry Hryb, announced that the team is rolling out a new feature on Xbox One where you can get more information on a game your friends are playing. If you open it up, you'll see that there's a link to play it there, an option to install or buy it, and open its Official Club.
This should make jumping into games with your friends much easier. We've tried it and it works really well. We're always curious about what others are doing because it may lead us to discover a game we had passed on earlier. What do you think of this new feature? Let us know.
Best of the best
Xbox Game Pass Ultimate
Xbox Game Pass and Xbox Live Gold in one
Xbox Game Pass gives you access to over a hundred games for one monthly fee. Xbox Game Pass Ultimate also adds Xbox Live Gold to the package so you can play online with your friends.
Get more Xbox
Xbox
- Xbox One S vs. Xbox One X: Which should you buy?
- Best Xbox One X and Xbox One S Accessories
- Best Xbox One Headsets 2019
- Best Xbox One Wireless Headsets 2019
- Best Xbox Controller Charging Stations in 2019
We may earn a commission for purchases using our links. Learn more.


| File UID | Client UID | Deadline | Datasheet Size | LOV Sheet size | |
|---|---|---|---|---|---|
| {{file.$id}} | {{file.clientUID}} | {{file.deadline | date: "medium"}} | {{file.sizeDatasheet / 1024 | number:2 }} MB | {{file.sizeLovsheet / 1024 | number:2 }} MB |
| Name : | {{model.emp1name}} |
| ECode : | {{model.emp1code}} |
| UID : | {{model.emp1uid}} |
| Email : | {{model.emp1email}} |
| Contact : | {{model.emp1contact}} |
| Rating : | {{model.emp1rating}} |
| File UID | Client UID | Deadline | ||
|---|---|---|---|---|
| {{file.$id}} | {{file.clientUID}} | {{file.deadline | date: "medium"}} |
Complete |
| Sr. No | Employee Code | Employee Name | Employee Email | Employee UID |
|---|---|---|---|---|
| {{$index}} | {{employee.ecode}} | {{employee.name}} | {{employee.email}} | {{employee.uidKey}} |
| Sr. | File | Company Rating | Company Rating | Your Rating | Your Rating | Given by Name & Company | Time |
|---|---|---|---|---|---|---|---|
| {{$index}} | {{feed.forFile}} | {{feed.companyRatingValue}} | {{feed.companyRatingText}} | {{feed.employeeRatingValue}} | {{feed.employeeRatingText}} | {{feed.givenByName + " of " + feed.givenByCompany + " company"}} | {{feed.timestamp | date: 'medium'}} |


---
layout: post
title: Sql Worksheet Tips
date: '2007-02-22T21:00:00.000-08:00'
author: Kris Rice
tags:
modified_time: '2007-04-10T07:55:51.940-07:00'
blogger_id: tag:blogger.com,1999:blog-37621059.post-7513139783741474592
blogger_orig_url: http://krisrice.blogspot.com/2007/02/sql-worksheet-tips.html
---
in a sql worksheet try some of these:
ctrl-shift-0..9
This will pop the 0-9th sql form the history and replace the current sql worksheet contents.set worksheetname helloWorking on APEX or mod_plsql routines?
set owacgienv onThis will make the owa.init_cgi_env before a plsql block and owa.get_page after and print in the script output.
set getpage on
begin
htp.p('hi');
end;
/
setloglevel oracle INFO