Resampling methods are an indispensable tool in modern statistics. They involve repeatedly drawing samples from a training set and refitting a model of interest on each sample in order to obtain additional information about the fitted model. For example, in order to estimate the variability of a linear regression fit, we can repeatedly draw different samples from the training data, fit a linear regression to each new sample, and then examine the extent to which the resulting fits differ. Such an approach may allow us to obtain information that would not be available from fitting the model only once using the original training sample.
Resampling approaches can be computationally expensive, because they involve fitting the same statistical method multiple times using different subsets of the training data. However, due to recent advances in computing power, the computational requirements of resampling methods generally are not prohibitive. In this chapter, we discuss two of the most commonly used resampling methods, cross-validation and the bootstrap. Both methods are important tools in the practical application of many statistical learning procedures. For example, cross-validation can be used to estimate the test error associated with a given statistical learning method in order to evaluate its performance, or to select the appropriate level of flexibility. The process of evaluating a model’s performance is known as model assessment, whereas the process of selecting the proper level of flexibility for a model is known as model selection. The bootstrap is widely used.
The probability distribution function (PDF) is a function \( p(x) \) on the domain which, in the discrete case, gives us the probability or relative frequency with which these values of \( X \) occur:
$$ p(x) = \mathrm{prob}(X=x) $$In the continuous case, the PDF does not directly depict the actual probability. Instead we define the probability for the stochastic variable to assume any value on an infinitesimal interval around \( x \) to be \( p(x)dx \). The continuous function \( p(x) \) then gives us the density of the probability rather than the probability itself. The probability for a stochastic variable to assume any value on a non-infinitesimal interval \( [a,\,b] \) is then just the integral:
$$ \mathrm{prob}(a\leq X\leq b) = \int_a^b p(x)dx $$Qualitatively speaking, a stochastic variable represents the values of numbers chosen as if by chance from some specified PDF so that the selection of a large set of these numbers reproduces this PDF.
A particularly useful class of special expectation values are the moments. The \( n \)-th moment of the PDF \( p \) is defined as follows:
$$ \langle x^n\rangle \equiv \int\! x^n p(x)\,dx $$The zero-th moment \( \langle 1\rangle \) is just the normalization condition of \( p \). The first moment, \( \langle x\rangle \), is called the mean of \( p \) and often denoted by the letter \( \mu \):
$$ \langle x\rangle = \mu \equiv \int\! x p(x)\,dx $$
A special version of the moments is the set of central moments, the n-th central moment defined as:
$$ \langle (x-\langle x \rangle )^n\rangle \equiv \int\! (x-\langle x\rangle)^n p(x)\,dx $$The zero-th and first central moments are both trivial, equal \( 1 \) and \( 0 \), respectively. But the second central moment, known as the variance of \( p \), is of particular interest. For the stochastic variable \( X \), the variance is denoted as \( \sigma^2_X \) or \( \mathrm{var}(X) \):
$$ \begin{align} \sigma^2_X\ \ =\ \ \mathrm{var}(X) & = \langle (x-\langle x\rangle)^2\rangle = \int\! (x-\langle x\rangle)^2 p(x)\,dx \label{_auto1}\\ & = \int\! \left(x^2 - 2 x \langle x\rangle^{2} + \langle x\rangle^2\right)p(x)\,dx \label{_auto2}\\ & = \langle x^2\rangle - 2 \langle x\rangle\langle x\rangle + \langle x\rangle^2 \label{_auto3}\\ & = \langle x^2\rangle - \langle x\rangle^2 \label{_auto4} \end{align} $$The square root of the variance, \( \sigma =\sqrt{\langle (x-\langle x\rangle)^2\rangle} \) is called the standard deviation of \( p \). It is clearly just the RMS (root-mean-square) value of the deviation of the PDF from its mean value, interpreted qualitatively as the spread of \( p \) around its mean.
Another important quantity is the so called covariance, a variant of the above defined variance. Consider again the set \( \{X_i\} \) of \( n \) stochastic variables (not necessarily uncorrelated) with the multivariate PDF \( P(x_1,\dots,x_n) \). The covariance of two of the stochastic variables, \( X_i \) and \( X_j \), is defined as follows:
$$ \begin{align} \mathrm{cov}(X_i,\,X_j) &\equiv \langle (x_i-\langle x_i\rangle)(x_j-\langle x_j\rangle)\rangle \nonumber\\ &= \int\!\cdots\!\int\!(x_i-\langle x_i \rangle)(x_j-\langle x_j \rangle)\, P(x_1,\dots,x_n)\,dx_1\dots dx_n \label{eq:def_covariance} \end{align} $$with
$$ \langle x_i\rangle = \int\!\cdots\!\int\!x_i\,P(x_1,\dots,x_n)\,dx_1\dots dx_n $$
If we consider the above covariance as a matrix \( C_{ij}=\mathrm{cov}(X_i,\,X_j) \), then the diagonal elements are just the familiar variances, \( C_{ii} = \mathrm{cov}(X_i,\,X_i) = \mathrm{var}(X_i) \). It turns out that all the off-diagonal elements are zero if the stochastic variables are uncorrelated. This is easy to show, keeping in mind the linearity of the expectation value. Consider the stochastic variables \( X_i \) and \( X_j \), (\( i\neq j \)):
$$ \begin{align} \mathrm{cov}(X_i,\,X_j) &= \langle(x_i-\langle x_i\rangle)(x_j-\langle x_j\rangle)\rangle \label{_auto5}\\ &=\langle x_i x_j - x_i\langle x_j\rangle - \langle x_i\rangle x_j + \langle x_i\rangle\langle x_j\rangle\rangle \label{_auto6}\\ &=\langle x_i x_j\rangle - \langle x_i\langle x_j\rangle\rangle - \langle \langle x_i\rangle x_j\rangle + \langle \langle x_i\rangle\langle x_j\rangle\rangle \label{_auto7}\\ &=\langle x_i x_j\rangle - \langle x_i\rangle\langle x_j\rangle - \langle x_i\rangle\langle x_j\rangle + \langle x_i\rangle\langle x_j\rangle \label{_auto8}\\ &=\langle x_i x_j\rangle - \langle x_i\rangle\langle x_j\rangle \label{_auto9} \end{align} $$
If \( X_i \) and \( X_j \) are independent, we get \( \langle x_i x_j\rangle =\langle x_i\rangle\langle x_j\rangle \), resulting in \( \mathrm{cov}(X_i, X_j) = 0\ \ (i\neq j) \).
Also useful for us is the covariance of linear combinations of stochastic variables. Let \( \{X_i\} \) and \( \{Y_i\} \) be two sets of stochastic variables. Let also \( \{a_i\} \) and \( \{b_i\} \) be two sets of scalars. Consider the linear combination:
$$ U = \sum_i a_i X_i \qquad V = \sum_j b_j Y_j $$By the linearity of the expectation value
$$ \mathrm{cov}(U, V) = \sum_{i,j}a_i b_j \mathrm{cov}(X_i, Y_j) $$
Now, since the variance is just \( \mathrm{var}(X_i) = \mathrm{cov}(X_i, X_i) \), we get the variance of the linear combination \( U = \sum_i a_i X_i \):
$$ \begin{equation} \mathrm{var}(U) = \sum_{i,j}a_i a_j \mathrm{cov}(X_i, X_j) \label{eq:variance_linear_combination} \end{equation} $$And in the special case when the stochastic variables are uncorrelated, the off-diagonal elements of the covariance are as we know zero, resulting in:
$$ \mathrm{var}(U) = \sum_i a_i^2 \mathrm{cov}(X_i, X_i) = \sum_i a_i^2 \mathrm{var}(X_i) $$ $$ \mathrm{var}(\sum_i a_i X_i) = \sum_i a_i^2 \mathrm{var}(X_i) $$which will become very useful in our study of the error in the mean value of a set of measurements.
 The action of measuring all the elements of a sample we will call a stochastic experiment since, operationally, they are often associated with results of empirical observation of some physical or mathematical phenomena; precisely an experiment. We assume that these values are distributed according to some PDF \( p_X^{\phantom X}(x) \), where \( X \) is just the formal symbol for the stochastic variable whose PDF is \( p_X^{\phantom X}(x) \).
In practical situations a sample is always of finite size. Let that size be \( n \). The expectation value of a sample, the sample mean, is then defined as follows:
$$ \bar{x}_n \equiv \frac{1}{n}\sum_{k=1}^n x_k $$The sample variance is:
$$ \mathrm{var}(x) \equiv \frac{1}{n}\sum_{k=1}^n (x_k - \bar{x}_n)^2 $$its square root being the standard deviation of the sample. The sample covariance is:
$$ \mathrm{cov}(x)\equiv\frac{1}{n}\sum_{kl}(x_k - \bar{x}_n)(x_l - \bar{x}_n) $$
Note that the sample variance is the sample covariance without the cross terms. In a similar manner as the covariance in Eq. \eqref{eq:def_covariance} is a measure of the correlation between two stochastic variables, the above defined sample covariance is a measure of the sequential correlation between succeeding measurements of a sample.
These quantities, being known experimental values, differ significantly from and must not be confused with the similarly named quantities for stochastic variables, mean \( \mu_X \), variance \( \mathrm{var}(X) \) and covariance \( \mathrm{cov}(X,Y) \).
The law of large numbers states that as the size of our sample grows to infinity, the sample mean approaches the true mean \( \mu_X^{\phantom X} \) of the chosen PDF:
$$ \lim_{n\to\infty}\bar{x}_n = \mu_X^{\phantom X} $$The sample mean \( \bar{x}_n \) works therefore as an estimate of the true mean \( \mu_X^{\phantom X} \).
What we need to find out is how good an approximation \( \bar{x}_n \) is to \( \mu_X^{\phantom X} \). In any stochastic measurement, an estimated mean is of no use to us without a measure of its error. A quantity that tells us how well we can reproduce it in another experiment. We are therefore interested in the PDF of the sample mean itself. Its standard deviation will be a measure of the spread of sample means, and we will simply call it the error of the sample mean, or just sample error, and denote it by \( \mathrm{err}_X^{\phantom X} \). In practice, we will only be able to produce an estimate of the sample error since the exact value would require the knowledge of the true PDFs behind, which we usually do not have.
Let us first take a look at what happens to the sample error as the size of the sample grows. In a sample, each of the measurements \( x_i \) can be associated with its own stochastic variable \( X_i \). The stochastic variable \( \overline X_n \) for the sample mean \( \bar{x}_n \) is then just a linear combination, already familiar to us:
$$ \overline X_n = \frac{1}{n}\sum_{i=1}^n X_i $$All the coefficients are just equal \( 1/n \). The PDF of \( \overline X_n \), denoted by \( p_{\overline X_n}(x) \) is the desired PDF of the sample means.
The probability density of obtaining a sample mean \( \bar x_n \) is the product of probabilities of obtaining arbitrary values \( x_1, x_2,\dots,x_n \) with the constraint that the mean of the set \( \{x_i\} \) is \( \bar x_n \):
$$ p_{\overline X_n}(x) = \int p_X^{\phantom X}(x_1)\cdots \int p_X^{\phantom X}(x_n)\ \delta\!\left(x - \frac{x_1+x_2+\dots+x_n}{n}\right)dx_n \cdots dx_1 $$And in particular we are interested in its variance \( \mathrm{var}(\overline X_n) \).
It is generally not possible to express \( p_{\overline X_n}(x) \) in a closed form given an arbitrary PDF \( p_X^{\phantom X} \) and a number \( n \). But for the limit \( n\to\infty \) it is possible to make an approximation. The very important result is called the central limit theorem. It tells us that as \( n \) goes to infinity, \( p_{\overline X_n}(x) \) approaches a Gaussian distribution whose mean and variance equal the true mean and variance, \( \mu_{X}^{\phantom X} \) and \( \sigma_{X}^{2} \), respectively:
$$ \begin{equation} \lim_{n\to\infty} p_{\overline X_n}(x) = \left(\frac{n}{2\pi\mathrm{var}(X)}\right)^{1/2} e^{-\frac{n(x-\bar x_n)^2}{2\mathrm{var}(X)}} \label{eq:central_limit_gaussian} \end{equation} $$
The desired variance \( \mathrm{var}(\overline X_n) \), i.e. the sample error squared \( \mathrm{err}_X^2 \), is given by:
$$ \begin{equation} \mathrm{err}_X^2 = \mathrm{var}(\overline X_n) = \frac{1}{n^2} \sum_{ij} \mathrm{cov}(X_i, X_j) \label{eq:error_exact} \end{equation} $$We see now that in order to calculate the exact error of the sample with the above expression, we would need the true means \( \mu_{X_i}^{\phantom X} \) of the stochastic variables \( X_i \). To calculate these requires that we know the true multivariate PDF of all the \( X_i \). But this PDF is unknown to us, we have only got the measurements of one sample. The best we can do is to let the sample itself be an estimate of the PDF of each of the \( X_i \), estimating all properties of \( X_i \) through the measurements of the sample.
Our estimate of \( \mu_{X_i}^{\phantom X} \) is then the sample mean \( \bar x \) itself, in accordance with the the central limit theorem:
$$ \mu_{X_i}^{\phantom X} = \langle x_i\rangle \approx \frac{1}{n}\sum_{k=1}^n x_k = \bar x $$Using \( \bar x \) in place of \( \mu_{X_i}^{\phantom X} \) we can give an estimate of the covariance in Eq. \eqref{eq:error_exact}
$$ \mathrm{cov}(X_i, X_j) = \langle (x_i-\langle x_i\rangle)(x_j-\langle x_j\rangle)\rangle \approx\langle (x_i - \bar x)(x_j - \bar{x})\rangle, $$resulting in
$$ \frac{1}{n} \sum_{l}^n \left(\frac{1}{n}\sum_{k}^n (x_k -\bar x_n)(x_l - \bar x_n)\right)=\frac{1}{n}\frac{1}{n} \sum_{kl} (x_k -\bar x_n)(x_l - \bar x_n)=\frac{1}{n}\mathrm{cov}(x) $$
By the same procedure we can use the sample variance as an estimate of the variance of any of the stochastic variables \( X_i \)
$$ \mathrm{var}(X_i)=\langle x_i - \langle x_i\rangle\rangle \approx \langle x_i - \bar x_n\rangle\nonumber, $$which is approximated as
$$ \begin{equation} \mathrm{var}(X_i)\approx \frac{1}{n}\sum_{k=1}^n (x_k - \bar x_n)=\mathrm{var}(x) \label{eq:var_estimate_i_think} \end{equation} $$Now we can calculate an estimate of the error \( \mathrm{err}_X^{\phantom X} \) of the sample mean \( \bar x_n \):
$$ \begin{align} \mathrm{err}_X^2 &=\frac{1}{n^2}\sum_{ij} \mathrm{cov}(X_i, X_j) \nonumber \\ &\approx&\frac{1}{n^2}\sum_{ij}\frac{1}{n}\mathrm{cov}(x) =\frac{1}{n^2}n^2\frac{1}{n}\mathrm{cov}(x)\nonumber\\ &=\frac{1}{n}\mathrm{cov}(x) \label{eq:error_estimate} \end{align} $$which is nothing but the sample covariance divided by the number of measurements in the sample.
In the special case that the measurements of the sample are uncorrelated (equivalently the stochastic variables \( X_i \) are uncorrelated) we have that the off-diagonal elements of the covariance are zero. This gives the following estimate of the sample error:
$$ \mathrm{err}_X^2=\frac{1}{n^2}\sum_{ij} \mathrm{cov}(X_i, X_j) = \frac{1}{n^2} \sum_i \mathrm{var}(X_i), $$resulting in
$$ \begin{equation} \mathrm{err}_X^2\approx \frac{1}{n^2} \sum_i \mathrm{var}(x)= \frac{1}{n}\mathrm{var}(x) \label{eq:error_estimate_uncorrel} \end{equation} $$where in the second step we have used Eq. \eqref{eq:var_estimate_i_think}. The error of the sample is then just its standard deviation divided by the square root of the number of measurements the sample contains. This is a very useful formula which is easy to compute. It acts as a first approximation to the error, but in numerical experiments, we cannot overlook the always present correlations.
For computational purposes one usually splits up the estimate of \( \mathrm{err}_X^2 \), given by Eq. \eqref{eq:error_estimate}, into two parts
$$ \mathrm{err}_X^2 = \frac{1}{n}\mathrm{var}(x) + \frac{1}{n}(\mathrm{cov}(x)-\mathrm{var}(x)), $$which equals
$$ \begin{equation} \frac{1}{n^2}\sum_{k=1}^n (x_k - \bar x_n)^2 +\frac{2}{n^2}\sum_{k < l} (x_k - \bar x_n)(x_l - \bar x_n) \label{eq:error_estimate_split_up} \end{equation} $$The first term is the same as the error in the uncorrelated case, Eq. \eqref{eq:error_estimate_uncorrel}. This means that the second term accounts for the error correction due to correlation between the measurements. For uncorrelated measurements this second term is zero.
Computationally the uncorrelated first term is much easier to treat efficiently than the second.
$$ \mathrm{var}(x) = \frac{1}{n}\sum_{k=1}^n (x_k - \bar x_n)^2 = \left(\frac{1}{n}\sum_{k=1}^n x_k^2\right) - \bar x_n^2 $$We just accumulate separately the values \( x^2 \) and \( x \) for every measurement \( x \) we receive. The correlation term, though, has to be calculated at the end of the experiment since we need all the measurements to calculate the cross terms. Therefore, all measurements have to be stored throughout the experiment.
Let us analyze the problem by splitting up the correlation term into partial sums of the form:
$$ f_d = \frac{1}{n-d}\sum_{k=1}^{n-d}(x_k - \bar x_n)(x_{k+d} - \bar x_n) $$The correlation term of the error can now be rewritten in terms of \( f_d \)
$$ \frac{2}{n}\sum_{k < l} (x_k - \bar x_n)(x_l - \bar x_n) = 2\sum_{d=1}^{n-1} f_d $$The value of \( f_d \) reflects the correlation between measurements separated by the distance \( d \) in the sample samples. Notice that for \( d=0 \), \( f \) is just the sample variance, \( \mathrm{var}(x) \). If we divide \( f_d \) by \( \mathrm{var}(x) \), we arrive at the so called autocorrelation function
$$ \kappa_d = \frac{f_d}{\mathrm{var}(x)} $$which gives us a useful measure of pairwise correlations starting always at \( 1 \) for \( d=0 \).
The sample error (see eq. \eqref{eq:error_estimate_split_up}) can now be written in terms of the autocorrelation function:
$$ \begin{align} \mathrm{err}_X^2 &= \frac{1}{n}\mathrm{var}(x)+\frac{2}{n}\cdot\mathrm{var}(x)\sum_{d=1}^{n-1} \frac{f_d}{\mathrm{var}(x)}\nonumber\\ &=& \left(1+2\sum_{d=1}^{n-1}\kappa_d\right)\frac{1}{n}\mathrm{var}(x)\nonumber\\ &=\frac{\tau}{n}\cdot\mathrm{var}(x) \label{eq:error_estimate_corr_time} \end{align} $$and we see that \( \mathrm{err}_X \) can be expressed in terms the uncorrelated sample variance times a correction factor \( \tau \) which accounts for the correlation between measurements. We call this correction factor the autocorrelation time:
$$ \begin{equation} \tau = 1+2\sum_{d=1}^{n-1}\kappa_d \label{eq:autocorrelation_time} \end{equation} $$
For a correlation free experiment, \( \tau \) equals 1. From the point of view of eq. \eqref{eq:error_estimate_corr_time} we can interpret a sequential correlation as an effective reduction of the number of measurements by a factor \( \tau \). The effective number of measurements becomes:
$$ n_\mathrm{eff} = \frac{n}{\tau} $$To neglect the autocorrelation time \( \tau \) will always cause our simple uncorrelated estimate of \( \mathrm{err}_X^2\approx \mathrm{var}(x)/n \) to be less than the true sample error. The estimate of the error will be too good. On the other hand, the calculation of the full autocorrelation time poses an efficiency problem if the set of measurements is very large.
The so-called time-displacement autocorrelation \( \phi(t) \) for a quantity \( \mathbf{M} \) is given by
$$ \phi(t) = \int dt' \left[\mathbf{M}(t')-\langle \mathbf{M} \rangle\right]\left[\mathbf{M}(t'+t)-\langle \mathbf{M} \rangle\right], $$which can be rewritten as
$$ \phi(t) = \int dt' \left[\mathbf{M}(t')\mathbf{M}(t'+t)-\langle \mathbf{M} \rangle^2\right], $$where \( \langle \mathbf{M} \rangle \) is the average value and \( \mathbf{M}(t) \) its instantaneous value. We can discretize this function as follows, where we used our set of computed values \( \mathbf{M}(t) \) for a set of discretized times (our Monte Carlo cycles corresponding to moving all electrons?)
$$ \phi(t) = \frac{1}{t_{\mathrm{max}}-t}\sum_{t'=0}^{t_{\mathrm{max}}-t}\mathbf{M}(t')\mathbf{M}(t'+t) -\frac{1}{t_{\mathrm{max}}-t}\sum_{t'=0}^{t_{\mathrm{max}}-t}\mathbf{M}(t')\times \frac{1}{t_{\mathrm{max}}-t}\sum_{t'=0}^{t_{\mathrm{max}}-t}\mathbf{M}(t'+t). \label{eq:phitf} $$
One should be careful with times close to \( t_{\mathrm{max}} \), the upper limit of the sums becomes small and we end up integrating over a rather small time interval. This means that the statistical error in \( \phi(t) \) due to the random nature of the fluctuations in \( \mathbf{M}(t) \) can become large.
One should therefore choose \( t \ll t_{\mathrm{max}} \).
Note that the variable \( \mathbf{M} \) can be any expectation values of interest.
The time-correlation function gives a measure of the correlation between the various values of the variable at a time \( t' \) and a time \( t'+t \). If we multiply the values of \( \mathbf{M} \) at these two different times, we will get a positive contribution if they are fluctuating in the same direction, or a negative value if they fluctuate in the opposite direction. If we then integrate over time, or use the discretized version of, the time correlation function \( \phi(t) \) should take a non-zero value if the fluctuations are correlated, else it should gradually go to zero. For times a long way apart the different values of \( \mathbf{M} \) are most likely uncorrelated and \( \phi(t) \) should be zero.
We can derive the correlation time by observing that our Metropolis algorithm is based on a random walk in the space of all possible spin configurations. Our probability distribution function \( \mathbf{\hat{w}}(t) \) after a given number of time steps \( t \) could be written as
$$ \mathbf{\hat{w}}(t) = \mathbf{\hat{W}^t\hat{w}}(0), $$with \( \mathbf{\hat{w}}(0) \) the distribution at \( t=0 \) and \( \mathbf{\hat{W}} \) representing the transition probability matrix. We can always expand \( \mathbf{\hat{w}}(0) \) in terms of the right eigenvectors of \( \mathbf{\hat{v}} \) of \( \mathbf{\hat{W}} \) as
$$ \mathbf{\hat{w}}(0) = \sum_i\alpha_i\mathbf{\hat{v}}_i, $$resulting in
$$ \mathbf{\hat{w}}(t) = \mathbf{\hat{W}}^t\mathbf{\hat{w}}(0)=\mathbf{\hat{W}}^t\sum_i\alpha_i\mathbf{\hat{v}}_i= \sum_i\lambda_i^t\alpha_i\mathbf{\hat{v}}_i, $$with \( \lambda_i \) the \( i^{\mathrm{th}} \) eigenvalue corresponding to the eigenvector \( \mathbf{\hat{v}}_i \).
If we assume that \( \lambda_0 \) is the largest eigenvector we see that in the limit \( t\rightarrow \infty \), \( \mathbf{\hat{w}}(t) \) becomes proportional to the corresponding eigenvector \( \mathbf{\hat{v}}_0 \). This is our steady state or final distribution.
We can relate this property to an observable like the mean energy. With the probabilty \( \mathbf{\hat{w}}(t) \) (which in our case is the squared trial wave function) we can write the expectation values as
$$ \langle \mathbf{M}(t) \rangle = \sum_{\mu} \mathbf{\hat{w}}(t)_{\mu}\mathbf{M}_{\mu}, $$or as the scalar of a vector product
$$ \langle \mathbf{M}(t) \rangle = \mathbf{\hat{w}}(t)\mathbf{m}, $$with \( \mathbf{m} \) being the vector whose elements are the values of \( \mathbf{M}_{\mu} \) in its various microstates \( \mu \).
We rewrite this relation as
$$ \langle \mathbf{M}(t) \rangle = \mathbf{\hat{w}}(t)\mathbf{m}=\sum_i\lambda_i^t\alpha_i\mathbf{\hat{v}}_i\mathbf{m}_i. $$If we define \( m_i=\mathbf{\hat{v}}_i\mathbf{m}_i \) as the expectation value of \( \mathbf{M} \) in the \( i^{\mathrm{th}} \) eigenstate we can rewrite the last equation as
$$ \langle \mathbf{M}(t) \rangle = \sum_i\lambda_i^t\alpha_im_i. $$Since we have that in the limit \( t\rightarrow \infty \) the mean value is dominated by the the largest eigenvalue \( \lambda_0 \), we can rewrite the last equation as
$$ \langle \mathbf{M}(t) \rangle = \langle \mathbf{M}(\infty) \rangle+\sum_{i\ne 0}\lambda_i^t\alpha_im_i. $$We define the quantity
$$ \tau_i=-\frac{1}{log\lambda_i}, $$and rewrite the last expectation value as
$$ \langle \mathbf{M}(t) \rangle = \langle \mathbf{M}(\infty) \rangle+\sum_{i\ne 0}\alpha_im_ie^{-t/\tau_i}. \label{eq:finalmeanm} $$
The quantities \( \tau_i \) are the correlation times for the system. They control also the auto-correlation function discussed above. The longest correlation time is obviously given by the second largest eigenvalue \( \tau_1 \), which normally defines the correlation time discussed above. For large times, this is the only correlation time that survives. If higher eigenvalues of the transition matrix are well separated from \( \lambda_1 \) and we simulate long enough, \( \tau_1 \) may well define the correlation time. In other cases we may not be able to extract a reliable result for \( \tau_1 \). Coming back to the time correlation function \( \phi(t) \) we can present a more general definition in terms of the mean magnetizations $ \langle \mathbf{M}(t) \rangle$. Recalling that the mean value is equal to $ \langle \mathbf{M}(\infty) \rangle$ we arrive at the expectation values
$$ \phi(t) =\langle \mathbf{M}(0)-\mathbf{M}(\infty)\rangle \langle \mathbf{M}(t)-\mathbf{M}(\infty)\rangle, $$resulting in
$$ \phi(t) =\sum_{i,j\ne 0}m_i\alpha_im_j\alpha_je^{-t/\tau_i}, $$which is appropriate for all times.
If the correlation function decays exponentially
$$ \phi (t) \sim \exp{(-t/\tau)}$$then the exponential correlation time can be computed as the average
$$ \tau_{\mathrm{exp}} = -\langle \frac{t}{log|\frac{\phi(t)}{\phi(0)}|} \rangle. $$If the decay is exponential, then
$$ \int_0^{\infty} dt \phi(t) = \int_0^{\infty} dt \phi(0)\exp{(-t/\tau)} = \tau \phi(0),$$which suggests another measure of correlation
$$ \tau_{\mathrm{int}} = \sum_k \frac{\phi(k)}{\phi(0)}, $$called the integrated correlation time.
Two famous resampling methods are the independent bootstrap and the jackknife.
The jackknife is a special case of the independent bootstrap. Still, the jackknife was made popular prior to the independent bootstrap. And as the popularity of the independent bootstrap soared, new variants, such as the dependent bootstrap.
The Jackknife and independent bootstrap work for independent, identically distributed random variables. If these conditions are not satisfied, the methods will fail. Yet, it should be said that if the data are independent, identically distributed, and we only want to estimate the variance of \( \overline{X} \) (which often is the case), then there is no need for bootstrapping.
The Jackknife works by making many replicas of the estimator \( \widehat{\theta} \). The jackknife is a resampling method, we explained that this happens by scrambling the data in some way. When using the jackknife, this is done by systematically leaving out one observation from the vector of observed values \( \hat{x} = (x_1,x_2,\cdots,X_n) \). Let \( \hat{x}_i \) denote the vector
$$ \hat{x}_i = (x_1,x_2,\cdots,x_{i-1},x_{i+1},\cdots,x_n), $$which equals the vector \( \hat{x} \) with the exception that observation number \( i \) is left out. Using this notation, define \( \widehat{\theta}_i \) to be the estimator \( \widehat{\theta} \) computed using \( \vec{X}_i \).
To get an estimate for the bias and standard error of \( \widehat{\theta} \), use the following estimators for each component of \( \widehat{\theta} \)
$$ \widehat{\mathrm{Bias}}(\widehat \theta,\theta) = (n-1)\left( - \widehat{\theta} + \frac{1}{n}\sum_{i=1}^{n} \widehat \theta_i \right) \qquad \text{and} \qquad \widehat{\sigma}^2_{\widehat{\theta} } = \frac{n-1}{n}\sum_{i=1}^{n}( \widehat{\theta}_i - \frac{1}{n}\sum_{j=1}^{n}\widehat \theta_j )^2. $$from numpy import *
from numpy.random import randint, randn
from time import time
def jackknife(data, stat):
n = len(data);t = zeros(n); inds = arange(n); t0 = time()
## 'jackknifing' by leaving out an observation for each i
for i in range(n):
t[i] = stat(delete(data,i) )
# analysis
print("Runtime: %g sec" % (time()-t0)); print("Jackknife Statistics :")
print("original bias std. error")
print("%8g %14g %15g" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5))
return t
# Returns mean of data samples
def stat(data):
return mean(data)
mu, sigma = 100, 15
datapoints = 10000
x = mu + sigma*random.randn(datapoints)
# jackknife returns the data sample
t = jackknife(x, stat)
Bootstrapping is a nonparametric approach to statistical inference that substitutes computation for more traditional distributional assumptions and asymptotic results. Bootstrapping offers a number of advantages:
Since \( \widehat{\theta} = \widehat{\theta}(\hat{X}) \) is a function of random variables, \( \widehat{\theta} \) itself must be a random variable. Thus it has a pdf, call this function \( p(\hat{t}) \). The aim of the bootstrap is to estimate \( p(\hat{t}) \) by the relative frequency of \( \widehat{\theta} \). You can think of this as using a histogram in the place of \( p(\hat{t}) \). If the relative frequency closely resembles \( p(\vec{t}) \), then using numerics, it is straight forward to estimate all the interesting parameters of \( p(\hat{t}) \) using point estimators.
In the case that \( \widehat{\theta} \) has more than one component, and the components are independent, we use the same estimator on each component separately. If the probability density function of \( X_i \), \( p(x) \), had been known, then it would have been straight forward to do this by:
By repeated use of (1) and (2), many estimates of \( \widehat{\theta} \) could have been obtained. The idea is to use the relative frequency of \( \widehat{\theta}^* \) (think of a histogram) as an estimate of \( p(\hat{t}) \).
But unless there is enough information available about the process that generated \( X_1,X_2,\cdots,X_n \), \( p(x) \) is in general unknown. Therefore, Efron in 1979 asked the question: What if we replace \( p(x) \) by the relative frequency of the observation \( X_i \); if we draw observations in accordance with the relative frequency of the observations, will we obtain the same result in some asymptotic sense? The answer is yes.
Instead of generating the histogram for the relative frequency of the observation \( X_i \), just draw the values \( (X_1^*,X_2^*,\cdots,X_n^*) \) with replacement from the vector \( \hat{X} \).
The independent bootstrap works like this:
When you are done, you can draw a histogram of the relative frequency of \( \widehat \theta^* \). This is your estimate of the probability distribution \( p(t) \). Using this probability distribution you can estimate any statistics thereof. In principle you never draw the histogram of the relative frequency of \( \widehat{\theta}^* \). Instead you use the estimators corresponding to the statistic of interest. For example, if you are interested in estimating the variance of \( \widehat \theta \), apply the etsimator \( \widehat \sigma^2 \) to the values \( \widehat \theta ^* \).
The following code starts with a Gaussian distribution with mean value \( \mu =100 \) and variance \( \sigma=15 \). We use this to generate the data used in the bootstrap analysis. The bootstrap analysis returns a data set after a given number of bootstrap operations (as many as we have data points). This data set consists of estimated mean values for each bootstrap operation. The histogram generated by the bootstrap method shows that the distribution for these mean values is also a Gaussian, centered around the mean value \( \mu=100 \) but with standard deviation \( \sigma/\sqrt{n} \), where \( n \) is the number of bootstrap samples (in this case the same as the number of original data points). The value of the standard deviation is what we expect from the central limit theorem.
%matplotlib inline
from numpy import *
from numpy.random import randint, randn
from time import time
from scipy.stats import norm
import matplotlib.pyplot as plt
# Returns mean of bootstrap samples
def stat(data):
return mean(data)
# Bootstrap algorithm
def bootstrap(data, statistic, R):
t = zeros(R); n = len(data); inds = arange(n); t0 = time()
# non-parametric bootstrap
for i in range(R):
t[i] = statistic(data[randint(0,n,n)])
# analysis
print("Runtime: %g sec" % (time()-t0)); print("Bootstrap Statistics :")
print("original bias std. error")
print("%8g %8g %14g %15g" % (statistic(data), std(data),\
mean(t), \
std(t)))
return t
mu, sigma = 100, 15
datapoints = 10000
x = mu + sigma*random.randn(datapoints)
# bootstrap returns the data sample t = bootstrap(x, stat, datapoints)
# the histogram of the bootstrapped data
t = bootstrap(x, stat, datapoints)
# the histogram of the bootstrapped data
n, binsboot, patches = plt.hist(t, bins=50, density='true',histtype='bar', color='red', alpha=0.75)
# add a 'best fit' line
y = norm.pdf( binsboot, mean(t), std(t))
lt = plt.plot(binsboot, y, 'r--', linewidth=1)
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.axis([99.5, 100.6, 0, 3.0])
plt.grid(True)
plt.show()
The blocking method was made popular by Flyvbjerg and Pedersen (1989) and has become one of the standard ways to estimate \( V(\widehat{\theta}) \) for exactly one \( \widehat{\theta} \), namely \( \widehat{\theta} = \overline{X} \).
Assume \( n = 2^d \) for some integer \( d>1 \) and \( X_1,X_2,\cdots, X_n \) is a stationary time series to begin with. Moreover, assume that the time series is asymptotically uncorrelated. We switch to vector notation by arranging \( X_1,X_2,\cdots,X_n \) in an \( n \)-tuple. Define:
$$ \begin{align*} \hat{X} = (X_1,X_2,\cdots,X_n). \end{align*} $$The strength of the blocking method is when the number of observations, \( n \) is large. For large \( n \), the complexity of dependent bootstrapping scales poorly, but the blocking method does not, moreover, it becomes more accurate the larger \( n \) is.
We now define blocking transformations. The idea is to take the mean of subsequent pair of elements from \( \vec{X} \) and form a new vector \( \vec{X}_1 \). Continuing in the same way by taking the mean of subsequent pairs of elements of \( \vec{X}_1 \) we obtain \( \vec{X}_2 \), and so on. Define \( \vec{X}_i \) recursively by:
$$ \begin{align} (\vec{X}_0)_k &\equiv (\vec{X})_k \nonumber \\ (\vec{X}_{i+1})_k &\equiv \frac{1}{2}\Big( (\vec{X}_i)_{2k-1} + (\vec{X}_i)_{2k} \Big) \qquad \text{for all} \qquad 1 \leq i \leq d-1 \label{_auto10} \end{align} $$The quantity \( \vec{X}_k \) is subject to \( k \) blocking transformations. We now have \( d \) vectors \( \vec{X}_0, \vec{X}_1,\cdots,\vec X_{d-1} \) containing the subsequent averages of observations. It turns out that if the components of \( \vec{X} \) is a stationary time series, then the components of \( \vec{X}_i \) is a stationary time series for all \( 0 \leq i \leq d-1 \)
We can then compute the autocovariance, the variance, sample mean, and number of observations for each \( i \). Let \( \gamma_i, \sigma_i^2, \overline{X}_i \) denote the autocovariance, variance and average of the elements of \( \vec{X}_i \) and let \( n_i \) be the number of elements of \( \vec{X}_i \). It follows by induction that \( n_i = n/2^i \).
Using the definition of the blocking transformation and the distributive property of the covariance, it is clear that since \( h =|i-j| \) we can define
$$ \begin{align} \gamma_{k+1}(h) &= cov\left( ({X}_{k+1})_{i}, ({X}_{k+1})_{j} \right) \nonumber \\ &= \frac{1}{4}cov\left( ({X}_{k})_{2i-1} + ({X}_{k})_{2i}, ({X}_{k})_{2j-1} + ({X}_{k})_{2j} \right) \nonumber \\ &= \frac{1}{2}\gamma_{k}(2h) + \frac{1}{2}\gamma_k(2h+1) \hspace{0.1cm} \mathrm{h = 0} \label{_auto11}\\ &=\frac{1}{4}\gamma_k(2h-1) + \frac{1}{2}\gamma_k(2h) + \frac{1}{4}\gamma_k(2h+1) \quad \mathrm{else} \label{_auto12} \end{align} $$The quantity \( \hat{X} \) is asymptotic uncorrelated by assumption, \( \hat{X}_k \) is also asymptotic uncorrelated. Let's turn our attention to the variance of the sample mean \( V(\overline{X}) \).
We have
$$ \begin{align} V(\overline{X}_k) = \frac{\sigma_k^2}{n_k} + \underbrace{\frac{2}{n_k} \sum_{h=1}^{n_k-1}\left( 1 - \frac{h}{n_k} \right)\gamma_k(h)}_{\equiv e_k} = \frac{\sigma^2_k}{n_k} + e_k \quad \text{if} \quad \gamma_k(0) = \sigma_k^2. \label{_auto13} \end{align} $$The term \( e_k \) is called the truncation error:
$$ \begin{equation} e_k = \frac{2}{n_k} \sum_{h=1}^{n_k-1}\left( 1 - \frac{h}{n_k} \right)\gamma_k(h). \label{_auto14} \end{equation} $$We can show that \( V(\overline{X}_i) = V(\overline{X}_j) \) for all \( 0 \leq i \leq d-1 \) and \( 0 \leq j \leq d-1 \).
We can then wrap up
$$ \begin{align} n_{j+1} \overline{X}_{j+1} &= \sum_{i=1}^{n_{j+1}} (\hat{X}_{j+1})_i = \frac{1}{2}\sum_{i=1}^{n_{j}/2} (\hat{X}_{j})_{2i-1} + (\hat{X}_{j})_{2i} \nonumber \\ &= \frac{1}{2}\left[ (\hat{X}_j)_1 + (\hat{X}_j)_2 + \cdots + (\hat{X}_j)_{n_j} \right] = \underbrace{\frac{n_j}{2}}_{=n_{j+1}} \overline{X}_j = n_{j+1}\overline{X}_j. \label{_auto15} \end{align} $$By repeated use of this equation we get \( V(\overline{X}_i) = V(\overline{X}_0) = V(\overline{X}) \) for all \( 0 \leq i \leq d-1 \). This has the consequence that
$$ \begin{align} V(\overline{X}) = \frac{\sigma_k^2}{n_k} + e_k \qquad \text{for all} \qquad 0 \leq k \leq d-1. \label{eq:convergence} \end{align} $$Flyvbjerg and Petersen demonstrated that the sequence \( \{e_k\}_{k=0}^{d-1} \) is decreasing, and conjecture that the term \( e_k \) can be made as small as we would like by making \( k \) (and hence \( d \)) sufficiently large. The sequence is decreasing (Master of Science thesis by Marius Jonsson, UiO 2018). It means we can apply blocking transformations until \( e_k \) is sufficiently small, and then estimate \( V(\overline{X}) \) by \( \widehat{\sigma}^2_k/n_k \).
For an elegant solution and proof of the blocking method, see the recent article of Marius Jonsson (former MSc student of the Computational Physics group).


Gateway
BOT
03-Oct-19 10:13 AM
[dscrd-hush] <mrlynch> @dukeleto stop with the lies and twists.. i asked for confirmations and tests to be carried out
too bad you were the only one that had access to this information to break standard security procedures
all this trash talk coming from you is unbecoming
[dscrd-hush] <mrlynch> i'm sorry that following procedures and acting responsibly instead of emotionally is "treating you poorly"
[dscrd-hush] <mrlynch> your personal attacks and false claims that we asked you to do free work is also unbecoming
[dscrd-hush] <mrlynch> if i recall correctly whatever work you did was rewarded and paid for in full, be it original or not
[dscrd-hush] <mrlynch> while we were busting our heads testing and developing a PoC you were busy "raising awareness" (antagonizing) on social media
[dscrd-hush] <dukeleto> @mrlynch you are on the wrong discord to give commands, buddy
[dscrd-hush] <dukeleto> You fucked up.
[dscrd-hush] <dukeleto> Didn't protect your users and tried to shot the messenger who told you early, before the world
[dscrd-hush] <dukeleto> @mrlynch how is that PoC I was helping you with?
[dscrd-hush] <dukeleto> That you begged for help with?
[dscrd-hush] <dukeleto> Is it going well?
[dscrd-hush] <dukeleto> "following procedures and acting responsibly"
[dscrd-hush] <dukeleto> oh, he must be one of those "responsible disclosure" crazy people
[dscrd-hush] <dukeleto> Gosh, glad I told Pirate to remove me from their website
[dscrd-hush] <mrlynch> you were helping me? begged you? don't make post your posts
[dscrd-hush] <dukeleto> lulz
[dscrd-hush] <dukeleto> @mrlynch let's post our private chats with each other
[dscrd-hush] <dukeleto> Like the one where I ask how long you worked in the military and US government?
[dscrd-hush] <dukeleto> @mrlynch don't play these games in Hush Discord.
[dscrd-hush] <dukeleto> I am happy to tell the world I am 80% sure you work for the US Government
[dscrd-hush] <dukeleto> Go ahead and prove me wrong.
[dscrd-hush] <mrlynch> lol
[dscrd-hush] <mrlynch> you're delusional buddy
[dscrd-hush] <mrlynch> you give twisted meanings to words to suit your fantasies
[dscrd-hush] <mrlynch> good luck


Greg Sopa - President
303 Trefoil Street
U.S. Consumer Group Manager at Horizon Hobby
P.J. Trautman - Vice President
606A Sunflower Street
Real Estate Appraiser and Realtor at Champaign County Realtor
Dan Harmon - Treasurer
409 Trefoil Street
Assistant Director Web and Application Development at University of Illinois
Kyle Kirchhoefer - Secretary
201 Sunflower Street
Regional Finance Professional at Campus Crusade for Christ
Brian Kesler - Accountant
22 Parsley Drive
Architect at Architectural Expressions, LLP
MariAnne Schmidt - Accountant
415 Trefoil Street
Office Administrator at FedEx Ground
Tim Yardley - Accountant
809 Bergamot Drive
Associate Director of Technology for the Information Trust Institute at the University of Illinois


Example
This is the default font style.

This is the default font style.

Example
h1 - Headline one
h2 - Headline two
h3 - Headline three
h4 - Headline four
h5 - Headline five
h6 - Headline six

h1 - Headline one

h2 - Headline two

h3 - Headline three

h4 - Headline four

h5 - Headline five

h6 - Headline six

Examples
Default styling
Lorem Ipsum is simply dummy text...
.text-black
Sets text color to
$black
Lorem Ipsum is simply dummy text...
.text-gray
Sets text color to
$gray-1
Lorem Ipsum is simply dummy text...
.text-white
Sets text color to
$white
Lorem Ipsum is simply dummy text...

Lorem Ipsum is simply dummy text...

2.4 #permalink Link colors
Link colors are text colors with project standard hover/active/focus state colors
Examples
Default styling
.link-black
Sets text color, including hover to
$black
.link-gray
Sets text color, including hover to
$gray-1
Lorem Ipsum is simply dummy text...


A paragraph consists of one or more sentences that form a self-contained unit of discourse. The start of a paragraph is indicated by a new line.
Text is easier to understand when it its split up into units of text. For example, a book may have chapters. Chapters can have subheadings. Under each heading there will be one or more paragraphs.


{% extends "base-blank.html" %} {% block content %}
BENTHOZ-2015 has been published as an open data set with the Scientific Data journal of the Nature Publishing Group. Scientific Data is an open-access, peer-reviewed publication for descriptions of scientifically valuable datasets. The data descriptor that documents details and methods used to collect the data can be found here, with instructions for citation (also shown below). BENTHOZ-2015 is comprised of over 400,000 point labels from four Australian research groups mapped to more than 100 classes on the CATAMI classification scheme. The intention is to provide a standard data set for research in robotics, computer vision, and marine science. The data set is released under a creative commons license, with the intention of providing the raw data to researchers to maximise reuse.
BENTHOZ-2015 data from each AUV campaign can be explored visually using the links below. A summary of point scores per image in the standard Squidle format as well as a list of images is also available below. The raw point scores can be downloaded as a csv file on the scientific data page. In order to download the images for the entire data set for offline use, download an image list and use the image downloader tool provided below. Please use Google Chrome when viewing this website. The website is still currently under construction and has only been tested in Google's Chrome browser.
| ENTIRE DATASET | Download: ALL ANNOTATIONS (ZIP) FULL IMAGE LIST | |
| New South Wales 2010 | Download: Annotations Image list | Explore: Dataset |
| New South Wales 2012 | Download: Annotations Image list | Explore: Dataset |
| South East Queensland 2010 | Download: Annotations Image list | Explore: Dataset |
| Tasmania 2008 | Download: Annotations Image list | Explore: Dataset |
| Tasmania 200903 | Download: Annotations Image list | Explore: Dataset |
| Tasmania 200906 | Download: Annotations Image list | Explore: Dataset |
| Western Australia 2011 | Download: Annotations Image list | Explore: Dataset |
| Western Australia 2012 | Download: Annotations Image list | Explore: Dataset |
| Western Australia 2013 | Download: Annotations Image list | Explore: Dataset |
Michael, Bewley, Ariell Friedman, Renata Ferrari, Nicole Hill, Renae Hovey, Neville Barrett, Oscar Pizarro, Will Figueira, Lisa Meyer, Russ Babcock, Lynda Bellchambers, Maria Byrne, Stefan B. Williams, Australian sea-floor survey data, with images and expert annotations, Scientific Data, October 27, 2015, Volume 2, Article 150057, Macmillan Publishers Limited, DOI


Login
Register
Register later
Dashboard
Nearest
Newest
Nearest
Newest
Profile
@adrian
12k
Tickrs
5k
Followers
1k
Following
3k
Likes
@taylorW
2w
@taylorW
2w
@taylorW
2w
Explore
Detail
New Tickr
Title of your Tickr
Description
Image
California
Balloon
Wood
Create Tickr
New Entry
Headline
Text
Options
Post Geolocation
Icon
3D Rotation
Album
Archive
Take Photo
Create Entry


Frequently Asked Questions
RAIDAtech is a technology and software with services (SwS) company that creates innovative, next-generation authentication and anti-counterfeiting solutions. RAIDAtech is organized in the American state of Wyoming, which has been on the forefront of creating an environment friendly to new technologies.
RAIDA is a provisionally patented digital authentication and counterfeit detection solution with an immensely wide variety of potential applications.
RAIDA is an acronym for Redundant Array of Independent Detection Agents. The technology, developed by inventor Sean Worthington, can confirm the authenticity and ownership of any digital file. RAIDA is a post-blockchain process that solves physical integrity problem and prevents double spending. RAIDA can easily identify digital forgeries.
RAIDA is a post-blockchain and quantum-safe alternative to distributed ledger technology (DLT) and can be utilized to execute virtually any current or envisioned DLT function with greater privacy, more efficiency, more speed and at less cost (both financial and environmental).
RAIDA uses a double layered authentication procedure, unlike a distributed ledger. The first layer confirms authenticity using unique 32bit serial numbers. The second layer confirms ownership using a password associated with that serial number. Each time a digital property changes ownership, the password is changed and registered with the RAIDA.
Any digital property can be encoded with these tiny 400bit files. Verifying a digital file's authenticity requires sending tiny files to a network of no less than 25 RAIDA terminals, which spread throughout the world. A confirmation or denial is returned by the RAIDA servers, telling the owner whether they have an original or a counterfeit.
The process takes just milliseconds and can be used for any number of digital properties, such as: legal documents, images, movies, music, data files, etc. By embedding or associating a digital code within, RAIDA can also authenticate physical goods such as handbags, concert tickets, sports memorabilia, pharmaceuticals or wine bottles.
RAIDAtech creates bespoke solutions for each client, not "off-the-shelf" or "one-size-fits-all" products. Your RAIDAtech representative will meet with you to conduct an in-depth assessment of your needs with a consultative approach. They will recommend customized solutions tailored to fit your situation and your budget.
Most technological anti-counterfeiting solutions rely on online/cloud databases or blockchains to reconcile authentication data. These can easily be compromised or hacked. A counterfeiter can steal an authentic code and reproduce that code thousands or millions of times, so that each counterfeit will pass an authentication test.
RAIDA has three-sextillion times (3e+21) stronger security than cryptography. RAIDA simply cannot be hacked. RAIDA codes change every time they are authenticated—there can never be more than one valid authenticated item.
RAIDAtech solutions don't require a data intensive database or blockchain. They don't require huge amounts of electricity, circuitry or processing. RAIDA operates 41,000 times more efficiently than blockchain, making it more affordable for clients and much less harmful to the environment.
RAIDAtech is also faster than similar solutions. Time is money. It is 23,000 times faster than blockchain and capable of at least 160,000 transactions per second. RAIDA grows more efficient as the network grows, while blockchain bogs down and is not scalable.
RAIDA technology can protect physical products and goods in several ways, depending on the need of the client. Some clients want only the end user to be able to authenticate the product, while others want to the ability to verify authenticity at multiple stages in the supply chain.
- Imprinting serial numbers, barcodes or QR codes on/inside a product, label, or packaging to allow easy authentication with a smartphone.
- Implanting an RFID, NFC or Bluetooth chip into a product directly that can be authenticated with a smartphone.
RAIDA codes can easily be embedded in any sort of digital file, including text, photos, videos, or music to protect that file from being copied, altered or counterfeited.
RAIDAtech will provide each client with assistance in implementing solutions, ongoing technical support and continuous account management to ensure client satisfaction.
Use Case: Event Tickets
Each ticket is printed with a bar code and/or QR code readable by a smartphone. The codes can even be hidden under a scratch off! Purchaser can read the code with RAIDAtech App. RAIDA system verifies authenticity and changes the code so that no copies are valid. No need for expensive holograms or special colored inks.
Use Case: Wine/Spirits/Beverages
The label, cap or cork is imprinted with bar code and/or QR code readable by a smartphone. The codes can even be hidden under a scratch off! Purchaser can read the code with RAIDAtech App. RAIDA system verifies authenticity and changes the code so that no copies are valid.
Use Case: Digital Currency
RAIDAtech has developed a portfolio of cross-vertical applications for the utilization of digital currency.
CloudCoin is first cloud-based digital currency, and the first that cannot be hacked, counterfeited or permanently lost. It takes just milliseconds to trade and can be 100 percent anonymous. Each CloudCoin note has embedded serial numbers for authentication. The serial numbers ("passports") are sharded across the RAIDA network of nodes whenever a CloudCoin note is spent or transferred. The RAIDA network then reconstructs the shredded data, thereby re-authenticating it and eliminating the need for public ledgers and other blockchain inefficiencies.
Continuous advances in quantum computing, threaten to completely nullify the centerpiece of distributed ledger (blockchain) technology: asymmetric elliptic curve cryptography.
The Quantum Era is near, if not already upon us, as many experts believe. Quantum computers rely on quantum mechanical phenomena like entanglement and superposition to operate on quantum bits of data (qubits). Traditional bits are binary: they are either ones or they are zeros. Qubits, essentially, can be ones, zeros or both at the same time. A quantum computer is able to process data millions of times faster than a traditional one.
We are, then, already in a post-blockchain environment. The next generation of technology to protect privacy, financial security and intellectual property will be effective only if it is quantum-safe and provides solutions to blockchain's problems with scalability, efficiency, governance and ecological harm.
RAIDAtech possesses the world's only quantum-safe technology that solves these problems and more.
SwS is a next-generation service concept where all deliverables embody the DIFM (do-it-for-me) trend, upgrading "as-a-service" (SaS) to "with-service" for completely supported offerings packaged within applications. SwS results in superior user experiences that can only result from a human touch. SwS enterprises may take longer to scale, but are harder to replicate and have much greater potential for dominant market share.
SwS builds a foundation for ongoing success with each client through partnership, through proactive, regular communications, and through anticipatory support. SwS providers support clients throughout all stages of set-up, installation and implementation to guarantee solutions are employed to their fullest potential. SwS firms work hand-in-hand with clients to define goals and objectives and implement solutions to achieve those goals.
SwS firms utilize extensive product and industry sector expertise to anticipate and prevent problems, rather than troubleshoot problems after the fact. Providers communicate regularly to offer advice and suggestions and to ensure client satisfaction.
Yes, in some circumstances RAIDAtech does license the provisionally-patented RAIDA technology so clients can develop their own solutions using next-generation protocols. Clients generally find that it is more cost-efficient to let RAIDAtech's team of experts build solutions, but some clients have particular proprietary or security concerns requiring in-house development. Speak to your RAIDAtech representative.
Yes, RAIDAtech has begun forming joint ventures with partners to develop solutions jointly under specific circumstances. Speak to your RAIDAtech representative to begin exploring this option.


The SVGLength
interface correspond to the <length> basic data type.
An SVGLength
object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.
| Also implement | None |
|---|---|
| Methods |
|
| Properties |
|
| Constants |
|
| Normative document | SVG 1.1 (2nd Edition) |
<!--?xml version="1.0"?--> <svg height="200" onload="start();" version="1.1" width="200" xmlns="http://www.w3.org/2000/svg"> <script type="text/javascript"><![CDATA[ function start() { var rect = document.getElementById("myRect"); var val = rect.x.baseVal; // read x in pixel and cm units console.log("value: " + val.value + ", valueInSpecifiedUnits: " + val.unitType + ": " + val.valueInSpecifiedUnits + ", valueAsString: " + val.valueAsString); // set x = 20pt and read it out in pixel and pt units val.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PT, 20); console.log("value: " + val.value + ", valueInSpecifiedUnits " + val.unitType + ": " + val.valueInSpecifiedUnits + ", valueAsString: " + val.valueAsString); // convert x = 20pt to inches and read out in pixel and inch units val.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_IN); console.log("value: " + val.value + ", valueInSpecifiedUnits " + val.unitType + ": " + val.valueInSpecifiedUnits + ", valueAsString: " + val.valueAsString); } ]]></script> <rect fill="green" height="1cm" id="myRect" stroke="black" stroke-width="1" width="1cm" x="1cm" y="1cm"/> </svg>
Results on a desktop monitor (pixel units will be dpi dependent):
value: 37.7952766418457, valueInSpecifiedUnits: 6: 1, valueAsString: 1cm value: 26.66666603088379, valueInSpecifiedUnits 9: 20, valueAsString: 20pt value: 26.66666603088379, valueInSpecifiedUnits 8: 0.277777761220932, valueAsString: 0.277778in
| Name | Value | Description |
|---|---|---|
SVG_LENGTHTYPE_UNKNOWN | 0 | The unit type is not one of predefined unit types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type. |
SVG_LENGTHTYPE_ NUMBER
| 1 | No unit type was provided (i.e., a unitless value was specified), which indicates a value in user units. |
SVG_LENGTHTYPE_ PERCENTAGE
| 2 | A percentage value was specified. |
SVG_LENGTHTYPE_ EMS
| 3 | A value was specified using the em units defined in CSS2. |
SVG_LENGTHTYPE_ EXS
| 4 | A value was specified using the ex units defined in CSS2. |
SVG_LENGTHTYPE_ PX
| 5 | A value was specified using the px units defined in CSS2. |
SVG_LENGTHTYPE_ CM
| 6 | A value was specified using the cm units defined in CSS2. |
SVG_LENGTHTYPE_ MM
| 7 | A value was specified using the mm units defined in CSS2. |
SVG_LENGTHTYPE_ IN
| 8 | A value was specified using the in units defined in CSS2. |
SVG_LENGTHTYPE_ PT
| 9 | A value was specified using the pt units defined in CSS2. |
SVG_LENGTHTYPE_ PC
| 10 | A value was specified using the pc units defined in CSS2. |
| Name | Type | Description |
|---|---|---|
unitType | unsigned short | The type of the value as specified by one of the SVG_LENGTHTYPE_* constants defined on this interface. |
value | float | The value as a floating point value, in user units. Setting this attribute will cause Exceptions on setting: a |
valueInSpecifiedUnits | float | The value as a floating point value, in the units expressed by Exceptions on setting: a |
valueAsString | DOMString | The value as a string value, in the units expressed by Exceptions on setting:
|
| Name & Arguments | Return | Description |
|---|---|---|
newValueSpecifiedUnits(in unsigned short unitType, in float valueInSpecifiedUnits) | void | Reset the value as a number with an associated unitType, thereby replacing the values for all of the attributes on the object. Exceptions:
|
convertToSpecifiedUnits(in unsigned short unitType) | void | Preserve the same underlying stored value, but reset the stored unit identifier to the given unitType . Object attributes unitType , valueInSpecifiedUnits and valueAsString might be modified as a result of this method. For example, if the original value were "0.5cm" and the method was invoked to convert to millimeters, then the unitType would be changed to SVG_LENGTHTYPE_MM , valueInSpecifiedUnits would be changed to the numeric value 5 and valueAsString would be changed to "5mm". |
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support | ? | ? | ? | ? | ? |
| Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support | Not supported | ? | ? | ? | ? |
© 2013 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SVGLength


Weather App 2.0
Home
(current)
We're sorry but new-weatherapp doesn't work properly without JavaScript enabled. Please enable it to continue.


Davido’s Latest Album ‘A Good Time’ Sets Record
by Oyindamola Olubajo
Davido‘s newly released album, ‘A Good Time’ has become the first Nigerian effort to reach number one on US pop Itunes chart.
This feat by the album sets record as it also the first to enter into the top 10 US album chart on the same platform.
‘A Good Time’ released in the early hours of Friday, November 22 is Davido’s third studio album coming after ‘Omo Baba Olowo’ and ‘Baddest’.
The album comprises seventeen tracks, including collaborations with Peruzzi, Zlatan, Naira Marley, WurlD, Chris Brown, Yonda, among others.
Prominent music producers on the album include Shizzi, Kiddominant, Speroach Beatz, Tekno, etc.
This news is another indication that Afrobeats music is appreciated in other parts of the world.


Glad you are here!
Renjith Nair. Dad, Son, Husband, Engineer and Procrastinator In Chief. I have had lives in large public and private enterprises. I am passionate about Technology ,Enterprise Tech and IT transformation.
General Kitchen Sink of everything I write
https://blog.renjithnair.net
My Github pages, mostly dev stuff, if at all
https://shrirenjith.github.io


Hiring Hall Retainers and hirelings for old school dungeon crawling, a generator by Ed Allen, v 1.3
Use Hyperborean races and classes for AS&SH?
Characters with a reason to hire on should get a shift in favor of hiring on their reaction rolls.
Stat rolls are straight 3D6, so some classed characters may not meet minima according to particular rules sets.
Equipment is still a work in progress, and will never be a perfect match, since rules sets differ.
If a class is inappropriate for your rules set, or the equipment is wrong, tweak or don't use the character.
The names of people, places and especially organizations get a bit dark and florid, since I used the namer directly
from DunGen where it is designed to name NPCs encountered in a dungeon, more often than not cultists and villains and such.
I'll probably make a milder variant that makes fewer torchbearers from the Blood Drinking Cult of Everlasting Pain* and such.
*I don't think you can quite get that, but it's aimed at that vein.


As part of Sprint 2 (week 2) while studying web develeopment with Dev Academy, I have been tasked with creating this webpage and blog to showcase the skills I've learned using HTML and CSS. In particular, we're to explain a concept we have learned as if we were teaching somebody for the first time. The concepts I've chosen to explain are margin, border and padding, as I feel explaining them will help further my own understanding of them, while putting them to use behind the scenes on this page.
CSS (Cascading Style Sheet) is a language used to determine the design of a HTML webpage and its individual sections, known as 'elements', including their shapes, colours, positioning on the page and more. All elements can be thought of as a 'box', which can be defined using the margin, border, padding and the actual content being displayed. Collectively, they're known as the 'box model', although they can each be used alone and irrespective of each other.
Margins are the outermost part of the box model. They're transparent and used to create space around and between elements. With CSS, you have complete control of margins. You can define the top, right, bottom and left margins based on where you want your element to sit on the page, using units such as px (pixels) or %. In the example below you can see the margin is represented by the dotted line.
A border is a little more self explanatory. It is a border/outline that goes around the content of the element, such as the border around this paragraph. Using CSS, you can specify the border including its colour, width, (using units such as 'px' or specifying 'thin'/'thick' etc.) and style, (for example: Solid, dotted or dashed). You can define each side (top, right, bottom and left) of a border, this is useful if you only want to have a border on one or more sides, or would like to style one or more sides indiviually. See my examples below.
Padding is the CSS property used to create space around an element's content, inside of any defined borders. Generally, the padding is transparent but unlike the margin property, it can be coloured if you wish. With CSS you can specify the padding on each individual side of the element (top, right, bottom and left). This is also achieved by using units such as 'px' (pixels) or %. In my example below, you can see the content box is coloured in green, all of the white spacing around it up to the edge of the border is the padding.


Alaska regulators seek input on garbage collection industry
by The Associated PressANCHORAGE, Alaska (AP) — The Regulatory Commission of Alaska is considering changes to rules governing the state’s trash companies.
The Anchorage Daily News reported Monday that the commission has opened a public comment period on questions related to garbage collection, with comments due by Dec. 5.
The request for input follows a 2018 complaint filed against Alaska Waste by competing trash service BlueArctic.
The complaint says Alaska Waste unfairly lowered rates for prospective BlueArctic customers while leaving rates untouched for others.
Regulators found the complaint groundless. The general manager of BlueArctic declined to comment.
Some Alaska trash companies say deregulation could make it easier for new companies to open, creating competition that could drive down garbage rates.
Others say deregulation could increase the risk of predatory action by larger companies, reducing competition.
___
Information from: Anchorage Daily News, http://www.adn.com
The Associated Press


The binary number system plays a
central role in how information of all kinds is stored on
computers. Understanding binary can lift a lot of the mystery from
computers, because at a fundamental level they’re really just
machines for flipping binary digits on and off.
Play Game


This app contains 4 primary areas.
- A column of controls on the left side of the screen
- A map showing the date the user specifies
- Space for a graph of timeseries information
- Help buttons with links to this help modal, GLDAS data downloads, help videos, source code, and error
reporting
To use this app you should:
- Pick the date range for which you want to see GLDAS data (area 1)
- Change the color scheme and opacity as desired (area 1)
- Use the controls on the bottom left corner of the map to control the map's animation. The animation will
show monthly timesteps of averaged values each month in the date range you chose (area 2)
- Use the controls on the top left corner of the map to place a marker on any point on the map for which
there is data (area 2)
- Look at the chart at the bottom of the screen to view a timeseries of values plotted for the
variable-date-location combo that you chose (area 3)
- Use the options found at the top right corner of the chart box to download the data in the chart (area
3)
- Use the controls on the top right corner of the screen to access help, data, and more (area 4)
By default, the data shown is for all available timesteps (January 1 2000 through the present). Data may
also be shown in 1-year intervals. Performance and loading times will vary based on the time and variable
combination you choose. Charts will take longer to load if you choose All Available Times as a your time
interval.


Time:
Encode bars by:
Population
GDP
Filter by:
Americas
Africa
Asia
Europe
Oceania
Aggregate by:
Continent
Country
Sort by:
Name
Population
GDP


| Top |
WebKitBackForwardList maintains a list of visited pages used to navigate to recent pages. Items are inserted in the list in the order they are visited.
WebKitBackForwardList also maintains the notion of the current item
(which is always at index 0), the preceding item (which is at index -1),
and the following item (which is at index 1).
Methods webkit_web_view_go_back()
and webkit_web_view_go_forward()
move
the current item backward or forward by one. Method
webkit_web_view_go_to_back_forward_list_item()
sets the current item to the
specified item. All other methods returning WebKitBackForwardListItems
do not change the value of the current item, they just return the requested
item or items.
guint
webkit_back_forward_list_get_length (WebKitBackForwardList *back_forward_list
);
WebKitBackForwardListItem *
webkit_back_forward_list_get_current_item
(WebKitBackForwardList *back_forward_list
);
Returns the current item in back_forward_list
.
WebKitBackForwardListItem *
webkit_back_forward_list_get_back_item
(WebKitBackForwardList *back_forward_list
);
Returns the item that precedes the current item.
WebKitBackForwardListItem *
webkit_back_forward_list_get_forward_item
(WebKitBackForwardList *back_forward_list
);
Returns the item that follows the current item.
WebKitBackForwardListItem * webkit_back_forward_list_get_nth_item (WebKitBackForwardList *back_forward_list
,gint index
);
Returns the item at a given index relative to the current item.
the WebKitBackForwardListItem located at the specified index relative to the current item.
[transfer none]
GList *
webkit_back_forward_list_get_back_list
(WebKitBackForwardList *back_forward_list
);
a GList of items preceding the current item.
[element-type WebKit2.BackForwardListItem][transfer container]
GList * webkit_back_forward_list_get_back_list_with_limit (WebKitBackForwardList *back_forward_list
,guint limit
);
a GList of
items preceding the current item limited by limit
.
[element-type WebKit2.BackForwardListItem][transfer container]
GList *
webkit_back_forward_list_get_forward_list
(WebKitBackForwardList *back_forward_list
);
a GList of items following the current item.
[element-type WebKit2.BackForwardListItem][transfer container]
GList * webkit_back_forward_list_get_forward_list_with_limit (WebKitBackForwardList *back_forward_list
,guint limit
);
a GList of
items following the current item limited by limit
.
[element-type WebKit2.BackForwardListItem][transfer container]
“changed”
signalvoid user_function (WebKitBackForwardList *back_forward_list, WebKitBackForwardListItem *item_added, gpointer items_removed, gpointer user_data)
This signal is emitted when back_forward_list
changes. This happens
when the current item is updated, a new item is added or one or more
items are removed. Note that both item_added
and items_removed
can
NULL
when only the current item is updated. Items are only removed
when the list is cleared or the maximum items limit is reached.
back_forward_list |
the WebKitBackForwardList on which the signal was emitted |
|
item_added |
the WebKitBackForwardListItem added or |
[allow-none] |
items_removed |
||
user_data |
user data set when the signal handler was connected. |
Flags: Run Last


Some new JavaScript Project
Enter Your Tomagotchi's name:
Create Tomagotchi
rest
feed
play
Rest =
Feed =
Play =


Tests that adding @import rules into a stylesheet through JavaScript does not crash the inspected page.


module Concurrent::Concern::Obligation
Public Instance Methods
Has the obligation completed processing?
@return [Boolean]
# File lib/concurrent/concern/obligation.rb, line 49 def complete? [:fulfilled, :rejected].include? state end
@example allows Obligation
to be risen
rejected_ivar = Ivar.new.fail raise rejected_ivar
# File lib/concurrent/concern/obligation.rb, line 126 def exception(*args) raise 'obligation is not rejected' unless rejected? reason.exception(*args) end
Has the obligation been fulfilled?
@return [Boolean]
# File lib/concurrent/concern/obligation.rb, line 20 def fulfilled? state == :fulfilled end
Is the obligation still awaiting completion of processing?
@return [Boolean]
# File lib/concurrent/concern/obligation.rb, line 56 def incomplete? ! complete? end
Is obligation completion still pending?
@return [Boolean]
# File lib/concurrent/concern/obligation.rb, line 35 def pending? state == :pending end
If an exception was raised during processing this will return the exception object. Will return `nil` when the state is pending or if the obligation has been successfully fulfilled.
@return [Exception] the exception raised during processing or `nil`
# File lib/concurrent/concern/obligation.rb, line 119 def reason synchronize { @reason } end
Has the obligation been rejected?
@return [Boolean]
# File lib/concurrent/concern/obligation.rb, line 28 def rejected? state == :rejected end
The current state of the obligation.
@return [Symbol] the current state
# File lib/concurrent/concern/obligation.rb, line 110 def state synchronize { @state } end
Is the obligation still unscheduled?
@return [Boolean]
# File lib/concurrent/concern/obligation.rb, line 42 def unscheduled? state == :unscheduled end
The current value of the obligation. Will be `nil` while the state is pending or the operation has been rejected.
@param [Numeric] timeout the maximum time in seconds to wait. @return [Object] see Dereferenceable#deref
# File lib/concurrent/concern/obligation.rb, line 65 def value(timeout = nil) wait timeout deref end
The current value of the obligation. Will be `nil` while the state is pending or the operation has been rejected. Will re-raise any exceptions raised during processing (but will not raise an exception on timeout).
@param [Numeric] timeout the maximum time in seconds to wait. @return [Object] see Dereferenceable#deref
@raise [Exception] raises the reason when rejected
# File lib/concurrent/concern/obligation.rb, line 98 def value!(timeout = nil) wait(timeout) if rejected? raise self else deref end end
Wait until obligation is complete or the timeout has been reached.
@param [Numeric] timeout the maximum time in seconds to wait. @return [Obligation] self
# File lib/concurrent/concern/obligation.rb, line 74 def wait(timeout = nil) event.wait(timeout) if timeout != 0 && incomplete? self end
Wait until obligation is complete or the timeout is reached. Will re-raise any exceptions raised during processing (but will not raise an exception on timeout).
@param [Numeric] timeout the maximum time in seconds to wait. @return [Obligation] self @raise [Exception] raises the reason when rejected
# File lib/concurrent/concern/obligation.rb, line 86 def wait!(timeout = nil) wait(timeout).tap { raise self if rejected? } end
Protected Instance Methods
Atomic compare and set operation State is set to `next_state` only if `current state == expected_current`.
@param [Symbol] next_state @param [Symbol] expected_current
@return [Boolean] true is state is changed, false otherwise
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 174 def compare_and_set_state(next_state, *expected_current) synchronize do if expected_current.include? @state @state = next_state true else false end end end
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 145 def event @event end
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 134 def get_arguments_from(opts = {}) [*opts.fetch(:args, [])] end
Executes the block within mutex if current state is included in expected_states
@return block value if executed, false otherwise
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 190 def if_state(*expected_states) synchronize do raise ArgumentError.new('no block given') unless block_given? if expected_states.include? @state yield else false end end end
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 139 def init_obligation @event = Event.new @value = @reason = nil end
Am I in the current state?
@param [Symbol] expected The state to check against @return [Boolean] true if in the expected state else false
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 210 def ns_check_state?(expected) @state == expected end
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 215 def ns_set_state(value) @state = value end
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 150 def set_state(success, value, reason) if success @value = value @state = :fulfilled else @reason = reason @state = :rejected end end
@!visibility private
# File lib/concurrent/concern/obligation.rb, line 161 def state=(value) synchronize { ns_set_state(value) } end


Cook sausage, ground beef, onion, and garlic over medium heat until well browned. Stir in crushed tomatoes, tomato paste, tomato sauce, and water. Season with sugar, basil, fennel speeds, Italian seasoning, 1 tbsp salt, pepper, parsley. Simmer, covered, for about 1 1/2 hours, stirring occasionally.
Bring a large pot of lightly salted water to a boil. Cook lasagna noodles in boiling water for 8 minutes. Drain noodles and rinse with cold water.
Preheat oven to 375*F
Spread 1 1/2 cups of meat sauce in the bottom of a 9x13 baking dish. Arrange 6 noodles over meat sauce. Spread slices of mozzarella over noodles. Spoon 1 1/2 cups meat sauce over mozzarella and sprinkle with 1/4 cup parmesan cheese. Repeat layers and top with remaining mozzarella and parmesan cheese. Cover with foil making sure the foil does not touch the cheese.
Bake in preheated oven for 25 minutes. Remove foil and bake for an additional 25 minutes. Cool for 15 minutes before eating.
Notes:
The sauce can be used a spaghetti sauce as well. Make it in bulk and freeze it. Should stay for about 4 months.


Next-Generation Genesis G80 Has A Big Secret
This will be unlike any previous Genesis model.
by Jared RosenholtzGenesis has been spotted testing a camouflaged version of its next-generation G80 sedan, which was initially slated to be revealed around now. But Genesis has reportedly been forced to push back the release date as the company finalizes its new 2.5-liter and 3.5-liter turbocharged engines.
As we wait for the conventional gas-engined G80 models to be announced, The Korean Car Blog has spotted another G80 test mule out on the road, but this one is unlike any other Genesis model we've seen before. The test mule in question was spotted at a charging station, prompting KCB to assume it was a new plug-in hybrid model.
Genesis will likely introduce a PHEV variant of the third-generation G80 but it will also be the brand's first fully electric vehicle. The standard G80 should arrive in 2020 with the EV version not expected to be revealed until 2021. Very little is known about the EV powertrain or the PHEV for that matter, but the base 2.5-liter four-cylinder model is expected to produce around 286 to 300 horsepower going out through an eight-speed dual-clutch transmission. The larger 3.5-liter twin-turbo V6 engine should deliver around 400 hp.
On the exterior, we expect the G80 to look like the rendering pictured above with styling cues taken from the GV80 Concept. This will be a new look for the Genesis brand accented by a split-headlight and taillight design and triangular grille. We will first get to see this new look on the refreshed G90 sedan.
Under the skin, the G80 will likely lose weight in the next generation using a lighter platform. We have no guesses on how much power the EV or PEHV drivetrains will produce but the weight reduction should help both variants improve their efficiency. Along with the new G80, Genesis will soon reveal its first SUV model, the GV80, followed by a second, smaller SUV called the GV70.


This large wood workshop hosts a huge range of machinery and hand tools for the cutting, shaping and general fabrication of woods, as well, as metals, plastics, and cardbord.


Select a focus and track your organization's research.
Choose what sections you would like to
get organized in.
My
Demographics
Answer and print the following questions to ensure that your organization understands the community in which you are working. By understanding the demographic, community organizations are better able to serve residents and create effective change.


See: Description
| Interface | Description |
|---|---|
| PGPAlgorithmParameters | |
| PGPKeyFlags |
key flag values for the KeyFlags subpacket.
|
| Class | Description |
|---|---|
| PGPCompressedData |
A PGP compressed data object.
|
| PGPCompressedDataGenerator |
Generator for producing compressed data packets.
|
| PGPEncryptedData |
A PGP encrypted data object.
|
| PGPEncryptedDataGenerator |
Generator for encrypted objects.
|
| PGPEncryptedDataList |
A holder for a list of PGP encryption method packets and the encrypted data associated with them.
|
| PGPKdfParameters | |
| PGPKeyPair |
General class to handle JCA key pairs and convert them into OpenPGP ones.
|
| PGPKeyRing |
Parent class for PGP public and secret key rings.
|
| PGPKeyRingGenerator |
Generator for a PGP master and subkey ring.
|
| PGPLiteralData |
A single literal data packet in a PGP object stream.
|
| PGPLiteralDataGenerator |
Generator for producing literal data packets.
|
| PGPMarker |
a PGP marker packet - in general these should be ignored other than where
the idea is to preserve the original input stream.
|
| PGPObjectFactory |
General class for reading a PGP object stream.
|
| PGPOnePassSignature |
A one pass signature object.
|
| PGPOnePassSignatureList |
Holder for a list of PGPOnePassSignatures
|
| PGPPBEEncryptedData |
A password based encryption object.
|
| PGPPrivateKey |
general class to contain a private key for use with other openPGP
objects.
|
| PGPPublicKey |
general class to handle a PGP public key object.
|
| PGPPublicKeyEncryptedData |
A public key encrypted data object.
|
| PGPPublicKeyRing |
Class to hold a single master public key and its subkeys.
|
| PGPPublicKeyRingCollection |
Often a PGP key ring file is made up of a succession of master/sub-key key rings.
|
| PGPSecretKey |
general class to handle and construct a PGP secret key object.
|
| PGPSecretKeyRing |
Class to hold a single master secret key and its subkeys.
|
| PGPSecretKeyRingCollection |
Often a PGP key ring file is made up of a succession of master/sub-key key rings.
|
| PGPSignature |
A PGP signature object.
|
| PGPSignatureGenerator |
Generator for PGP Signatures.
|
| PGPSignatureList |
A list of PGP signatures - normally in the signature block after literal data.
|
| PGPSignatureSubpacketGenerator |
Generator for signature subpackets.
|
| PGPSignatureSubpacketVector |
Container for a list of signature subpackets.
|
| PGPUserAttributeSubpacketVector |
Container for a list of user attribute subpackets.
|
| PGPUserAttributeSubpacketVectorGenerator | |
| PGPUtil |
PGP utilities.
|
| PGPV3SignatureGenerator |
Generator for old style PGP V3 Signatures.
|
| Exception | Description |
|---|---|
| PGPDataValidationException |
Thrown if the iv at the start of a data stream indicates the wrong key
is being used.
|
| PGPException |
generic exception class for PGP encoding/decoding problems
|
| PGPKeyValidationException |
Thrown if the key checksum is invalid.
|
| PGPRuntimeOperationException |
Note: These are based on the org.bouncycastle.bcpg classes and use a streaming model, so for some objects which have an input stream associated it is necessary to read to the end of the input stream on the object before trying to read another object from the orginal input stream.
A word on key ring files. For the purpose of this package a PGP key ring is a master key and a collection of sub-keys associated with it. These public and secret key rings are handled by the PGPPublicKey ring class and the PGPSecretKeyRing class respectively. In the case where you are trying to read an key file which has multiple key rings in it, use PGPSecretKeyRingCollection for the secret key file and PGPPublicKeyRingCollection for the public key file.


New User registration
First Name:
Last Name:
E-mail:
We'll never share your email with anyone else.
Password:


Varsity Blues (1999) Reviewed by Larry McGillicuddy 1999
*** (of 4) Directed by Brian Robbins Starring James Van Der Beek, Jon Voight, Paul Walker, Amy Smart, Ali Larter, Ron Lester, Scott Caan
There aren't many things that can match the allure of Friday Night High School Football.  Many of them playing for a future, most playing for pride. In small Texas towns like West Canaan, the allure is even greater. The town lives and dies by it's football teams. 1983's All the Right Moves, which instead focused on football in small Pennsylvania steel towns, did a good job of capturing this feeling. Varsity Blues captures this feeling too, but where it fails and All the Right Moves succeeded, is in it's basic human drama.
In the past 30 years, West Canaan head coach Bud Kilmer has won 22 district titles. He plans on doing whatever he can to get that 23rd. Unfortunately, when the teams starting quarterback, a schoolboy legend, goes down with a season ending injury, that title appears to be slipping away. The coach must turn to backup quarterback Jonathan "Mox" Moxon.
Mox doesn't really buy into the sleep, eat, breath football ideals of the town. He's working for a scholarship to Brown university. He's been playing football since he was young, not because he enjoyed it necessarily, but because of the pressure he faced from his father. But when he finally gets his chance to play, things begin to change. Suddenly Mox gets wrapped up in all the hype and glory.
Mox also begins a bitter war with Kilmer, who despite his success, is a mean-spirited sadist. Voight plays this character with snarling, colorful, over the top enthusiasm. Been there, done that. This particular section of the film I did not care for. Kilmer's character is way too one dimensional and the attempt to humanize him comes way too late. The family drama is also poorly played out. Mox's father is as one-dimensional as the coach and his mother is given absolutely nothing to do.
The film also attempts to document the wild behavior of the players, and the extent to which they can get away with anything. It goes way too far over the top here. In one scene, a player steals a cop car and rides around with naked girls in it. In another, the boys go to a strip bar, where they are shocked to discover their sex-ed teacher is a stripper. Neither of these scenes are funny, or beleivable.
Despite all of this, I did enjoy Varsity Blues. Van Der Beek is solid as Mox, able to show his character's admirable traits alongside his flaws, but careful not to overplay either (maybe he should give Voight lessons). Ron Lester has a very good role as Billy Bob, the massively overweight lineman who has been playing football since the pee wee level and wonders if any of it was actually enjoyable. Ali Larter also has a nice role as a cheerleader who comes on to Mox since she has to date the starting quarterback. One scene she finds some very creative use for whip cream in her attempt to win over Mox. Now that WAS funny, if still not beleivable.
Brian Robbins does a surprisingly good job staging the football scenes. Everything is easy to follow. I particularly liked one segment where a breakdown in blocking leads to disaster. I also enjoyed the debate of philosophies (Kilmer's control the clock conservative style versus Mox's five wideout aerial assault ideas). And yes, the film does fall back on the predictable formula of the big game finale. And the final play of the game is set up much earlier in the film, so we know the screenwriters know their Syd Field. These complaints might matter one iota to me if the film wasn't so successful in executing it's formula here. The final game, and the final play, are both very exciting. I guess that's the allure of high school football.
Larry McGillicuddy - The Cinemaniac http://members.xoom.com/lmcgill/movpage.htm
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This documentation relates to Opera's now deprecated .oex Extension API framework for Opera versions <= 12.15 and also provided by our OEX2NEX shim library.
For the latest Opera Extensions API documentation for Opera versions > 12.15 please consult the latest Opera Extensions API documentation online.
ExtensionUIItem
, e.g. a button.BackgroundProcess
.BackgroundProcess
of the extension.An extension's toolbar button can easily be programmed to open a popup window. This popup window displays the contents of an HTML file and is closed by the user clicking again on the toolbar button. There are a few attributes and methods specific to this popup, detailed below. Note: Although messaging can be used to communicate with the background process, you will probably find it easier to use the bgProcess
object.
Add a button to the toolbar. When the button is clicked, popup.html opens in a popup window and sends a message to the extension's background script. When the message is received, a badge appears within the toolbar button.
//
// The background process (e.g. '/background.js').
//
// Set options for the button
var UIItemProperties = {
disabled: false,
title: 'Opera Extension',
icon: 'images/icon_18.png',
popup: {
href: 'popup.html',
width: 500,
height: 400
},
badge: {}
};
// Create the button and add it to the toolbar
var button = opera.contexts.toolbar.createItem(UIItemProperties);
opera.contexts.toolbar.addItem(button);
// Check for incoming messages
opera.extension.onmessage = function(event) {
button.badge.textContent = '+';
};
//
// The popup script (e.g. '/popup.js').
//
window.addEventListener('DOMContentLoaded', function() {
opera.extension.postMessage('Message from popup.');
document.write('Message sent from popup');
}, false);


Variables
PA = Number of parent atoms DP = Number of decay product atoms FR = Fraction of the original remaining N
1/2
= Number of half-lives t
1/2
= Half-life of the parent atom in years