tag:blogger.com,1999:blog-27425722038725155002024-03-07T22:15:11.903-05:00Oriental FreelancerJohn622http://www.blogger.com/profile/07815638174466500930noreply@blogger.comBlogger61125tag:blogger.com,1999:blog-2742572203872515500.post-47075494929227605722021-11-28T23:01:00.000-05:002021-11-28T23:01:45.978-05:00Exact and closed differential formsThis post explains exact and closed differential forms.
The most general definitions work with general differential forms on m-dimensional manifolds. But let us begin by looking at 1-forms (line integrals).
Let's begin with a definition.
<br/>
<b>Definition: </b> a line integral \(\int\omega\) over a domain \(D\) is exact if \(\int\omega\) is dependent only on its initial and end point (independent of the path taken).<br/>
<b>Definition: </b> a line integral \(\int\omega\) over a domain \(D\) is closed if \(\int\omega\) it integrates to zero over every closed loop.<br/>
<b>Theorem: Assume that the vector field (1-form) has continuous partials and the domain is simply connected (the condition can be relaxed for some directions, but we assume so for simplicity.) The following are equivalent:</b>
<ol>
<li> A line integral is exact.
<li> The line integral is closed. </li>
<li> If the line integral's vector field has continuous partial derivatives, the 1-form (vector field) \(\omega\) is a gradient (i.e. has an anti-dervative)
</ol>
<br/>
The two non-trivial directions:<br/>
(1)=>(3): This follows because we can construct the anti-derivative (with some arbitrary starting point \(x_0\))
$$
F(\vec{x}) = \int_{\vec{x_0}}^{\vec{x}} \omega
$$
The proof follows similar to the traditional fundamental theorem of calculus.
<br/>
(2)=>(1): This follows from Green's theorem.
<br/>
<br/>
<b>More:</b>
<br/>
<b> One dimension</b>
<br/>
In one dimension fundamental theorem of calculus tells us that every continuous function is an exact integral.
<br/>
<b> Two dimensions </b>
In two dimensions, if a vector field is exact (i.e. is a gradient), then its mixed derivatives must be equal. i.e. if
$$
\vec{F}(x,y) = \nabla U(x,y)
$$
then, denoting the \(x\) and \(y\) components of \(F\) by \(P\) and \(Q\):
$$
\frac{\partial P}{\partial y} = \frac{\partial Q} {\partial x}
$$
This condition here is called <b>closed</b>.
<br/>
If Green's theorem applies, then closed would imply exactness. Green's theorem in two dimensions require simple connectedness and the vector field being C1. If the domain is made small enough, then the domain can always be made simply connected. This means that closed really means locally exact. The intuition behind the simply connected requirement is exact because simply connectedness allows us to break the domain down to very small boxes where the vector field is locally exact.
<br/>
When integrating a closed vector field around a very small circle, Green's theorem applies and all line integral over closed path gives zero. We call this vector field <b> irrotational </b> because it measures the infinitisimal tendency for the fluid to rotate if the vector field describes the fluid's velocity.
<br/>
Of course there are vector fields that are not defined on simply connected regions that are still exact. The standard \(F(\vec{r}) = \frac{1}{|r|}\hat{r}\) fits this. The potential in two dimensions is \(\ln(|r|)\).
<br />
There are also vector fields that meets the closed condition who are not exact. Consider
$$
\vec{F}(x,y) = \left(\frac{-y}{x^2 + y^2}, \frac{x}{x^2 + y^2} \right)
$$
<br />
<b> Three dimensions </b>
<br />
The analogue of Green's theorem becomes Stoke's theorem in 3D. Here, Stoke's theorem applies on a closed curve as long as there exists an enclosed surface with no discontinuities in the C1 vector field. So in 3D there is much more leeway to applying the "closed=>exact" logic.
<br />
Of course this all make sense because simply connectedness in 3D is an easier condition to meet in 3D than 2D. One would need a line of discontinuity, for example we could simply extend the above vector field to
$$
\vec{F}(x,y,z) = \left(\frac{-y}{x^2 + y^2}, \frac{x}{x^2 + y^2}, 0 \right)
$$
<br />
<b> Complex Analysis and Cauchy's Theorem </b>
<br />
Normally when applying the two dimensional Green theorem to functions it typically requires that the partial derivatives are continuous. Cauchy's integral theorem says that holomorphic functions are exact without a priori requiring continuous partials.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-6644677645276225142019-07-14T10:29:00.000-05:002019-07-14T10:32:35.886-05:00Mobius strip parametrizationRecently I thought about a way to parametrize the Mobius strip embedded in 3D.<br />
<br />
The intuition was the following:<br />
<br />
If someone were to look "down" along the circle of the strip, they would see a circle rotating by 180 degrees. A circle of this kind in 2D is very simply parameterized by:<br />
<br />
$$<br />
x_c(r,\psi) = r \cos(\psi) \\<br />
y_c(r,\psi) = r \sin(\psi)<br />
$$<br />
<br />
Now we need to wrap this around a circle. This would mean that the plane the half-circle sits in should be normal to the tangent vector of the circle in 3D.<br />
<br />
I choose to wrap my Mobius strip around the axis z with overall radius $R$. So I have the parameterization<br />
<br />
$$<br />
x = R \cos (\phi) \\<br />
y = R \sin (\phi) \\<br />
z = 0<br />
$$<br />
<br />
It's not hard to see that at every point on this circle, two basis vector for the plane normal to the tangent vector is given by:<br />
<br />
$$<br />
\hat e_1 = (\cos \phi, \sin \phi, 0) \\<br />
\hat e_2 = (0, 0, 1)<br />
$$<br />
<br />
With offset<br />
$$<br />
(R \cos \phi, R \sin \phi)<br />
$$<br />
<br />
Together, using the equations for \((x_c, y_c)\), I get the overall parametrization:<br />
<br />
$$<br />
x_c(r,\phi)\hat e _1 (2\phi) + y_c(r,\phi) \hat e_2 (2\phi) + (R \cos \phi, R \sin \phi, 0)<br />
$$<br />
<br />
Using matplotlib, I have something like:<br />
<br />
<br />
<pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: "arial"; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;">
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import interactive
import math
import matplotlib
matplotlib.use('Qt5Agg')
R = 4
def mobius(r, phi):
x_ = r * math.cos(phi)
e1 = np.array([math.cos(2*phi), math.sin(2*phi), 0])
y_ = r * math.sin(phi)
e2 = np.array([0, 0, 1])
return x_*e1 + y_*e2 + np.array([R*math.cos(2*phi), R*math.sin(2*phi),0])
# Generate torus mesh
phi = np.linspace(-0.5*np.pi, 0.5*np.pi, 50)
r = np.linspace(-1, 1, 50)
r, phi = np.meshgrid(r, phi)
X = np.ndarray(r.shape)
Y = np.ndarray(r.shape)
Z = np.ndarray(r.shape)
for (x,y) , r_scalar in np.ndenumerate(r):
phi_scalar = phi[x,y]
result = mobius(r_scalar, phi_scalar)
X[x,y] = result[0];
Y[x,y] = result[1];
Z[x,y] = result[2];
# Display the mesh
# plt.switch_backend('Qt5Agg')
# %matplotlib qt5
fig = plt.figure()
ax = fig.gca(projection = '3d')
ax.set_xlim3d(-5, 5)
ax.set_ylim3d(-5, 5)
ax.set_zlim3d(-1, 1)
ax.plot_surface(X, Y, Z, color = 'w', rstride = 1, cstride = 1)
plt.show()
</code></pre>
Output looks like:
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-qGrhs38wIdM/XStKEpeMq2I/AAAAAAAAGfU/TUxQETsxcL4aXldNGUIoIWt8WT4cZFHzACLcBGAs/s1600/Mobius%2BStrip.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="774" data-original-width="1600" height="193" src="https://1.bp.blogspot.com/-qGrhs38wIdM/XStKEpeMq2I/AAAAAAAAGfU/TUxQETsxcL4aXldNGUIoIWt8WT4cZFHzACLcBGAs/s400/Mobius%2BStrip.png" width="400" /></a></div>
<br />John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-68043452705814749942018-10-16T23:51:00.002-05:002018-10-16T23:51:30.740-05:00A intuitive explanation for the chain ruleThe chain allows us to take derivative of composition of two functions. It has the form<br />
$$(f\circ g)'(x)=f'(g(x))g'(x)$$<br />
<br />
Intuitively, why should it be a product of the two function's individual derivatives?<br />
<br />
We can answer that by looking at Taylor expansions.<br />
If we wiggle \(x\) in \(g(x)\) we get<br />
$$<br />
g(x+\delta)\approx g(x)+g'(x)\delta<br />
$$<br />
<br />
That means if we wiggle \(x\) by \(\delta\), f gets wiggled by \(g'(x)\delta\).<br />
<br />
A function \f(y)\ would change in a very similar way if we wiggle y:<br />
$$<br />
f(y+\delta') \approx f(y) + f'(y)\delta'<br />
$$<br />
<br />
We replace \(\delta'\) by \(g'(x)\delta\) because that is how much the "y" is perturbed if we perturb \(x\) by \(\delta\)<br />
<br />
Overall, we would get<br />
$$<br />
f(g(x+\delta)) \approx f(g(x))+f'(g(x))g'(x)\delta<br />
$$John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-69430504481458537402017-12-28T10:53:00.000-05:002017-12-28T10:53:00.819-05:00Permutations and n-dimensional rotationsThe question that motivates today's post is, how do we define rotations in n-dimensions?<br />
<br />
Let's the standard Euclidean bases as \((e_1, e_2\ ...)\).<br />
<br />
In two dimensions, a sequence of counter-clockwise rotations takes the standard basis thru the following sequence:<br />
<br />
$$(e_1, e_2), (e_2, -e_1), (-e_1, e_2), (-e_2, e_1)$$<br />
<br />
So each rotation switches the basis and negates the y-axis.<br />
<br />
Similar situation happens in 3-dimensional rotation along the three axes of rotations.<br />
<br />
This means it make sense to think of rotations (counter-clockwise) as operations that preserve an alternating tensor product. WLOG, we can take that alternating product to be the determinant of all the basis vectors.<br />
<br />
But rotation through the origin also has the property that it preserves distances. Namely an isometry.<br />
<br />
$$\| Rx \| = \|x\|$$<br />
<br />
We can quickly derive the following properties:<br />
If \(x \cdot y = 0 \Rightarrow Rx \cdot Ry = 0 \).<br />
\( \| Re_i\| = 1 \Rightarrow [R^tR]_{(i,i)} = \pm1 \)<br />
<br />
This means that \(R^tR\) must be a diagonal matrix with \(\pm1\) on the diagonal. Hence its determinant is also \(\pm1\). Restricting it to +1 would make the isometry a proper rotation. If we allow -1, it is not hard to see that it would introduce reflections into R.<br />
<br />
This all make sense. If we "locally rotate" two axes in n-dimensions, which means fix all other n-2 axes, and only rotate the remaining 2 in the ordinary sense, we are actually preserving the sign of the determinant. This means that our intuitive sense of 2-dimensional rotation has been successfully extended to n-dimensions.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-62066300371665990892017-11-13T00:21:00.000-05:002017-12-20T00:53:09.869-05:00Two failed modifications of Paxos: towards a better understanding of the protocolTwo failed attempts at modifying Paxos.<br />
<br />
The Paxos algorithm solves the following problem:<br />
There are n processes. Each process starts with a random value of 0 or 1.<br />
Processed communicate via messages. Messages might be lost or arbitrarily delayed without bound.<br />
At some time in the future, all processes need to decide on one of the two value. There must be a way to find out when the decision has been made and what value it is. Furthermore, to prevent trivial solutions, the decision outcome must be a subset of the starting values. (I.e., if all processes start with 0, they cannot ever decide on 1). Once a decision is reached, it must never change.<br />
<br />
The following algorithm solves it assuming that a majority of servers can communicate with each other. If they cannot, it just means that a decision will not be reached (liveness), there won't be a case where a decision is reached but later changed (safety).<br />
<br />
Each machine keeps a local counter counter and also is assigned a unique server_id offline before everything starts.<br />
Each server tries to make proposals:<br />
1. Send a "prepare-to-propose" message to all machines (or a majority) containing its ballot number which is the pair (counter, server_id). Increase its counter.<br />
2. When it receives reply from a majority, do the following:<br />
<span style="white-space: pre;"> </span>Each reply should contain a (max_ballot_accepted, and accepted_value) but might be null. If everyone in the majority is null, then send propose message containing the ballot (counter, server_id) with any value. However, if not everyone in the majority replied null, then sort by max_ballot_accepted, and propose that particular accepted_value.<br />
<span style="white-space: pre;"> </span><br />
Each server should also listen for prepare-to-propose message and proposals. It should also keep track of (max_ballot_accepted), max_ballot_promised, and accepted_value.<br />
1. Upon receiving prepare-to-propose, if the ballot is smaller than max_ballot_promised, ignore, if it is greater then, update max_ballot_promised and reply with (max_ballot_accepted, and accepted_value).<br />
2. Upon receiving a proposal, check to see if it is greater or equal to max_ballot_promised, if so, accept the proposal and update our state.<br />
<br />
When is consensus reached. Consensus is reached when a majority of acceptors accepted the same ballot. We can find out when that happens if all the processes for example, send out a status update whenever a proposal is accepted. Of course, the status update might be lost and there is no way of knowing whether the message is lost. But we are guaranteed that the consensus value will never change once it is changed (safety).<br />
<br />
Some intuition on why it works:<br />
1. The prepare-to-propose serves as a barrier to ensure that any accepted ballots will be "known" by later ballots.<br />
2. By only proposing the largest ballot from a majority, we ensure that newer proposed values will remain the consensus value if consensus have been reached.<br />
<br />
Once some majority M has accepted a ballot, then any proposer proposing higher ballot numbers must not have sent the "prepare-to-propose" message to this majority until after the acceptance. Otherwise the prepare-to-propose message servers as an obstacle to getting this particular ballot accepted in at least one common member.<br />
Lower ballot numbers also suffer the same issue.<br />
Now, after receiving reply to prepare-to-propose messsages from a majority M', M' has at least one member in common with M. We can do a strong induction on the ballot number. If the current ballot is n, we can assume all proposed ballots between the original accepted ballot and n-1 (inclusive) all propose the same consensus value. The common member between M' and M would have replied a ballot number at least as great as the original accepted ballot number. The proposer must propose the value corresponding to the largest ballot number, hence it must also propose the consensus value.<br />
<br />
To help us understand better, let's ask whether we can modify the protocol in two ways.<br />
1. Instead of sending out a "prepare-to-propose" message which extracts a promise not to accept lower numbers, can we simply query for proposed values instead of asking for a promise. We will block out lower ballots at the acceptance step.<br />
The issue is that ballots with the same number might override the consensus value.<br />
We could reach a state each row represents one process, their accepted ballot and value)<br />
1, v1<br />
1, v1<br />
1, v1<br />
2, v2<br />
null<br />
Consider the following sequence of messages (p1 stands for process one).<br />
p1.PrepareToPropose(ballot 1).SendTo(1, 2, 3)<br />
p2.PrepareToPropose(ballot 2).SendTo(1, 2, 3)<br />
p1.Received.PrepareResponse(null, null, null).Propose(1, v1).SendTo(1, 2, 3)<br />
(p1, p2, p3).Accept(ballot 1, v1)<br />
p2.Received.PrepareResponse(null, null, null).Propose(2, v2).SendTo(4) // messages to other members of the majority are lost<br />
p4.Accept(ballot 2, v2)<br />
<br />
This is happening because p2 does not know that ballot 1 is already in progress.<br />
<br />
2. Is it possible to declare that consensus is reached as soon as a majority has picked the same value? Right now, we require majority to pick the same ballot.<br />
No. After majority picked the same value, the consensus value might not remain the same.<br />
We again describe accepted ballot, accepted number, put also show the internal "promise" counter.<br />
To simplify we only show global state transitions. The user can fill in the messages and lost messages.<br />
<br />
1: v1 (1)<br />
1: v1 (1)<br />
2: v2 (2)<br />
2: v2 (2)<br />
null (2) (proposal is lost, but prepare was received)<br />
<br />
1: v1 (3) // proposal three only reaches the fifth process<br />
1: v1 (3)<br />
2: v2 (2)<br />
2: v2 (2)<br />
3: v1 (3) // here, we are wrong to think that consensus has been reached<br />
<br />
Proposer now prepares and gets response from p1, p2, p3. It will now propose v2.<br />
<br />
4: v2 (4)<br />
4: v2 (4)<br />
4: v2 (4)<br />
2: v2 (2)<br />
3: v1 (3) // consensus value changedJohn622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-10779911930868505932016-09-18T11:39:00.000-05:002016-09-18T11:39:09.159-05:00Reducible state space Markov chainsWhile reviewing a paper last night, I started thinking about reducible state space Markov chains. Most undergraduate probability students are fed theorems about irreducible Markov chains. To summarize these theorems.<br />
<br />
<br />
<ul>
<li>If two states communicate, then they are either both recurrent or both transient.</li>
<li>If a MC is irreducible and all states are positive recurrent, then there exists a unique stationary distribution.</li>
<li>If a MC is irreducible, aperiodic, and has a stationary distribution, then it converges to that.</li>
</ul>
<div>
<br /></div>
<div>
We can ask a set of questions about reducible Markov chains to test our intuition for the subject.</div>
<div>
<ul>
<li>Let's setup a trivial 4 state Markov chain where the first two and last two states form separate communicating classes.</li>
<li>How many stationary distributions exist?</li>
<li>Do limiting distributions exist?</li>
<li>Does the limit distribution depend on the initial distribution? How many possibilities are there?</li>
</ul>
<div>
<br /></div>
</div>
<div>
Let's try to answer them.</div>
<div>
<ul>
<li>There are an infinite number of stationary distributions. If you take the stationary distribution of the first class and the stationary distribution of the second class, then any linear combination (equal to 1) of these two would be a stationary distribution would be a stat. distribution of the full 4-state Markov chain.</li>
<li>Limiting distributions do exist. Let's think about the intuition here. If the total prob. mass on the first two states is m_0 and the rest is 1-m_0, then starting from this initial distribution, each iteration of the chain would "stir" this vector but only stir within their respective classes. So the first two states of this vector would converge to its limit distribution and same with the last two. This means the overall limit distribution would be a mixture of the individual limit distributions weighted by the (m_0, 1-m_0) vector.</li>
</ul>
</div>
John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-63407231091740857002012-12-19T08:25:00.000-05:002012-12-19T08:25:02.572-05:00Course Catalog: Classical CompositionDescription: This is a course on classical music composition that will teach the principles of melody, harmony, and orchestration. However, this course does not teach you to form you musical ideas. That comes from your talent. If you don't have it, you can become an orchestrator. The distinguished alumni of this course usually breaks with the principle we teach them and write great music nevertheless. (Shostakovich, Debussy)<br />
<br />
Course Credit: None<br />
<br />
Pre-Requisites: No technical pre-requisite. However, one should try to live a life of calamity, solitude, and mental instability through the achievement of at least one of the following:<br />
<br />
<br />
<ol>
<li>Unfulfilling / unrequited love for a string of women who are outside of your social class, for example members of the aristocracy or the royals. See Beethoven.</li>
<li>If you are homosexual, the unfortunate need to oppress your orientation due to social pressures of your society. See Tchaikovsky.</li>
<li>Have a high infant mortality rate. See Bach.</li>
<li>Losing of either vision or hearing. (See Beethoven or Rodrigo)</li>
<li>Live under a repressive Communist dictatorship (Shostakovich)</li>
<li>Lastly, having your wife engaging in an affair with one of your best friend. (Schumann)</li>
</ol>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-6525205825996117152012-12-18T11:10:00.003-05:002012-12-18T11:10:36.172-05:00AI-assisted political scienceIn the wake of the Sandy Hook shooting, there has been much debate on the radio about the gun policy in the United States. The gun advocates stress that banning ownership of guns will not take it out the hands of criminals and decrease violent crime. Both sides of the debate totes different statistics in order to support their own side. During the presidential debates, there were numerous occasions where numbers were presented and its truthfulness contested by Obama and Romney. One instance that comes to mind was when the factual accuracy of Romney's tax policy for the middle class was in dispute.<br />
<br />
I think this is one area where information retrieval / data science /weak AI (doesn't mean crappy AI, but just to distinguish it from the well-defined Strong AI term) can really contribute to the public sphere. Imagine a Google or <a href="http://www.wolframalpha.com/">Wolfram Alpha</a> type program that parses the content of a debate and automatically checks for factual accuracy: gun crime rate, economic data, demographics, tax rates, tax codes etc, perhaps via an overlay on the screen. This really would sway public discussions from "what are the facts" vs "what is the right policy". It also prevents cheating and mis-representation of facts.<br />
<br />
To push this idea further, imagine an AI-assisted data retrieval / analytics program for the common masses. To take an example, I wanted to draw a simple correlation graph of gun ownership rates by country vs homicide rate by country. Just to answer this one simple question, I had to manually enter / merge two separate tables found on Wikipedia, and then filter the data for missing entries using MATLAB, and perform a plot. This set of computer skill, in the short future, is beyond the common knowledge of the average citizen, yet they need these types of questions answered concretely in order to vote on the right candidate / policy for this country. How about a more advanced search / analytics that would, given a question in natural language format, e.g. "Has the crime rate in NYC decreased after 1990?", it would automatically retrieve & clean the relevant data and perform the relevant statistical analysis. (Regression, classification, etc.) Currently Google / Bing can answer factual questions, but they are still one step away from answering analytical questions.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-77142524595198005802012-11-25T21:37:00.002-05:002012-11-25T21:37:35.784-05:00Richard Dawkins on the evolutionary basis of moralityI was just watching a Richard Dawkins lecture at Randolph-Macon Women's College on YouTube. He was asked a question about the basis of atheistic morality. Dawkins proposed that our moral sense comes from the fact that our pre-historic ancestors lived mostly with next-of-kins hence 1) altruism will benefit the preservation of similar genes 2) there's a high probability of being in long-term contact with these individuals who can then reciprocate the good will.<br />
I would propose that altruism serves to improve upon another evolutionary survival objective, the preservation of the species. When pre-historic human beings lived in tribes, there was a high risk of destruction from other animals, diseases, and natural elements. Hence at some point, competition to extinguish a rival member of the same species is out-weighed by the risk that the size of the species might fall below a critical threshold and threaten extinction. For example, you don't want to kill Adam for stealing your girlfriend because he and you can work together when the tigers attack tomorrow night.<br />
If we think about tribes and animal social organizations as entire units, then that unit would be evolving to maximize its survival as a whole. If a society randomly generated a moral sense that does not include any altruism in an "attempt" to maximize individual benefits, that group as a whole (and consequently the individual) might have a lower probability of survival because the survival benefits that are derived from the group would be lost (i.e. strength in numbers). In another words, when the survival of the individual is linked to a certain critical mass and critical health of his immediate social organization unit, this species would likely evolve some moral sense due to the pressure of natural selection even though this moral sense, on the surface, appears to be anti-beneficial to the individual upon a first-order examination.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com1tag:blogger.com,1999:blog-2742572203872515500.post-44755452891690733122012-10-09T15:07:00.000-05:002012-10-09T15:07:29.479-05:00Similarity between music performance and muay thaiI'm writing a somewhat satirical comparison between music performance (mainly violin) and muay thai.<br />
<br />
<ol>
<li>In violin, you practice boring etudes and scales in order to improve your fundamentals so you can better play your beautiful pieces. In Muay Thai, you practice boring conditioning, mitt, and heavy bag drills in order to improve your athleticism and technique so you can better hold out in your fights.</li>
<li>In violin, technique alone is not enough. At a high enough level, there's a deep, almost unteachable, element of artistic creativity and musicianship that brings the techniques alive in a coherent work of musical art. In Muay Thai, technique alone is not enough. At the high level, you need a great sense of strategy, movement, and mental determination that is almost unteachable to bring all your techniques together in a work of martial art.</li>
<li>In violin performance, you "practice-perform" your pieces by getting nervous and playing in a Masters class. In Muay Thai, you "practice-fight" by sparring with partners.</li>
<li>Before a violin performance, you become frigging nervous about messing up. Before a Muay Thai bout, you become frigging nervous about losing and getting messed up.</li>
<li>In a Muay Thai fight, if you mess up you might get embarrassed and/or knocked out. In a music performance, if you mess up you might get embarrassed and/or knocked out.</li>
<li>When you're too old to be a travelling musician, you become a teacher in a music school. When you're too old to be fighting professionally, you become a coach in a gym.</li>
<li>If you cannot make a living performing music, you can always teach the instrument. If you cannot make a living fighting Muay Thai, you can always become a coach or personal trainer.</li>
</ol>
John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-34724171514922516232011-04-23T13:23:00.000-05:002017-12-20T00:41:22.775-05:00Practical use for characteristic function & electrical engineering technique in evaluating sines<div>
Yesterday I was thinking about the uniqueness of the heat equation in both the Cauchy setting and the Dirichlet boundary setting. While thinking about this, the mathematics came down to computing the convolution of the heat kernel with the initial condition which is periodic with fundamental domain \([0,L]\).</div>
<div>
After while, I needed to compute the convolution of the heat kernel with a sin function. In probabilistic terms, I need to compute</div>
<div>
$$ E[sin(X)] \; X \sim N(\mu, \sigma) $$</div>
<div>
Brute forcing the expected value is very difficult. Then i realized that we can use the good old characteristic function if we represent \(sin(X)\) as \(\frac{e^{iX}-e^{-iX}}{2i}\)</div>
<div>
If we convolve a sine signal with some kernel, how do we know the output is still a sine signal? Well if the kernel is symmetric (even), that means the Fourier transform will be even. Since sine has a spectrum consisting of two Dirac delta functions at \(+\omega\) and \(-\omega\), then the output of the convolution will be another sine function of a different magnitude.</div>
John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-43441558101323958952010-10-02T18:51:00.000-05:002010-10-02T18:51:11.421-05:00Why a strong grasp of history is important for scientistsThe purpose of the study of history is to learn from the past so we can make better decisions in the future. In a geeky machine learning analogy, it is kind of like processing more "training data" so that we can minimize our prediction error. A scientist should have a pretty strong concept of the history of science including<br />
1. The history of development in this sub-discipline. In machine learning, that translates to early inception of the field in A.I., the problems with the A.I. (search space) technique, entrance of statistics (VC, generalization errors), parallel development in neural science, up till the present day. With this, the researcher can better plan his strategy to maximize success in the long run.<br />
2. Also the broader context of the development of scientific thoughts. Scientific revolution, paradigm shifts in scientific progress.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-10627368823264383012010-10-02T18:37:00.000-05:002010-10-02T18:37:26.214-05:00Similarity between orchestra and basketball teamLast Tuesday I was playing basketball and then went quickly to my weekly university orchestra rehearsal. As much as the two different crowds can be, there are some striking similarity between these two activities.<br />
<br />
On an individual level, each player on a basketball team or in an orchestra must maintain individual technical proficiency. The musician practices his/her instrument by spending hours on scales, etudes, and concert pieces to build better facility and musicianship. The athlete spends hours on drills, to improve shooting,dribbling, defending, endurance. Both require tremendous discipline and dedication. On a side note, both also suffer from performance anxiety (like performing at Carnegie Hall or taking that fateful foul shot when you have 5 seconds left in the game)<br />
<br />
There is also similarity in the team dynamics. In an orchestra, each musician subjugates his/her individual interpretation of the piece and tries to blend with the whole group. Each musician is also given different parts thus different roles. It can be the solo melody, simmering background accompaniment, or a grand tutti. The violinist must pass off the beautiful theme to the woodwinds and play pianissimo trills so that the entire orchestra can make music together. The basketball player need to pass the ball selflessly and sacrifice your own personal glory for team victory.<br />
<br />
On a last note, there is the coach/conductor. Their job is to make sure mend personalities (musicians can have sometimes bigger egos than basketball players) and dictate the team strategy / musical interpretation.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-67396276271058956002010-10-02T18:26:00.000-05:002010-10-02T18:26:11.548-05:00How can PhD in engineering help in music performance?In the fourth year of my PhD now and just writing a blog piece about some of my changing habits in violin playing/practicing after grueling through some serious academic research.<br />
PhD students are trained to research. To find interesting solvable problems in existing knowledge, explore and make some advances. The whole process is very amorphous and self-directed. First, a large amount of time is spent finding a good problem. This is very fortuitous and often happens at a "Eureka" moment. Over time, the PhD student develops the ability to seek out interesting problems that are solvable. This is similar to a musician picking a piece that interests him/her and is within the reach of his/her technical ability.<br />
After finding a problem, you are required to analyze it into smaller projects that can be tackled. It also involves a certain about "diagnostics" in the implementation phase, to figure out what stage of your solution has broken down. A violinist must also analyze his/her target piece. Usually there would be two phases, a technical analysis and a musical analysis. In the technical analysis, one must discover trouble spots and usually design efficient and clever "mini-etudes(studies)" to overcome such difficulty. These difficulties can include<br />
<br />
<ol><li>Left-hand: lack of finger pressure, side of fingers touching nearby strings, lack of finger dexterity (especially on the fourth finger), dreaded intonation (especially on double stops), getting a nice wide vibrato (difficult on double stops)</li>
<li>Right-hand: awkward string crossing, spiccato, upbow staccato, fast whole bow strokes. Overly noticeable bow changes.</li>
</ol><div>After technical analysis, the musician has to think about phrasing, composition background, balance, dynamics etc.</div><div><br />
</div><div>On the whole, my playing is more rigorous and I have gotten better at figuring out how to practice for a difficult piece. (Waxmen Carmen fantasy and Devil's Trill right now)</div>John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-65083020574012050532010-09-27T22:00:00.000-05:002010-09-27T22:00:18.624-05:00沁园春 和 黄河钢琴协奏曲昨天路上在我新买的iPad 读《沁园春》。 太久没读汉语的词了, 所以用iPad 得"Pleco reader"边查字典边读。<br />
虽然沁园春开头是描述“北国风光”和“山舞银蛇“而《黄河》歌颂“黄河船夫” 和“黄河愤” , 但是他们的爱故主义气氛是非常生气勃勃的。 (甚至“保卫黄河”还满杀气勃勃的) 我觉的这两部艺术作品可以互相搭配,妮布。 当然, 《沁园春》二阕离开了自然而走向了政治。<br />
<br />
其实用大河或者其它地里世贸作为爱国主义歌曲主题还很长见。 比如斯美塔那的“伏尔塔瓦河”(从他著《我的祖国》), 科普兰的<span class="Apple-style-span" style="font-family: sans-serif; font-size: 15px; line-height: 22px;">《阿巴拉契亚之春》。 所以我们不要忘记了, 每个国家都有狂热的爱国分子。 但是永远不能让自己国家的利益战胜正义。</span>John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-10693051065446605832010-09-16T09:40:00.002-05:002010-09-21T23:36:24.391-05:00Why I left a lucrative financial engineering career?The film "<a href="http://www.imdb.com/title/tt1645089/">Inside Jobs</a>" by Charles Ferguson sums it up quite well.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com2tag:blogger.com,1999:blog-2742572203872515500.post-1618447178680405982010-09-12T21:23:00.000-05:002010-09-12T21:23:23.013-05:00Piano and Violin learning curveI can't believe it's almost nine months since I started playing the piano (casually). I must make some quick comments comparing the difficulty curve of the violin vs. the piano.<br />
<br />
In terms of tone production and intonation, the violin is magnitudes harder. You need precise motor control for your left hand fingers, refined muscle control of the right arm for proper bow pressure, and also a trained ear for detecting minor deviations in pitch. On the piano, all the notes are laid out and varying finger pressures do not affect the tone that much. This is very good for beginners because a piano student can start playing nice melodies immediately as opposed to waiting for years before producing a nice tone.<br />
<br />
The piano, on the other hand (no pun intended), requires some tricky coordination between the left and right hands. At the advanced level, this can become excruciatingly difficult (Hungarian Rhapsody No. 2). But advanced level violin playing have a slew of dizzying techniques on both hands (left hand pizzacato, quick double stops, spiccato, up-bow staccato). They have comparable difficulty on the upper hand.<br />
<br />
Hence, it is reasonable to conclude that violin has a steeper learning curve.<br />
<br />
<br />
Voila.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-51858527317785371662010-09-07T08:04:00.001-05:002017-12-20T00:45:33.229-05:00Process of innovation from theory to applicationMore often than not, science/engineering academic researchers are disinterested in developments and applications in the industry. This definitely has benefits as it allows researchers the freedom to explore new frontiers without the hindrance of a demand for immediate application. However, experiences and trends in the industry should influence academics whose research are more applied in nature.<br />
I see the process of human technological innovation in four stages.<br />
<br />
1. Very basic research that yields important paradigm shift in the way that humans think (Switch from Aristotlean to Copernican view of the universe, switch from the occult world to reason and rationalism, acceptance of evolution, Godel's incompleteness theorem). I would put breakthrough advances in disciplines like philosophy and mathematics in this category.<br />
2. The paradigm shift lead to the creation of new fundamental knowledge that are not directly applicable. (Physics, chemistry, astronomy, physiology)<br />
3. These discipline in the arts & science lead to more "applied" vocational fields. These vocational fields create basic technologies (for example, electrical engineering created digital circuits and computers, chemistry created biochemistry & pharmacology)<br />
4. Businesses then generate ideas on how these technologies can be used in clever ways. (For example, using the internet to sell books, using new flat-panel display technologies to read books, using new biometrics for homeland security).<br />
<br />
In another word, at the one end of scale is a philosophy/method of thinking that explains theories which explain specific phenomenons that can solve our specific problems. The other end are immediately useful things which are only useful immediately. (Credit this sentence to Olivier Bosquet's blog)<br />
<br />
I think it is important for a researcher to know some of all four stages albeit with different weights. They all feedback on each other and would benefit innovators at each of those four stages. I would place myself at the third stage leaning towards the fourth stage. However, I have to do innovation at stage 2 sometime in order to solve a problem that I'm trying to tackle at stage three. Other times, the problem I'm working on in stage 3 is inspired by an application idea coming from stage 4.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-57530948446530866262010-09-05T23:04:00.000-05:002010-09-05T23:04:25.039-05:00Future of the publishing industryAs I was forced to clean my room today I inevitably thought about the waste & hassle printed books caused. Then I asked the question of what will be the future of printing?<br />
Here is a very good article on the topci<br />
<a href="http://publishing2.com/2007/12/06/the-future-of-print-publishing-and-paid-content/">http://publishing2.com/2007/12/06/the-future-of-print-publishing-and-paid-content/</a>John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-78990194318728026882010-01-23T23:25:00.002-05:002010-01-23T23:33:22.577-05:00Why the courses that we forgot might still be useful?This article is merely speculation. Recently, the popular book "Blink" by Malcolm Gladwell explains that much of the human thought process is subconscious. Although I can only remember few details from that class, perhaps it is still helping me shape my subconscious decisions.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-45593655517845947542009-12-16T13:37:00.001-05:002009-12-16T13:37:49.343-05:00恋爱期间坚决反对同居......(转)你还有过在床上想念(她)他并忍不住电话到天亮的经历吗? <br /><br />你还有过送她回家或者宿舍时的恋恋不舍吗? <br /><br />你还有周末终于到了,你们又可以快乐地共渡一个周末的激动与欣喜吗? <br /><br />你还有在灯下静静思念她(他),并手写一封短信给(她)他的甜蜜吗? <br /><br />你还有看着她(他)突然换了个新发型、买了件新衣服或者体型有了新变化,给你带来的惊喜吗? <br /><br />你还有和朋友逛街,突然想到要给她(他)也买一件东西的冲动吗? <br /><br />没有了,什么都没有了,因为你们同居了。 <br /><br />你们同居了,抬头不见低头见,想念的甜蜜没有了, <br />而吵架、厌烦的情绪却日渐增多了; <br /><br />你们同居了,你不用晚上送她回去,但你却盼星星盼月亮一样盼她离开一晚,这样你可以一个人看看DVD,或者上网打游戏,或者和朋友出去疯狂一晚; <br /><br />你们同居了,周末的快乐也没有了,还有那么多的衣服要洗、房子要打扫,而她也嚷着要去购物,而你除了睡觉,根本就不想动弹; <br /><br />你们同居了,别说写信,就是发个短信你也觉得手指疼,因为要说的话都说得差不多了; <br /><br />你们同居了,她(他)任何变化已经不能引起你的注意了,因为你们对彼此身体的任何一个部位都了解得清清楚楚,甚至包括体毛的数量和颜色; <br /><br />你们同居了,你们都缩小了彼此的生活圈子,陪她购物是你天经地义的事情,而每一次经历,你都可能痛苦厌倦得想死去。 <br /><br />更为可怕的是,你的财务计划突然变得一塌糊涂,你的工作、学习、事业还没有成型,你却发现你已经开始承担一个家了,于是你变得患得患失了; <br />这就是,你们想要的同居生活? <br /><br />古人说的人生四大喜中有两件就是:洞房花烛夜,金榜题名时。可见事业和家庭一直就是联系在一起的。古人还说:成家立业。说明没有一定的基础,婚不是那么好结的。 <br /><br />而你们为了不可抑制的快乐,在没有能力开展婚姻生活的时候,突然把自己陷入了婚后的生活中。短暂的快乐没有了,换来的是生活的琐碎。 <br /><br />即使说,婚姻是爱情的坟墓。但至少进入坟墓之前,还有个隆重的、像摸像样的葬礼,还有一些陪葬品和仪式帮助你去天堂过日子。但同居,却是你们一不留神掉进了一个坟坑,周围的人甚至还不知道,你们就开始了地狱的生活。 <br /><br />而你,还在自欺欺人地自我感觉良好:我还是未婚人士;你已经在承受婚后带来的种种压力和痛苦,你却还是浑然不知,说自己还没有结婚的心态,还没有想好要承受婚姻。 <br /><br />同居,一种糟糕的生活方式:你用未婚的心态去承受婚后的生活。这如同,你本来只是在学开车,却一不留神把车开上了路,并开始了全球历险;你本来只想玩玩过家家,却付出了真实的衣食住行的成本。 <br /><br />你号称未婚,却没有未婚的自由; <br />你号称结婚,却没有婚姻的保证,等有一天分手了,你们甚至都没法为分割财产去打官司。因为你们的关系,是如同赵忠祥老师所说那样——非法述求。 <br />未婚的不快和结婚的不快,这两个本应该矛盾的东西,你却都感受了。 <br />知道了这些年,你一直不快乐了吗?因为你同居了。 <br /><br />如果你没有想好结婚,就不要同居,因为你还是个孩子,你还无力承受生活的压力。 <br /><br />如果你想要感受婚姻的生活,那就付出你的努力,家是一件很重要的事情,你们都玩不起。恋爱,但不要同居John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-67808708493307833462009-12-13T14:41:00.003-05:002010-09-07T08:14:21.488-05:00Duals Duals DualsIs there a connection between all these "duals" in math?<br />
There seem to be two main classes of duals.<br />
One from linear algebra / functional analysis, and one from optimization theory. (Lagrangian/convex duals)<br />
<br />
Well actually there is.<br />
<br />
Recall that dual space of a vector space V is simply the set of all linear functionals of V. To put it another way, dual space is simply all the row vectors if the original space is finite dimensional.<br />
<br />
Dual norm comes up in convex optimization. Dual norm of z is defined as sup_x {<z,x> <z,x>| ||x||<=1}. This is actually the same as the operator norm of the vector z when you think of z as an element of the dual space (row vector). In great generality, we can think of dual norm as INDUCED NORMS ON THE DUAL SPACE.<br />
<br />
This really plays a role in Lp duality. Lp dualtity says that the dual of Lp space is isometric to Lq. Here we are talking about infinite-dimensional spaces. Also the dual norm of an element of the dual space of Lp will be equal to the Lq norm of that linear functional when mapped into Lq. (See any real analysis text)<br />
<br />
What about the dual cone?<br />
You can think about the dual cone as one way of generating a INDUCED CONE IN THE DUAL SPACE. (Again, we think of row vectors as elements in the dual space)<br />
<br />
I don't see the relation between the Fenchel dual (Legendre transform), Lagrangian dual, and the dual space though.</z,x></z,x>John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-80346185417563736152009-12-09T22:43:00.001-05:002009-12-09T22:43:47.577-05:00Syndicated from another blog.<p style="text-indent: 2em; font-family: times new roman; color: rgb(0, 0, 0);"><span style="font-size:100%;"><strong>“男人有 老婆又有情人是男人的本事。请放心,情人不会成为老婆,两个概念不一样。男人的大部分心思还是在你身上,因为你是他老婆,是孩子的妈妈,名正言顺,任何时 候都改变不了。而情人只不是婚姻的一种补充,是成功男人一种精神上的追求和情感上的需要,其实也是挺正常的事情,也不必太认真。”——这是昨天中午我在一 个案宗中看到的,记录着一个成功男人的一段非常有代表性的“经典话语”,这就是他们奉行“家中红旗不倒,外面彩旗飘飘”,今朝有酒今朝醉,自嘲“自己喜新 不厌旧,风流不下流”。 </strong></span></p> <p style="text-indent: 2em; font-family: times new roman; color: rgb(0, 0, 0);"><span style="font-size:100%;"><strong> 俗 话说:“一个巴掌打不响。”不管是成功男人招惹了女人,还是女人勾引了成功男人,都是一种人生不道德的表现,都是一种社会公德的缺失。男人往往想要的是女 人美貌与身体,女性往往想要的是成功男人的金钱与物质;成功男人用下半身思考问题,解决自己的私欲,女人用上半身思考问题,解决自己的私囊;当他们一拍即 合、鱼水之欢的时候,就没有想到自己的老婆孩子(老公儿女)了,他们忘我尽情地只管彼此享乐放荡不羁,不管家人朋友的心受到无比的伤害打击,他们丧失天良 把“婚姻的外衣”即刻抛到九霄云外去了。</strong></span></p> <p style="text-indent: 2em; font-family: times new roman; color: rgb(0, 0, 0);"><span style="font-size:100%;"><strong> 人生 短暂,即使你通过努力拼搏成功了也不要为自己找许多漂亮的借口,而去三番五次的寻找情人当作自己的“标志”。虽然在你的脸上贴上美丽好看的“情人标志”, 但那都啻是你一厢情愿的虚荣心在作怪罢了,人们一定会对你深恶痛绝而讥笑藐视你的,同样你也将会是臭名远洋、遗臭万年的。之所以,你还是做一个洁身自好的 成功男人为好,这样人们就会对你另眼相看而铭记你的忠贞气节,却给以你流芳百世。</strong></span></p> <span style="font-family: times new roman; color: rgb(0, 0, 0);font-size:100%;color:#ffcc00;" ><strong> 现在 和谐的社会需要更多的是老实敦厚、温文尔雅的成功男人,同样也需要更多的是安分守己、贤惠善良的温柔女人。只有男人永远不再做纸醉金迷、拈花惹草的男人, 女人不再做水性扬花、放任自流的女人,那么整个世界将会是更加充满人情味的,而幸福的婚姻家庭就会是永远的牢固不破了。</strong></span>John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0tag:blogger.com,1999:blog-2742572203872515500.post-7132274121474230002009-11-28T19:16:00.002-05:002009-11-28T21:59:42.275-05:00Why it's hard to be a moderateI was playing basketball with a group of Chinese students in the other day. It was great and a lot of fun. We were playing half-court basketball and one end of the court was empty.<br />At the end of one of our match (about 10 people), around six non-Chinese (Lao Wai) students came and asked us whether we wanted to play full court. We got into a debate about playing one full court game vs. playing two half court games. I thought that the opinion among Chinese students might be diverse so I asked everyone to hold their hands up if they want to play full court (which was my preference). The vote didn't pass.<br />After the night ended, a few Chinese students half-jokingly / half-seriously accused me of siding with the foreigners. I merely tried to reach a democratic consensus without holding onto ethnic divisions. If a game of basketball can lead to ethnic hard-liners speaking out, no wonder racial genocide will still occur in the world. Not only that, I feel sympathy for those people who do not let their ideologies and decisions fall into racial groups. Such as the moderate Hutus. They are perceived to be extremists by the opposing group and traitors by their own group.John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com1tag:blogger.com,1999:blog-2742572203872515500.post-5470144097999528372009-11-24T11:31:00.001-05:002009-11-24T11:31:16.646-05:00贝多芬的爱情和他后期音乐<p>今天早上听了几首晚期贝多芬作品 (第九交响乐, 后期弦乐四重奏), 好像能感觉出来音乐历史家议论的贝多芬“永久情人”。 老贝一辈子都没结婚。 在1805-1812 年 (晚年)时期他爱上了一位女士。 学者至今还搞不清楚这位女士的身份, 统称叫她“永久情人”。 可惜好像是单相思, 带给了这伟大的艺术家不可衡量的痛苦。<br />贝多芬第九交响乐前两个乐章很有报复, 激情,起伏, 我觉得是代表了他暗恋和得不到回应的感情。 几乎能体会到他当时的内心矛盾和在痛爱中欲哭无泪的迷失。<br />第九交响乐第三乐章听起来好像是表现了贝的爱情的抒情一面。 丰满的法国圆号现表示了他感情的纯真和伟大。 过几分钟弦乐朗诵着美丽的旋律。 但是不是那种年轻人热恋的感觉, 而是包含着一种成熟感,责任感, 还有付出的精神。 <br /> <br />很快, 第三乐章结束了, 第四乐章开始了。马上对比很明显。 就像从一场甜蜜的梦醒来, 发现了现实是多么残酷。 <br /> <br />还有给我印象很深的是四重奏作品号135, 第三乐章。 (Lento Assai). 整个乐章都标着“pp" (安静的)。 主旋很单薄, 简单, 朴实, 给人一种绝望的感觉。<br /> <br />可见老贝晚年挺惨的。 又失去了听力与失去了情人。<br /> <br />卡拉扬指挥的柏林爱乐 表演 第九交响曲可以在 youtube 上找到。<br /> <br />http://www.youtube.com/watch?v=O2AEaQJuKDY&translated=1</p>John622http://www.blogger.com/profile/07815638174466500930noreply@blogger.com0