@@include("../../partials/head.html")
|
|
POST | TYPE | CATEGORY | DATE | Author | STATUS | |
|---|---|---|---|---|---|---|---|
|
|
Revolutionize how you build the web... |
Courses | 7 July, 2021 1:42pm |
Reva Yokk |
Draft | ||
|
|
Guide to Static Sites with Gatsby.js |
Marketing | 6 July, 2021 2:42pm |
March Menon |
Draft | ||
|
|
The Modern JavaScript Courses |
Workshop | 5 July, 2021 5:42pm |
Lisa Menon |
Published | ||
|
|
Online WordPress Courses Become .. |
Company | 3 July, 2021 10:42am |
Maria Pinto |
Published | ||
|
|
How to become Java Developer |
Company | 4 July, 2021 12:42pm |
John Deo |
Published | ||
|
|
The Javascript Learning |
Marketing | 3 July, 2021 12:42pm |
Misty Smaln |
Scheduled | ||
|
|
How to become modern Stack Developer |
Company | 3 July, 2021 12:42pm |
March Liso |
Published | ||
|
|
How to become Full Stack Developer |
Workshop | 2 July, 2021 12:42pm |
Sina Ray |
Deleted |
|
|
POST | TYPE | CATEGORY | DATE | Author | STATUS | |
|---|---|---|---|---|---|---|---|
|
|
The Modern JavaScript Courses |
Workshop | 5 July, 2021 5:42pm |
Lisa Menon |
Published | ||
|
|
Online WordPress Courses Become .. |
Company | 3 July, 2021 10:42am |
Maria Pinto |
Published | ||
|
|
How to become Java Developer |
Company | 4 July, 2021 12:42pm |
John Deo |
Published | ||
|
|
How to become modern Stack Developer |
Company | 3 July, 2021 12:42pm |
March Liso |
Published |
|
|
POST | TYPE | CATEGORY | DATE | Author | STATUS | |
|---|---|---|---|---|---|---|---|
|
|
The Javascript Learning |
Marketing | 3 July, 2021 12:42pm |
Misty Smaln |
Scheduled | ||
|
|
Revolutionize how you build the web... |
Company | 3 July, 2021 12:42pm |
Nikala Socha |
Scheduled | ||
|
|
The modern Javascript Course |
Workshop | 3 July, 2021 12:42pm |
Jeny D'Souza |
Scheduled | ||
|
|
Github learning course |
Course | 3 July, 2021 12:42pm |
Samiksha Nitry |
Scheduled |
|
|
POST | TYPE | CATEGORY | DATE | Author | STATUS | |
|---|---|---|---|---|---|---|---|
|
|
Revolutionize how you build the web... |
Courses | 7 July, 2021 1:42pm |
Reva Yokk |
Draft | ||
|
|
Github learning course |
Marketing | 7 July, 2021 1:42pm |
Jone Deo |
Draft | ||
|
|
how you build the website with Gatsby |
Courses | 7 July, 2021 1:42pm |
Dee Lumpa |
Draft | ||
|
|
Become Full Stake Developer |
Courses | 7 July, 2021 1:42pm |
Samara Lily |
Draft |
|
|
POST | TYPE | CATEGORY | DATE | Author | STATUS | |
|---|---|---|---|---|---|---|---|
|
|
How to become Full Stack Developer |
Workshop | 2 July, 2021 12:42pm |
Sina Ray |
Deleted | ||
|
|
How to build website with React |
Course | 2 July, 2021 12:42pm |
Ellonek Lincha |
Deleted | ||
|
|
Learning a basic bootstrap with us |
Course | 2 July, 2021 12:42pm |
Misara Chopay |
Deleted | ||
|
|
Guide to Static Sites with Gatsby.js |
Marketing | 2 July, 2021 12:42pm |
Misara Chopay |
Deleted | ||
|
|
Online WordPress Courses Become .. |
Course | 2 July, 2021 12:42pm |
Zeban Juben |
Deleted |


Pull-based query evaluation
New results are pulled upon request. Fragment pages are only fetched as needed.
SELECT ?p ?c WHERE { ?p a <http://dbpedia.org/ontology/Artist>. ?p <http://dbpedia.org/ontology/birthPlace> ?c. }
Next result


Quick start guide¶
In the following we provide some pointers about which functions and classes to use for different problems related to optimal transport (OT) and machine learning. We refer when we can to concrete examples in the documentation that are also available as notebooks on the POT Github.
This document is not a tutorial on numerical optimal transport. For this we strongly recommend to read the very nice book 15 .
Optimal transport and Wasserstein distance¶
Note
In POT, most functions that solve OT or regularized OT problems have two
versions that return the OT matrix or the value of the optimal solution. For
instance ot.emd
return the OT matrix and ot.emd2
return the
Wassertsein distance. This approach has been implemented in practice for all
solvers that return an OT matrix (even Gromov-Wasserstsein)
Solving optimal transport¶
The optimal transport problem between discrete distributions is often expressed as
where :
\(M\in\mathbb{R}_+^{m\times n}\) is the metric cost matrix defining the cost to move mass from bin \(a_i\) to bin \(b_j\).
\(a\) and \(b\) are histograms on the simplex (positive, sum to 1) that represent the
weights of each samples in the source an target distributions.
Solving the linear program above can be done using the function ot.emd
that will return the optimal transport matrix \(\gamma^*\):
# a,b are 1D histograms (sum to 1 and positive)
# M is the ground cost matrix
T=ot.emd(a,b,M) # exact linear program
The method implemented for solving the OT problem is the network simplex, it is implemented in C from 1. It has a complexity of \(O(n^3)\) but the solver is quite efficient and uses sparsity of the solution.
Hint
Examples of use for ot.emd
are available in :
Computing Wasserstein distance¶
The value of the OT solution is often more of interest than the OT matrix :
It can computed from an already estimated OT matrix with
np.sum(T*M)
or directly with the function ot.emd2
.
# a,b are 1D histograms (sum to 1 and positive)
# M is the ground cost matrix
W=ot.emd2(a,b,M) # Wasserstein distance / EMD value
Note that the well known Wasserstein distance between distributions a and b is defined as
\[ \begin{align}\begin{aligned}W_p(a,b)=(\min_\gamma \sum_{i,j}\gamma_{i,j}\|x_i-y_j\|_p)^\frac{1}{p}\\s.t. \gamma 1 = a; \gamma^T 1= b; \gamma\geq 0\end{aligned}\end{align} \]
This means that if you want to compute the \(W_2\) you need to compute the
square root of ot.emd2
when providing
M=ot.dist(xs,xt)
that use the squared euclidean distance by default. Computing
the \(W_1\) wasserstein distance can be done directly with ot.emd2
when providing M=ot.dist(xs,xt, metric='euclidean')
to use the euclidean
distance.
Special cases¶
Note that the OT problem and the corresponding Wasserstein distance can in some special cases be computed very efficiently.
For instance when the samples are in 1D, then the OT problem can be solved in
\(O(n\log(n))\) by using a simple sorting. In this case we provide the
function ot.emd_1d
and ot.emd2_1d
to return respectively the OT
matrix and value. Note that since the solution is very sparse the sparse
parameter of ot.emd_1d
allows for solving and returning the solution for
very large problems. Note that in order to compute directly the \(W_p\)
Wasserstein distance in 1D we provide the function ot.wasserstein_1d
that
takes p
as a parameter.
Another special case for estimating OT and Monge mapping is between Gaussian
distributions. In this case there exists a close form solution given in Remark
2.29 in 15 and the Monge mapping is an affine function and can be
also computed from the covariances and means of the source and target
distributions. In the case when the finite sample dataset is supposed gaussian, we provide
ot.da.OT_mapping_linear
that returns the parameters for the Monge
mapping.
Regularized Optimal Transport¶
Recent developments have shown the interest of regularized OT both in terms of computational and statistical properties. We address in this section the regularized OT problems that can be expressed as
where :
\(M\in\mathbb{R}_+^{m\times n}\) is the metric cost matrix defining the cost to move mass from bin \(a_i\) to bin \(b_j\).
\(a\) and \(b\) are histograms (positive, sum to 1) that represent the weights of each samples in the source an target distributions.
\(\Omega\) is the regularization term.
We discuss in the following specific algorithms that can be used depending on the regularization term.
Entropic regularized OT¶
This is the most common regularization used for optimal transport. It has been proposed in the ML community by Marco Cuturi in his seminal paper 2. This regularization has the following expression
The use of the regularization term above in the optimization problem has a very
strong impact. First it makes the problem smooth which leads to new optimization
procedures such as the well known Sinkhorn algorithm 2 or L-BFGS (see
ot.smooth
). Next it makes the problem
strictly convex meaning that there will be a unique solution. Finally the
solution of the resulting optimization problem can be expressed as:
where \(u\) and \(v\) are vectors and \(K=\exp(-M/\lambda)\) where the \(\exp\) is taken component-wise. In order to solve the optimization problem, on can use an alternative projection algorithm called Sinkhorn-Knopp that can be very efficient for large values if regularization.
The Sinkhorn-Knopp algorithm is implemented in ot.sinkhorn
and
ot.sinkhorn2
that return respectively the OT matrix and the value of the
linear term. Note that the regularization parameter \(\lambda\) in the
equation above is given to those functions with the parameter reg
.
>>> import ot
>>> a=[.5,.5]
>>> b=[.5,.5]
>>> M=[[0.,1.],[1.,0.]]
>>> ot.sinkhorn(a,b,M,1)
array([[ 0.36552929, 0.13447071],
[ 0.13447071, 0.36552929]])
More details about the algorithms used are given in the following note.
Note
The main function to solve entropic regularized OT is ot.sinkhorn
.
This function is a wrapper and the parameter method
help you select
the actual algorithm used to solve the problem:
method='sinkhorn'
callsot.bregman.sinkhorn_knopp
the classic algorithm 2.method='sinkhorn_stabilized'
callsot.bregman.sinkhorn_stabilized
the log stabilized version of the algorithm 9.method='sinkhorn_epsilon_scaling'
callsot.bregman.sinkhorn_epsilon_scaling
the epsilon scaling version of the algorithm 9.method='greenkhorn'
callsot.bregman.greenkhorn
the greedy sinkhorn verison of the algorithm 22.
In addition to all those variants of sinkhorn, we have another
implementation solving the problem in the smooth dual or semi-dual in
ot.smooth
. This solver uses the scipy.optimize.minimize
function to solve the smooth problem with L-BFGS-B
algorithm. Tu use
this solver, use functions ot.smooth.smooth_ot_dual
or
ot.smooth.smooth_ot_semi_dual
with parameter reg_type='kl'
to
choose entropic/Kullbach Leibler regularization.
Recently 23 introduced the sinkhorn divergence that build from entropic
regularization to compute fast and differentiable geometric divergence between
empirical distributions. Note that we provide a function that compute directly
(with no need to pre compute the M
matrix)
the sinkhorn divergence for empirical distributions in
ot.bregman.empirical_sinkhorn_divergence
. Similarly one can compute the
OT matrix and loss for empirical distributions with respectively
ot.bregman.empirical_sinkhorn
and ot.bregman.empirical_sinkhorn2
.
Finally note that we also provide in ot.stochastic
several implementation
of stochastic solvers for entropic regularized OT 18 19. Those pure Python
implementations are not optimized for speed but provide a roust implementation
of algorithms in 18 19.
Hint
Examples of use for ot.sinkhorn
are available in :
Other regularization¶
While entropic OT is the most common and favored in practice, there exist other
kind of regularization. We provide in POT two specific solvers for other
regularization terms, namely quadratic regularization and group lasso
regularization. But we also provide in ot.optim
two generic solvers that allows solving any
smooth regularization in practice.
Quadratic regularization¶
The first general regularization term we can solve is the quadratic regularization of the form
this regularization term has a similar effect to entropic regularization in
densifying the OT matrix but it keeps some sort of sparsity that is lost with
entropic regularization as soon as \(\lambda>0\) 17. This problem can be
solved with POT using solvers from ot.smooth
, more specifically
functions ot.smooth.smooth_ot_dual
or
ot.smooth.smooth_ot_semi_dual
with parameter reg_type='l2'
to
choose the quadratic regularization.
Hint
Examples of quadratic regularization are available in :
Group Lasso regularization¶
Another regularization that has been used in recent years 5 is the group lasso regularization
where \(\mathcal{G}\) contains non overlapping groups of lines in the OT
matrix. This regularization proposed in 5 will promote sparsity at the group level and for
instance will force target samples to get mass from a small number of groups.
Note that the exact OT solution is already sparse so this regularization does
not make sens if it is not combined with entropic regularization. Depending on
the choice of p
and q
, the problem can be solved with different
approaches. When q=1
and p<1
the problem is non convex but can
be solved using an efficient majoration minimization approach with
ot.sinkhorn_lpl1_mm
. When q=2
and p=1
we recover the
convex group lasso and we provide a solver using generalized conditional
gradient algorithm 7 in function
ot.da.sinkhorn_l1l2_gl
.
Hint
Examples of group Lasso regularization are available in :
auto_examples/plot_otda_classes
auto_examples/plot_otda_d2
Generic solvers¶
Finally we propose in POT generic solvers that can be used to solve any regularization as long as you can provide a function computing the regularization and a function computing its gradient (or sub-gradient).
In order to solve
you can use function ot.optim.cg
that will use a conditional gradient as
proposed in 6 . You need to provide the regularization function as parameter
f
and its gradient as parameter df
. Note that the conditional gradient relies on
iterative solving of a linearization of the problem using the exact
ot.emd
so it can be slow in practice. But, being an interior point
algorithm, it always returns a
transport matrix that does not violates the marginals.
Another generic solver is proposed to solve the problem
where \(\Omega_e\) is the entropic regularization. In this case we use a
generalized conditional gradient 7 implemented in ot.optim.gcg
that
does not linearize the entropic term but
relies on ot.sinkhorn
for its iterations.
Wasserstein Barycenters¶
A Wasserstein barycenter is a distribution that minimize its Wasserstein distance with respect to other distributions 16. It corresponds to minimizing the following problem by searching a distribution \(\mu\) such that
In practice we model a distribution with a finite number of support position:
where \(a\) is an histogram on the simplex and the \(\{x_i\}\) are the position of the support. We can clearly see here that optimizing \(\mu\) can be done by searching for optimal weights \(a\) or optimal support \(\{x_i\}\) (optimizing both is also an option). We provide in POT solvers to estimate a discrete Wasserstein barycenter in both cases.
Barycenters with fixed support¶
When optimizing a barycenter with a fixed support, the optimization problem can be expressed as
where \(b_k\) are also weights in the simplex. In the non-regularized case,
the problem above is a classical linear program. In this case we propose a
solver ot.lp.barycenter
that rely on generic LP solvers. By default the
function uses scipy.optimize.linprog
, but more efficient LP solvers from
cvxopt can be also used by changing parameter solver
. Note that this problem
requires to solve a very large linear program and can be very slow in
practice.
Similarly to the OT problem, OT barycenters can be computed in the regularized
case. When using entropic regularization is used, the problem can be solved with a
generalization of the sinkhorn algorithm based on bregman projections 3. This
algorithm is provided in function ot.bregman.barycenter
also available as
ot.barycenter
. In this case, the algorithm scales better to large
distributions and rely only on matrix multiplications that can be performed in
parallel.
In addition to the speedup brought by regularization, one can also greatly
accelerate the estimation of Wasserstein barycenter when the support has a
separable structure 21. In the case of 2D images for instance one can replace
the matrix vector production in the Bregman projections by convolution
operators. We provide an implementation of this algorithm in function
ot.bregman.convolutional_barycenter2d
.
Hint
Examples of Wasserstein (ot.lp.barycenter
) and regularized Wasserstein
barycenter (ot.bregman.barycenter
) computation are available in :
auto_examples/plot_barycenter_1D
auto_examples/plot_barycenter_lp_vs_entropic
An example of convolutional barycenter
(ot.bregman.convolutional_barycenter2d
) computation
for 2D images is available
in :
auto_examples/plot_convolutional_barycenter
Barycenters with free support¶
Estimating the Wasserstein barycenter with free support but fixed weights corresponds to solving the following optimization problem:
We provide a solver based on 20 in
ot.lp.free_support_barycenter
. This function minimize the problem and
return a locally optimal support \(\{x_i\}\) for uniform or given weights
\(a\).
Hint
An example of the free support barycenter estimation is available in :
auto_examples/plot_free_support_barycenter
Monge mapping and Domain adaptation¶
The original transport problem investigated by Gaspard Monge was seeking for a
mapping function that maps (or transports) between a source and target
distribution but that minimizes the transport loss. The existence and uniqueness of this
optimal mapping is still an open problem in the general case but has been proven
for smooth distributions by Brenier in his eponym theorem. We provide in
ot.da
several solvers for smooth Monge mapping estimation and domain
adaptation from discrete distributions.
Monge Mapping estimation¶
We now discuss several approaches that are implemented in POT to estimate or approximate a Monge mapping from finite distributions.
First note that when the source and target distributions are supposed to be Gaussian
distributions, there exists a close form solution for the mapping and its an
affine function 14 of the form \(T(x)=Ax+b\) . In this case we provide the function
ot.da.OT_mapping_linear
that return the operator \(A\) and vector
\(b\). Note that if the number of samples is too small there is a parameter
reg
that provide a regularization for the covariance matrix estimation.
For a more general mapping estimation we also provide the barycentric mapping
proposed in 6 . It is implemented in the class ot.da.EMDTransport
and
other transport based classes in ot.da
. Those classes are discussed more
in the following but follow an interface similar to sklearn classes. Finally a
method proposed in 8 that estimates a continuous mapping approximating the
barycentric mapping is provided in ot.da.joint_OT_mapping_linear
for
linear mapping and ot.da.joint_OT_mapping_kernel
for non linear mapping.
Hint
An example of the linear Monge mapping estimation is available in :
auto_examples/plot_otda_linear_mapping
Domain adaptation classes¶
The use of OT for domain adaptation (OTDA) has been first proposed in 5 that also introduced the group Lasso regularization. The main idea of OTDA is to estimate a mapping of the samples between source and target distributions which allows to transport labeled source samples onto the target distribution with no labels.
We provide several classes based on ot.da.BaseTransport
that provide
several OT and mapping estimations. The interface of those classes is similar to
classifiers in sklearn toolbox. At initialization, several parameters such as
regularization parameter value can be set. Then one needs to estimate the
mapping with function ot.da.BaseTransport.fit
. Finally one can map the
samples from source to target with ot.da.BaseTransport.transform
and
from target to source with ot.da.BaseTransport.inverse_transform
.
Here is
an example for class ot.da.EMDTransport
:
ot_emd = ot.da.EMDTransport()
ot_emd.fit(Xs=Xs, Xt=Xt)
Mapped_Xs= ot_emd.transform(Xs=Xs)
A list of the provided implementation is given in the following note.
Note
Here is a list of the OT mapping classes inheriting from
ot.da.BaseTransport
ot.da.EMDTransport
: Barycentric mapping with EMD transportot.da.SinkhornTransport
: Barycentric mapping with Sinkhorn transportot.da.SinkhornL1l2Transport
: Barycentric mapping with Sinkhorn + group Lasso regularization 5ot.da.SinkhornLpl1Transport
: Barycentric mapping with Sinkhorn + non convex group Lasso regularization 5ot.da.LinearTransport
: Linear mapping estimation between Gaussians 14ot.da.MappingTransport
: Nonlinear mapping estimation 8
Hint
Example of the use of OTDA classes are available in :
auto_examples/plot_otda_color_images
auto_examples/plot_otda_mapping
auto_examples/plot_otda_mapping_colors_images
auto_examples/plot_otda_semi_supervised
Other applications¶
We discuss in the following several OT related problems and tools that has been proposed in the OT and machine learning community.
Wasserstein Discriminant Analysis¶
Wasserstein Discriminant Analysis 11 is a generalization of Fisher Linear Discriminant Analysis that allows discrimination between classes that are not linearly separable. It consist in finding a linear projector optimizing the following criterion
where \(\#\) is the push-forward operator, \(OT_e\) is the entropic OT
loss and \(\mu_i\) is the
distribution of samples from class \(i\). \(P\) is also constrained to
be in the Stiefel manifold. WDA can be solved in POT using function
ot.dr.wda
. It requires to have installed pymanopt
and
autograd
for manifold optimization and automatic differentiation
respectively. Note that we also provide the Fisher discriminant estimator in
ot.dr.fda
for easy comparison.
Warning
Note that due to the hard dependency on pymanopt
and
autograd
, ot.dr
is not imported by default. If you want to
use it you have to specifically import it with import ot.dr
.
Hint
An example of the use of WDA is available in :
auto_examples/plot_WDA
Unbalanced optimal transport¶
Unbalanced OT is a relaxation of the entropy regularized OT problem where the violation of the constraint on the marginals is added to the objective of the optimization problem. The unbalanced OT metric between two unbalanced histograms a and b is defined as 25 10:
where KL is the Kullback-Leibler divergence. This formulation allows for
computing approximate mapping between distributions that do not have the same
amount of mass. Interestingly the problem can be solved with a generalization of
the Bregman projections algorithm 10. We provide a solver for unbalanced OT
in ot.unbalanced
. Computing the optimal transport
plan or the transport cost is similar to the balanced case. The Sinkhorn-Knopp
algorithm is implemented in ot.sinkhorn_unbalanced
and ot.sinkhorn_unbalanced2
that return respectively the OT matrix and the value of the
linear term.
Note
The main function to solve entropic regularized UOT is ot.sinkhorn_unbalanced
.
This function is a wrapper and the parameter method
helps you select
the actual algorithm used to solve the problem:
method='sinkhorn'
callsot.unbalanced.sinkhorn_knopp_unbalanced
the generalized Sinkhorn algorithm 25 10.method='sinkhorn_stabilized'
callsot.unbalanced.sinkhorn_stabilized_unbalanced
the log stabilized version of the algorithm 10.
Unbalanced Barycenters¶
As with balanced distributions, we can define a barycenter of a set of histograms with different masses as a Fréchet Mean:
\[\min_{\mu} \quad \sum_{k} w_kW_u(\mu,\mu_k)\]
Where \(W_u\) is the unbalanced Wasserstein metric defined above. This problem
can also be solved using generalized version of Sinkhorn’s algorithm and it is
implemented the main function ot.barycenter_unbalanced
.
Note
The main function to compute UOT barycenters is ot.barycenter_unbalanced
.
This function is a wrapper and the parameter method
help you select
the actual algorithm used to solve the problem:
method='sinkhorn'
callsot.unbalanced.barycenter_unbalanced_sinkhorn_unbalanced
the generalized Sinkhorn algorithm 10.method='sinkhorn_stabilized'
callsot.unbalanced.barycenter_unbalanced_stabilized
the log stabilized version of the algorithm 10.
Hint
Examples of the use of ot.barycenter_unbalanced
are available in :
auto_examples/plot_UOT_barycenter_1D
Partial optimal transport¶
Partial OT is a variant of the optimal transport problem when only a fixed amount of mass m is to be transported. The partial OT metric between two histograms a and b is defined as 28:
Interestingly the problem can be casted into a regular OT problem by adding reservoir points
in which the surplus mass is sent 29. We provide a solver for partial OT
in ot.partial
. The exact resolution of the problem is computed in ot.partial.partial_wasserstein
and ot.partial.partial_wasserstein2
that return respectively the OT matrix and the value of the
linear term. The entropic solution of the problem is computed in ot.partial.entropic_partial_wasserstein
(see 3).
The partial Gromov-Wasserstein formulation of the problem
is computed in ot.partial.partial_gromov_wasserstein
and in
ot.partial.entropic_partial_gromov_wasserstein
when considering the entropic
regularization of the problem.
Gromov-Wasserstein¶
Gromov Wasserstein (GW) is a generalization of OT to distributions that do not lie in the same space 13. In this case one cannot compute distance between samples from the two distributions. 13 proposed instead to realign the metric spaces by computing a transport between distance matrices. The Gromow Wasserstein alignement between two distributions can be expressed as the one minimizing:
where :\(C1\) is the distance matrix between samples in the source
distribution and \(C2\) the one between samples in the target,
\(L(C1_{i,k},C2_{j,l})\) is a measure of similarity between
\(C1_{i,k}\) and \(C2_{j,l}\) often chosen as
\(L(C1_{i,k},C2_{j,l})=\|C1_{i,k}-C2_{j,l}\|^2\). The optimization problem
above is a non-convex quadratic program but we provide a solver that finds a
local minimum using conditional gradient in ot.gromov.gromov_wasserstein
.
There also exists an entropic regularized variant of GW that has been proposed in
12 and we provide an implementation of their algorithm in
ot.gromov.entropic_gromov_wasserstein
.
Note that similarly to Wasserstein distance GW allows for the definition of GW barycenters that can be expressed as
where \(Ck\) is the distance matrix between samples in distribution
\(k\). Note that interestingly the barycenter is defined as a symmetric
positive matrix. We provide a block coordinate optimization procedure in
ot.gromov.gromov_barycenters
and
ot.gromov.entropic_gromov_barycenters
for non-regularized and regularized
barycenters respectively.
Finally note that recently a fusion between Wasserstein and GW, coined Fused
Gromov-Wasserstein (FGW) has been proposed
in 24. It allows to compute a similarity between objects that are only partly in
the same space. As such it can be used to measure similarity between labeled
graphs for instance and also provide computable barycenters.
The implementations of FGW and FGW barycenter is provided in functions
ot.gromov.fused_gromov_wasserstein
and ot.gromov.fgw_barycenters
.
Hint
Examples of computation of GW, regularized G and FGW are available in :
auto_examples/plot_gromov
auto_examples/plot_fgw
Examples of GW, regularized GW and FGW barycenters are available in :
auto_examples/plot_gromov_barycenter
auto_examples/plot_barycenter_fgw
GPU acceleration¶
We provide several implementation of our OT solvers in ot.gpu
. Those
implementations use the cupy
toolbox that obviously need to be installed.
Note
Several implementations of POT functions (mainly those relying on linear
algebra) have been implemented in ot.gpu
. Here is a short list on the
main entries:
ot.gpu.dist
: computation of distance matrixot.gpu.sinkhorn
: computation of sinkhornot.gpu.sinkhorn_lpl1_mm
: computation of sinkhorn + group lasso
Note that while the ot.gpu
module has been designed to be compatible with
POT, calling its function with numpy
arrays will incur a large overhead due to
the memory copy of the array on GPU prior to computation and conversion of the
array after computation. To avoid this overhead, we provide functions
ot.gpu.to_gpu
and ot.gpu.to_np
that perform the conversion
explicitly.
Warning
Note that due to the hard dependency on cupy
, ot.gpu
is not
imported by default. If you want to
use it you have to specifically import it with import ot.gpu
.
FAQ¶
How to solve a discrete optimal transport problem ?
The solver for discrete OT is the function
ot.emd
that returns the OT transport matrix. If you want to solve a regularized OT you can useot.sinkhorn
.Here is a simple use case:
# a,b are 1D histograms (sum to 1 and positive) # M is the ground cost matrix T=ot.emd(a,b,M) # exact linear program T_reg=ot.sinkhorn(a,b,M,reg) # entropic regularized OT
More detailed examples can be seen on this example: 2D Optimal transport between empirical distributions
pip install POT fails with error : ImportError: No module named Cython.Build
As discussed shortly in the README file. POT requires to have
numpy
andcython
installed to build. This corner case is not yet handled bypip
and for now you need to install both library prior to installing POT.Note that this problem do not occur when using conda-forge since the packages there are pre-compiled.
See Issue #59 for more details.
Why is Sinkhorn slower than EMD ?
This might come from the choice of the regularization term. The speed of convergence of sinkhorn depends directly on this term 22 and when the regularization gets very small the problem try and approximate the exact OT which leads to slow convergence in addition to numerical problems. In other words, for large regularization sinkhorn will be very fast to converge, for small regularization (when you need an OT matrix close to the true OT), it might be quicker to use the EMD solver.
Also note that the numpy implementation of the sinkhorn can use parallel computation depending on the configuration of your system but very important speedup can be obtained by using a GPU implementation since all operations are matrix/vector products.
Using GPU fails with error: module ‘ot’ has no attribute ‘gpu’
References¶
- 1
Bonneel, N., Van De Panne, M., Paris, S., & Heidrich, W. (2011, December). Displacement nterpolation using Lagrangian mass transport. In ACM Transactions on Graphics (TOG) (Vol. 30, No. 6, p. 158). ACM.
- 2(1,2,3)
Cuturi, M. (2013). Sinkhorn distances: Lightspeed computation of optimal transport. In Advances in Neural Information Processing Systems (pp. 2292-2300).
- 3(1,2)
Benamou, J. D., Carlier, G., Cuturi, M., Nenna, L., & Peyré, G. (2015). Iterative Bregman projections for regularized transportation problems. SIAM Journal on Scientific Computing, 37(2), A1111-A1138.
- 4
S. Nakhostin, N. Courty, R. Flamary, D. Tuia, T. Corpetti, Supervised planetary unmixing with optimal transport, Whorkshop on Hyperspectral Image and Signal Processing : Evolution in Remote Sensing (WHISPERS), 2016.
- 5(1,2,3,4,5)
N. Courty; R. Flamary; D. Tuia; A. Rakotomamonjy, Optimal Transport for Domain Adaptation, in IEEE Transactions on Pattern Analysis and Machine Intelligence , vol.PP, no.99, pp.1-1
- 6(1,2)
Ferradans, S., Papadakis, N., Peyré, G., & Aujol, J. F. (2014). Regularized discrete optimal transport. SIAM Journal on Imaging Sciences, 7(3), 1853-1882.
- 7(1,2)
Rakotomamonjy, A., Flamary, R., & Courty, N. (2015). Generalized conditional gradient: analysis of convergence and applications. arXiv preprint arXiv:1510.06567.
- 8(1,2)
M. Perrot, N. Courty, R. Flamary, A. Habrard (2016), Mapping estimation for discrete optimal transport, Neural Information Processing Systems (NIPS).
- 9(1,2)
Schmitzer, B. (2016). Stabilized Sparse Scaling Algorithms for Entropy Regularized Transport Problems. arXiv preprint arXiv:1610.06519.
- 10(1,2,3,4,5,6)
Chizat, L., Peyré, G., Schmitzer, B., & Vialard, F. X. (2016). Scaling algorithms for unbalanced transport problems. arXiv preprint arXiv:1607.05816.
- 11
Flamary, R., Cuturi, M., Courty, N., & Rakotomamonjy, A. (2016). Wasserstein Discriminant Analysis. arXiv preprint arXiv:1608.08063.
- 12
Gabriel Peyré, Marco Cuturi, and Justin Solomon (2016), Gromov-Wasserstein averaging of kernel and distance matrices International Conference on Machine Learning (ICML).
- 13(1,2)
Mémoli, Facundo (2011). Gromov–Wasserstein distances and the metric approach to object matching. Foundations of computational mathematics 11.4 : 417-487.
- 14(1,2)
Knott, M. and Smith, C. S. (1984). On the optimal mapping of distributions, Journal of Optimization Theory and Applications Vol 43.
- 15(1,2)
Peyré, G., & Cuturi, M. (2018). Computational Optimal Transport .
- 16
Agueh, M., & Carlier, G. (2011). Barycenters in the Wasserstein space. SIAM Journal on Mathematical Analysis, 43(2), 904-924.
- 17
Blondel, M., Seguy, V., & Rolet, A. (2018). Smooth and Sparse Optimal Transport. Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics (AISTATS).
- 18(1,2)
Genevay, A., Cuturi, M., Peyré, G. & Bach, F. (2016) Stochastic Optimization for Large-scale Optimal Transport. Advances in Neural Information Processing Systems (2016).
- 19(1,2)
Seguy, V., Bhushan Damodaran, B., Flamary, R., Courty, N., Rolet, A.& Blondel, M. Large-scale Optimal Transport and Mapping Estimation. International Conference on Learning Representation (2018)
- 20
Cuturi, M. and Doucet, A. (2014) Fast Computation of Wasserstein Barycenters. International Conference in Machine Learning
- 21
Solomon, J., De Goes, F., Peyré, G., Cuturi, M., Butscher, A., Nguyen, A. & Guibas, L. (2015). Convolutional wasserstein distances: Efficient optimal transportation on geometric domains. ACM Transactions on Graphics (TOG), 34(4), 66.
- 22(1,2)
J. Altschuler, J.Weed, P. Rigollet, (2017) Near-linear time approximation algorithms for optimal transport via Sinkhorn iteration, Advances in Neural Information Processing Systems (NIPS) 31
- 23
Aude, G., Peyré, G., Cuturi, M., Learning Generative Models with Sinkhorn Divergences, Proceedings of the Twenty-First International Conference on Artficial Intelligence and Statistics, (AISTATS) 21, 2018
- 24
Vayer, T., Chapel, L., Flamary, R., Tavenard, R. and Courty, N. (2019). Optimal Transport for structured data with application on graphs Proceedings of the 36th International Conference on Machine Learning (ICML).
- 25(1,2)
Frogner C., Zhang C., Mobahi H., Araya-Polo M., Poggio T. : Learning with a Wasserstein Loss, Advances in Neural Information Processing Systems (NIPS) 2015
- 26
Alaya M. Z., Bérar M., Gasso G., Rakotomamonjy A. (2019). Screening Sinkhorn Algorithm for Regularized Optimal Transport <https://papers.nips.cc/paper/9386-screening-sinkhorn-algorithm-for-regularized-optimal-transport>, Advances in Neural Information Processing Systems 33 (NeurIPS).
- 27
Redko I., Courty N., Flamary R., Tuia D. (2019). Optimal Transport for Multi-source Domain Adaptation under Target Shift <http://proceedings.mlr.press/v89/redko19a.html>, Proceedings of the Twenty-Second International Conference on Artificial Intelligence and Statistics (AISTATS) 22, 2019.
- 28
Caffarelli, L. A., McCann, R. J. (2020). Free boundaries in optimal transport and Monge-Ampere obstacle problems <http://www.math.toronto.edu/~mccann/papers/annals2010.pdf>, Annals of mathematics, 673-730.
- 29
Chapel, L., Alaya, M., Gasso, G. (2019). Partial Gromov-Wasserstein with Applications on Positive-Unlabeled Learning <https://arxiv.org/abs/2002.08276>, arXiv preprint arXiv:2002.08276.


Paragraph about the website. This website is about my background, my goals, the projects I have completed, and my blog.
Paragraph about the "About me" page. This page will be about my background and where I hope to be after DBC. Other long term goals and aspirations will also be discussed.
Paragraph about the "Projects" page. The projects that I work on at DBC or on my own time will be featured here. Also, links to my github will be included.
Paragraph about the "Blog" page. This will include seven blog posts about my experience in Phase 0.
Paragraph about the "Contact Info" page. This will include where I live, my email address, and cell phone number.


Résumé
— Hi boys and girls! I love to be at one with nature. Therefore, I travel my whole life. I am like a wandering warrior who gets better and better in martial arts every day, I have no time to rest. Workouts, workouts and more workouts! The only this way!  I'm also a fan of Captain America, Spider-Man and Cyclops. He-he =)
Experience
Recent
-
-
31 years old
Ryu entered the third tournament "Street Fighter lll" to further advance his abilities. He was defeated by Oro. Ryu and Ken later meet in another sparring match, from which Ryu emerges victorious. He then meets Alex and also wins. Somewhere during these games, he defeated Hugo.
-
Back then
-
Early childhood
As a child, Ryu became an orphan and was left without memories of his parents and whether or not they were alive. He was adopted by a man named Goken, who raised Ryu in his secluded dojo and began training Ryu along the path of his martial arts. When Ryu was 23 years old, Goken felt that Ryu was willing to travel the world in order to test and hone his fighting prowess against the best fighters from around the world.
-
24 years old
Ryu is one of the participants in the first "Street Fighter" tournament. After defeating the rivals, Ryu got the right to fight the host of the tournament, Sagat. Sagat nearly defeats Ryu and, thinking he has won, drops his guard to help Ryu rise. Ryu, however, had such a strong desire to win that it allowed him to be gripped by Satsui no Hado, after which he struck Sagata with an almost fatal metsu-shoryuken, eventually not only leaving Sagata unconscious, but also inflicting a large scar on him. penetrating the entire chest. After Sagat came to his senses and called what happened, he vowed to take revenge on Ryu.
-
27 years old
Ryu enters the tournament "Street Fighter ll" to test his abilities and defeats many new fighters. It is unknown how far Ryu went in this tournament.
-
29 years old
Sometime after the second tournament, Ryu entered a new tournament to further improve his skills, as well as meet his longtime friend Ken in a rematch. During his trip, he met Sakura, whom he recommends to train further. Meanwhile, Ryu also meets with former rival Sagat, who reminds him of the promised rematch. During the final fight with Seth, he defeats him at S.I.N. After this battle, the building fell around them, as Ryu used Satsui no Hado on the BLECE machine, a weapon of mass destruction developed by S.I.N. that harnesses energy in the human body; Sakura comes to his aid and they leave the building together, the weapon destroyed. He also learns that Goken actually survived his last fight with Akuma, and they fight in a sparring match in which Goken wins. During the skirmish, Goken isolates the remnants of Satsui no Hado within Ryu, causing Akuma's dream of Ryu's combat strength in this aspect to be shattered.
Languages
Skills
Character
Likes😃
Dislikes😞
Wants🥺
Education
-
Every day
-
Early childhoodMartial arts at Secluded Dojo Gouken


TEAM
Julia Kloiber
Project Lead
Fiona Krakenbürger
Community Director
Eileen Wagner
Content Manager
Elisa Lindinger
Project Lead


Name
Band
Date of Birth
Age
Photo
Thom Yorke
Radiohead
October 7, 1968
43
Justin Vernon
Bon Iver
April 30, 1981
30
Paul McCartney
The Beatles
June 18, 1942
69
Sam Beam
Iron & Wine
July 26, 1974
37


| DOSE: T+ 0:00 |
125 mg |
oral |
Pharms - Propoxyphene |
(pill / tablet) |
| T+ 2:10 |
1 hit |
smoked |
Cannabis |
(dried) |
12:50AM
-------
OK, so its actually the 18th now. So what. I haven't gone to sleep
yet, so its the 17th as far as I'm concerned. Anyway...
I have 2.5 tablets of Propacet, each containing 50mg of
dextropropoxyphene. They're the last of a batch of 8 of them that I was
given. I ingest all of them. I had smoked a little cannabis earlier, still
feel a lingering effect, but am close to baseline.
1:09AM
------
I begin to feel a hint of opiate feel kicking in. I also seem to
be feeling random itches all over my body, but they are easy to ignore.
This is a typical opiate alert for me. I feel slightly warm, a little
'floaty,' and real calm. Not much else yet. Narcotics seem to take a long
time to take effect orally.
1:21AM
------
The itching passed several minutes ago. But other than that, there
has been no change. I almost even feel closer to baseline than at my last
check-in. I'm yawning a little now though.
1:45AM
------
Well, I definitely feel 'something' - basically the same as I have
been feeling, but its moved up a level of intensity. Its tempting at this
point to smoke some cannabis to bring on the effects. I'm holding off
though, so I can get a good description of an unclouded dextropropoxyphene
experience.  I would hate to have to wait this long if I were using it for
pain relief!
2:10AM
------
T+1:20 and it still hasn't really kicked in yet. This is taking an
unusually long time. I haven't eatin in 11 hours or so, so my stomach
wasn't full. I feel slightly more than I did at last check-in. Same
effects again, just a little stronger. A kind of warm tingly sensation
diffused throughout my upper body and somewhat in my legs. A feeling of
calmness. Somewhat quieted thought processes. But I'm not yet feeling the
euphoria or the 'buzz' yet.
2:15AM
------
As I typed that last paragraph, things did jump up a level. The
body tingles increased alot, and spread all over my body. There is some
tinnitus in my ears now. Every now and then I get random itches, which has
been going on since I felt the first hint of effects. I'm developing a
decent 'buzz' and some euphoric sensations now as well.
2:30AM
------
Things still seem to be building, but I'm at a pretty decent level
now. I feel typical opiate effects, though sort of mild. As I said,
narcotics are very different from other CNS depressants. Its hard to
compare this high to something like GHB or alcohol.
I feel a little warm, its a pleasant warmth. My body feels a sort
of tingly, floaty sensation. I feel much lighter than usual. I don't feel
like moving around at all. I tried to lay down, though, and that wasn't
noticably more comfortable than sitting in my computer chair or standing.
It doesn't seem to matter what position I'm in, I'm equally comfortable.
Its a comfortableness that seems to come primarily from not caring about
things that might normally make me uncomfortable. My thought processes are
slow... I'm a verbal thinker, and the voice in my mind is much quieter
than normal. Its not that thought is impaired, I *can* think if I want
to... it just seems nicer to not think though. Opiates are a very
detatched high. You just want to float around feeling calm, not doing or
thinking. Its not that you feel unusually happy - you just feel mentally
relaxed and physically good. Personally I find it sort of boring, but I
can see how this state would appeal to alot of people, especially those
with escapist tendencies. Music is slightly enhanced. Orbital's 'Halcyon
On & On' sounds prettier than usual, and goes well with the floaty
sensations. Other minor effects... I have dry mouth, but its different
than cannabis 'cottonmouth.' I was pretty hungry before I took the pills.
The hunger vanished within a half hour or 45 minutes or so and hasn't
returned. The itching is still somewhat there, but its so easy to ignore
as to be a non-issue. Its concentrated on my scalp, face and arms now,
though, whereas earlier it was all over. My juice tastes bland.
2:50AM
------
Its been 2 hours... peak plasma concentrations of
dextropropoxyphene are supposedly reached at 2-2.5 hours, and I do feel as
though I've gotten as far as I'm going to. There doesn't seem to be
anymore sensation of increase in the effects. I'm kind of bored of the
high already. Narcotics just don't do all that much for me on their own.
I've been wanting to smoke some cannabis, but haven't yet because I wanted
to write an accurate report of an unclouded narcotic high. I think I've
accomplished that.
3:00AM
------
I smoke some cannabis. One hit from my glass pipe and I'm already
feeling much nicer. Yes, I think this is what was needed.
3:15AM
------
The cannabis made a huge difference. I can feel the effects of
both blended into a fuller high than the dextropropoxyphene alone. The
cannabis also made me think more vocally again, and the combination makes
mellow music AMAZING! It is making me a little sleepy though. Neither drug
seems to dominate the high, its an even synergy, at least at these
dosages.
3:45AM
------
I feel much the same as before, but the narcotic aspect of the
high is starting to taper off ever so slightly. I'm pretty tired and plan
to go to bed soon. This was interesting to actually document a narcotic
experience, but I've never really been a big fan of this class of drug.
I'd definitely do it again if I was given some more, although I'd combine
it right off with cannabis. Ah well...
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Motivation
Raman Spectroscopy is a kind of non-invasive and non-destructive tool that can be applied in many research areas. In this tutorial, detailed instructions will be provided for students in AE 551 class, which help them to collect Raman Spectra and run some simple corrections and analysis.
Preparation
Preparation is required before taking measurements.
First, Click the icon "OMNIC for Dispersive Raman" and start the software.
Second, turn on the laser and warm it for 5 min. This process can be started automatically when user changes the laser mode by clicking "Expt Set" on the control panel.( Expt Set -> Bench -> Laser(Value):"on")
Third, turn on the switch of the light source on the table and load your sample. By moving the speciman and adjusting the distance between the selected objective lens and the sample, users can focus the view on the target area through microscope. The focusing method should depend on the state of the sample(liquid or solid).
Fourth, Click "Window" and open a new working space.
Fifth, change the parameters through "Expt Set". You can change the exposure time, preview time, Aperture (pinhole or slit) etc., which directly affect the resulting spectrum. All of these settings can be saved as a template. For first time user, you can just proceed with a common template to check the result.
<
Collecting your first Raman Spectrum
Now you have a clean window to start collecting you first Raman Spectrum. With everything setted up correctly, just simplly click "Col Smp" and a pop-up window will show up, where you can type in a name to record it.
When the collection is done, the system will ask if you want to add the newly collected spectrum to the window you opened.
Simple Spectra Correction
Raman Spectra sometimes are seriously affected by flouresence noise, which is shown as a big bump. In this case, you can use the tool called baseline correction in the process panel. Another scenerio is when the spectra fluctates from an unstedy signal, causing significant peaks get hard to be recognized. Also for further statistic analysis, this fluctution can cause mis-classification. The tool user can select is called "smooth", which is also in the process panel. Furthermore, if you want to compare two spectra for the difference, the function "subtract" can be used to visualize the difference effectively. There are more tools can be used in the process panel to analyze your result. Just click "help" and type in the name of your interested tool, more detailed instructions can be found to assist you.
Save
It is tricky to save your spectra. If you have more than one measured, make sure to select "select all" in the Edit
, and then use "save group" in the File
. For the format, most frequenly used format is CSV, which can be read into excel.
R
Matlab


See also Tibet protest photos
Please help WikiLeaks spread these important videos of the Tibetan people's struggle which have been banned by the Chinese Public Security Bureau's internet censorship. Download the full archive from here in a variety of formats (around 230 MB) or Wikileaks mirrors or torrent sites if Wikileaks is censored from your country.
|
BBC_-_Dalai_Lama_interview_on_Tibet_protests Get the Flash Player to see this player.
|

BBC_-_Deaths_Reported_in_Tibet_Protests
Get the Flash Player to see this player.
|
|
BBC - The world condemn China killed Tibet Protesters Get the Flash Player to see this player.
|

BBC F2 ABC - Protests in Tibet Lhasa against China Get the Flash Player to see this player.
|
|
British TV - Document Tibet Protest for Independent Lhasa Get the Flash Player to see this player.
|

Brussels Belgium Tibet Protest against China Get the Flash Player to see this player.
|
|
CNN - Bejing Blind the world on Tibet-Kick Foreign out of Lhasa Get the Flash Player to see this player.
|

CNN - Protest in Tibet Get the Flash Player to see this player.
|
|
CNN - Protest in Tibet and India Against China Get the Flash Player to see this player.
|

CNN World - Activists report clashes Get the Flash Player to see this player.
|
|
CNN World - Tibet Chinas media blackout Get the Flash Player to see this player.
|

CNN World - Tibet Chinas problem Get the Flash Player to see this player.
|
|
CNN World - Tibet Chinese security in Lhasa Get the Flash Player to see this player.
|

CNN World - Tibet Exiles arrested Get the Flash Player to see this player.
|
|
CNN World - Tibet Free Tibet Movement Get the Flash Player to see this player.
|

CNN World - Tibet Hunger strike in India Get the Flash Player to see this player.
|
|
CNN World - Tibet Marchers stopped Get the Flash Player to see this player.
|

CNN World - Tibet Olympics tied to protests Get the Flash Player to see this player.
|
|
CNN World - Tibet Protest quashed Get the Flash Player to see this player.
|

CNN World - Tibet Protests continue Get the Flash Player to see this player.
|
|
CNN World - Tibet Protests in India Get the Flash Player to see this player.
|

CNN World - Tibet Refugees jailed Get the Flash Player to see this player.
|
|
CNN World - Tibet Richard Gere speaks Get the Flash Player to see this player.
|

CNN World - Tibet Riot breaks out Get the Flash Player to see this player.
|
|
Calgary Canada Tibet Protest against China Get the Flash Player to see this player.
|

France 24 - Greatest Embarrassment Beijing Olympics Get the Flash Player to see this player.
|
|
Interview with tourists Get the Flash Player to see this player.
|

Journeyman.tv - Tibet Protests grow Get the Flash Player to see this player.
|
|
Netherland TV - Protests in Tibet Get the Flash Player to see this player.
|

Protest in Eastern Tibet Get the Flash Player to see this player.
|
|
Sky News - Dalai Lama called for investigation in Tibet Protests Get the Flash Player to see this player.
|

Tibet Lhasa 15-03-08 Get the Flash Player to see this player.
|
|
Tibet protest in Amdo Labrang Get the Flash Player to see this player.
|

Zurich Switzerland Tibet Protests Get the Flash Player to see this player.
|
|
BBC - Lhasa Tibetan Demanded independent from China rule Get the Flash Player to see this player.
|


PyREx Documentation¶
PyREx - (Python package for Radio Experiments)¶
PyREx (Python package for Radio Experiments) is a Python package designed to simulate the measurement of Askaryan pulses via in-ice radio antenna arrays. The code was written for the ARA collaboration with considerations for future radio arrays. As such, the package is designed to be highly modular so that it can easily be used for other radio projects (e.g. ARIANNA, RNO, and IceCube Gen2).
Useful Links¶
Source (GitHub): https://github.com/bhokansonfasig/pyrex/
Documentation: https://bhokansonfasig.github.io/pyrex/
Release notes: https://bhokansonfasig.github.io/pyrex/build/html/versions.html
Getting Started¶
Requirements¶
PyREx requires python version 3.6+ as well as numpy version 1.17+, scipy version 1.4+, and h5py version 3.0+.
After installing python from https://www.python.org/downloads/, the required packages can be installed with pip
as follows, or they will be installed automatically by simply installing PyREx as specified in the next section.
pip install numpy>=1.17
pip install scipy>=1.4
pip install h5py>=3.0
Installing¶
The easiest way to get the PyREx package is using pip
as follows:
pip install git+https://github.com/bhokansonfasig/pyrex#egg=pyrex
Note that since PyREx is not currently available on PyPI, a simple pip install pyrex
will not have the intended effect.
Optional Dependencies¶
The following packages are not required for running PyREx by default, but may be useful or required for running some specific parts of the code:
matplotlib¶
Recommended version: 3.0+
Used for creating plots in example code and auxiliary scripts.
Examples¶
For examples of how to use PyREx, see the usage page and the examples page in the documentation, or the python notebooks and scripts in the examples directory.
Contributing¶
Contributions to the code base are mostly handled through pull requests on GitHub. Before contributing, please read the contribution page in the documentation for more information.
Authors¶
Ben Hokanson-Fasig


China 'resolutely' backs Hong Kong leader despite polls setback
by AFPBEIJING: China said Monday it supports Hong Kong’s embattled leader Carrie Lam, after the pro-democracy camp scored a crushing victory in community-level elections in the city after months of violence.
The result was a humiliating rebuke to Beijing and Lam, who has dismissed calls for political reform and had repeatedly suggested that a silent majority supported her administration and opposed the protest movement.
“China’s central government resolutely supports chief executive Carrie Lam’s leadership of the Special Administrative Region government,” said foreign ministry spokesperson Geng Shuang at a regular press briefing.

Geng said the government also supported the police and judiciary in Hong Kong in “punishing relevant violent and illegal behaviours.”
“The Chinese government’s resolve to protect national sovereignty, security and development interest has not faltered. Its resolve to carry out one country, two systems has not faltered,” he said.
Lam said earlier Monday that her government would “listen humbly” to the public.
Candidates favouring greater democracy seized an overwhelming majority of the 452 seats in the city’s 18 district councils.


 When you leave your house you look super hot. But after a night out, a day of travel, a kick-ass workout or a long day at the office there’s no quick and easy way to freshen up. That’s where we come in.
Pack a S•PACK.
Twin sisters and Co-Founders Juliette and Mariel Reiss have made it so you can do you and clean up, too. Girls on the go themselves, the Reiss twins recognize that sometimes after a night out, a day of travel, a kick-ass workout or a long day of work, a quick and easy clean up is a necessity.
Meet The S•PACKulty
Jamie Korn Katie Reiner Emma Covode Emma Shapiro Jillian Stein Jordan Gruber Lauren Spiel Nikki Robinson Sophia Dardashti Nikki VolpertMeet the Reps
University of Pennsylvania
Stevie Klein
Vanderbilt University
Ali Cantor
University of Wisconsin
Allie Safir
Emily Chestler
Lia Domney
University of Delaware
Amanda Keiser
University of Florida
Carly Feldberg
Rachel Motola
Lehigh University
Emma Fried
Penn State University
Gaby Green
Kristina York
University of Colorado-Boulder
Jessica Bernstein
Shari Oginski
Boston University
Kim Bizenov
Syracuse University
Ilana Askenase
Emma Mirsky
Tulane University
Sydney Rodenstein
Indiana University
Melissa Diamond
Sylvie Konnor
Northwestern University
Danielle Ripka
University of Maryland
Jessie Mangano
University of Miami
Hayley Miller
Single Use $4.99
This tiny disposable pack contains a mini-toothbrush, mini-toothpaste, two makeup removing cleanser wipes, a deoderant cloth and a hair tie. It measures 4.5 x 3 inches.
*only available through your local rep or in store


QPersonalTrainer is about helping trainers become their best. If motivating others to succeed excites you, and you are—or want to be—a top-notch exercise professional, become part of this dynamic business opportunity.
Join our team of fitness experts today.
find out more


Guidance
How a pupil's results in the key stage 2 tests can be changed if a pupil is affected by extremely distressing circumstances.
The full criteria for special consideration applications from schools is available at key stage 2 tests: how to apply for special consideration .
Schools received their pupils’ results on 5 July 2016 via NCA tools . Results include the total raw score achieved for each pupil, in each subject, and the corresponding scaled score. The raw score to scaled score conversion tables are available for reference.
Results reflect each pupil’s actual attainment in the tests, including those pupils who have had an application for special consideration approved.
The scaled scores won’t be adjusted, but there will be a ‘+’ sign on the return of results website, to show that special consideration has been granted. The outcome field will show ‘CA’ (consideration applied) instead of either ‘AS’ (achieved the expected standard) or ‘NS’ (not achieved the expected standard).
The scaled score reported on NCA tools will show if the pupil met the expected standard in the test before special consideration was applied. A scaled score of 100 will represent the expected standard on the test. Pupils scoring 100 or more will have demonstrated that they met the expected standard.
As adjusted scaled scores are not being reported to schools on the return of results website, schools should consider how they report the test results to parents where special consideration has been granted.
Schools should consider a pupil’s individual circumstances which led to the application for special consideration, as well as how representative the test results are of the pupil’s abilities.
Schools should use their teacher assessment judgements and any other in-school formative assessment when reporting a pupil’s achievements to parents at the end of the summer term.
While special consideration does not give us sufficient information to change a pupil’s scaled score itself, we will take into account the fact that special consideration has been granted when calculating school performance measures published in December.
When calculating primary school performance measures, a number of points will be added to pupils’ scaled scores if special consideration has been granted. These adjusted scaled scores will be used only to calculate the school’s performance measures. This will apply to both attainment and progress measures.
The number of scaled score points that will be added for each subject are as follows:
| Test | Number of points to be added to the scaled score |
|---|---|
| English reading | 3 |
| English grammar, punctuation and spelling | 3 |
| Mathematics | 3 |
Schools can add the number of points to a pupil’s reported scaled score for a test to understand what adjusted scaled score will be used in the performance tables.
Adjusted scaled scores will be capped at the maximum score available for a test. For example if a pupil’s scaled score from the test is 118, then a scaled score of 120, the maximum scaled score on the tests, will be used for calculations in the performance tables.
If a pupil doesn’t achieve the minimum number of raw score marks needed to be awarded a scaled score, their adjusted scaled score will be set to the minimum scaled score available for the test, 80.
Published: 5 July 2016


Come and join our cool and amazing community, fill in your details to get started. Already have an account? Log in.
By clicking on "Sign up free, you agree to the Terms of Service and the Privacy policy


Training session and Workshops
The webinar format is ideally suited for transferring skills and knowledge through education and instruction, provided the teaching doesn't depend on the participants actually being in the same room.
If you offer your webinar as a training session, you'll be teaching them skills. It might be about an hour long, with a handout they download in advance, and exercises they complete during the session. You'll still do most of the talking, but you might have more than one opportunity for them to ask you questions, and you'll allow more time for questions.
With the ability to share your screen with panelists you can hold workshops as your webinar, taking through viewers step-by-step what to do. Either by showing them PowerPoint presentations or your own screen through screen share, you give the audience the ability to follow something on-screen without the human element lost as you will still be on camera.
For example, we could hold a webinar workshop on how to set up your own webinar, taking you through step by step how to set it up through sharing our screen with you.


Canada minority party hopeful it can work with PM Trudeau
OTTAWA (Reuters) - The leader of Canada’s opposition New Democratic Party (NDP), Jagmeet Singh, said on Thursday he was hopeful he could work with Prime Minister Justin Trudeau’s minority Liberal government.
Singh’s comments, after meeting Trudeau, were the strongest indication yet that his left-leaning party would help keep the prime minister in power.
The Liberals lost their majority in last month’s election and need the support of other parties to govern.
“I am hopeful after the meeting that there is an opportunity for us to work together,” Singh told reporters, adding he wanted to see the government take concrete action to boost coverage for prescription drugs and to fight climate change.
The Liberals and the left-leaning NDP together hold 181 of the 338 seats in the House of Commons elected chamber, more than enough to push through legislation.
“We know that the government is going to need our support at some level if they want to pass bills ... I want to make it clear that that’s not going to come for free,” said Singh.


Forkit Privacy Policy
Last revised on January 9, 2020
Introduction
This Privacy Policy explains what information the Forkit Application ("App") collects and how it is used. Currently, the App doesn't collect any information from the user. If you have any questions about the Privacy Policy of the App, please contact<EMAIL_ADDRESS>We reserve the right, in our sole discretion, to make changes or modifications to this Privacy Policy at any time and for any reason. We will alert you about any changes by updating the "Last updated" date of this Privacy Policy, and you waive any right to receive specific notice of each such change. It is your responsibility to periodically review the Privacy Policy to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Privacy Policy by your continued use of the App after the date such revised Privacy Policy is posted.


Class: Viper::Readline
- Inherits:
-
Object
- Object
- Viper::Readline
- Defined in:
- lib/readline/readline.rb
Overview
Readline GNU readline-like functionality using Buffers.
Instance Attribute Summary (collapse)
-
- (Object) last_line
readonly
Returns the value of attribute last_line.
Instance Method Summary (collapse)
-
- (Readline) initialize(buffers = nil)
constructor
A new instance of Readline.
- - (Object) readline
Constructor Details
- (Readline) initialize(buffers = nil)
Returns a new instance of Readline
7 8 9 10 |
# File 'lib/readline/readline.rb', line 7 def initialize(buffers = nil) @buffer = MultiLineBuffer.new buffers @last_line = '' end |
Instance Attribute Details
- (Object) last_line (readonly)
Returns the value of attribute last_line
12 13 14 |
# File 'lib/readline/readline.rb', line 12 def last_line @last_line end |
Instance Method Details
- (Object) readline
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/readline/readline.rb', line 14 def readline @buffer.fin # sets up next blank line Viper::Control.loop do |worker| begin key = worker.getch break if key == :return bound_p = worker.bound_proc_for key next if bound_p.nil? bound_p.call(@buffer) rescue BufferExceeded say BELL rescue => err say err. break end end result = @buffer.line unless result.empty? @last_line = @buffer.line @buffer.new_line end result end |


Designing for Accessibility: An Introduction to Designing for Accessibility
January 25th, 2016
Most developers probably believe that following good accessibility practices will hinder the user experience for the common user. This may be true to some extent, but most users of your website are likely to benefit from a well accessible website.
Most of your users may be able to read a smaller font, so choosing a larger font with high contrast colors may seem like a sacrifice. However, if the design is easy for people with poorer eyesight, then it will be really REALLY easy for those with perfect eyesight.
In Steve Krug's Don't Make Me Think, he talks about making your website as easy to navigate, understand, and use, as possible, for all your users. Large font and high contrast are just one of the ways you can do this.
There are many other accessibility design choices that can make your website easy to access for those with disabilities, and even easier to access for those without them.
Some things to keep in mind when designing for your users:
- 6% of your users will probably have Carpal Tunnel Syndrome
- 10% of male users will be color blind
- 15% of your users will be left-handed
If you are looking to maximize your website's reach, then these users start to add up. For more information about how to implement accessibility best practices, visit
Accessibility Best Practices


--- layout: none title: Health Near Me ---
HealthNear.Me is a simple tool for people to find public health providers near them.
There are a million ways to use the Internet to find a good restaurant or a place to get your oil changed nearby, but very few to locate much needed health services in your area, such as a mental health or WIC clinic. Existing tools are typically based on a single type of provider, don't work well on mobile devices, and are not searchable by location.
HealthNear.me aggregates ten types of public health providers in one place and makes them searchable, either by this website, which is built to work on smart phones, tablets, and old fashioned desktop computers, or via any phone that can send and receive text messages.
This application started as an entry in the Making Public Health Data Work Challenge. The creators, Chris Gansen and Melissa Buenger, are working with the Chicago Department of Public Health to pilot and deploy this tool in 2014.
HealthNear.Me includes data from 10 public datasets on the City of Chicago Data Portal and one set from the State of Illinois Data Portal:
HealthNear.Me is an open source project. We invite you to examine the source code on Github, and to contribute enhancements and bug fixes. Please don't hesitate to contact us with ideas for improvements or to report issues with the website.
We gratefully acknowledge the open source libraries and projects we used to build the site, including: the Go programming language, Jekyll, ElasticSearch, Kelly Dunn's go-geo toolkit, and the Elastigo project.
We acknowledge and thank the Smart Chicago Collaborative for their generous support of HealthNear.Me by providing hosting on their Amazon Web Services account.


Solver Runner¶
-
run_euler_185_solver.
main
()[source]¶ Run this code to get the solution to 185th problem in Project Euler.
Terminal options:
-
-m
<sequence_length>
,
--sequence_length
<sequence_length>
¶ Length of sequence in the riddle. Assume file ‘data/input_m.txt’ exists.
-
This page was generated using this .rst code:¶
Solver Runner
==================
|
|
.. automodule:: run_euler_185_solver
|
|
This page was generated using this .rst code:
*********************************************
|
.. literalinclude:: run_euler_185_solver.rst
|
|
:ref:`Return Home <mastertoc>`


Estimate the size of a networked population based on respondent-driven sampling data. The package is part of the "RDS Analyst" suite of packages for the analysis of respondent-driven sampling data. See Handcock, Gile and Mar (2014) <doi:10.1214/14-EJS923> and Handcock, Gile and Mar (2015) <doi:10.1111/biom.12255>.
| Version: | 0.6 |
| Depends: | methods, parallel |
| Imports: | RDS, scam, coda |
| Suggests: | network, testthat |
| Published: | 2018-08-26 |
| Author: | Mark S. Handcock [aut, cre, cph], Krista J. Gile [aut, cph] |
| Maintainer: | Mark S. Handcock <handcock at stat.ucla.edu> |
| License: | GPL-3 + file LICENSE |
| URL: | http://www.hpmrg.org |
| NeedsCompilation: | yes |
| Citation: | sspse citation info |
| CRAN checks: | sspse results |
| Reference manual: | sspse.pdf |
| Package source: | sspse_0.6.tar.gz |
| Windows binaries: | r-devel: sspse_0.6.zip, r-release: sspse_0.6.zip, r-oldrel: sspse_0.6.zip |
| OS X binaries: | r-release: sspse_0.6.tgz, r-oldrel: sspse_0.6.tgz |
| Old sources: | sspse archive |
Please use the canonical form https://CRAN.R-project.org/package=sspse to link to this page.


Here are some pictures of our resort, and the surrounding area you will be exploring!
Ocean View
Resort Lobby
Golf Course (Russell Crowe is sure to entertain!)
Jungle
Back to HomePage


Enter a unique name (no spaces) for your data. You can share it with a group of friends or your guild or whatever, but anyone who has the name can add/delete/modify the data.
Page automatically updates while it is open. Most of the fields can be updated by clicking on them.


Hey there! I’m a UX Design Lead / sport lover.
My expertise is in Product Design and helping products to grow. I believe it’s so important to find the right things to build, and more importantly, which things to not build (spoiler, that’s the hard part!). I try to educate teams and orgs on how and why to practice Design Thinking.
I do everything from user research, user journey, information architecture & wireframes, right through to UI design.
Making 🙌🏼 products.
People leadership 👫
Teams & culture
Diversity 👏
And emojis, obviously.
Email hello@eamonnburke.com


$provide
AUTO
Use $provide
to register new providers with the $injector
. The providers are the factories for the instance.
The providers share the same name as the instance they create with Provider
suffixed to them.
A provider is an object with a $get()
method. The injector calls the $get
method to create a new instance of
a service. The Provider can have additional methods which would allow for configuration of the provider.
function GreetProvider() { var salutation = 'Hello'; this.salutation = function(text) { salutation = text; }; this.$get = function() { return function (name) { return salutation + ' ' + name + '!'; }; }; } describe('Greeter', function(){ beforeEach(module(function($provide) { $provide.provider('greet', GreetProvider); })); it('should greet', inject(function(greet) { expect(greet('angular')).toEqual('Hello angular!'); })); it('should allow configuration of salutation', function() { module(function(greetProvider) { greetProvider.salutation('Ahoj'); }); inject(function(greet) { expect(greet('angular')).toEqual('Ahoj angular!'); }); });
Decoration of service, allows the decorator to intercept the service instance creation. The returned instance may be the original instance, or a new instance which delegates to the original instance.
| Param | Type | Details |
|---|---|---|
| name | string | The name of the service to decorate. |
| decorator | function() | This function will be invoked when the service needs to be
instantiated. The function is called using the
|
A short hand for configuring services if only $get
method is required.
| Param | Type | Details |
|---|---|---|
| name | string | The name of the instance. |
| $getFn | function() | The $getFn for the instance creation. Internally this is a short hand for
|
| Object | registered provider instance |
Register a provider for a service. The providers can be retrieved and can have additional configuration methods.
| Param | Type | Details |
|---|---|---|
| name | string | The name of the instance. NOTE: the provider will be available under |
| provider | Objectfunction() | If the provider is:
|
| Object | registered provider instance |


Register to immerse yourself into the world of Investments!
Please enter the following details to register*


Project management Manage projects - research projects, innovation initiatives, student design projects etc. Agile methodologies as well as standard models
Ideation and business development Facilitate and develop design methodologies for stakeholder engagement Develop and summarise design documentation, inspiration catalogies and conduct design research Pay attention to the business case
Design and specification Scenarios, personas, User-stories
Software development Agile code
Deployment and organisational integration Rolling out a new system is far from trivial. I have experience with deploying applications to app stores and using common technologies like Docker to deploy applications on cloud infrastrucute. That is the easy part. The hard part is to strategically plan the the integration of the new system into the organisation. Do you pilot a subset of the system across the organisation, pilot the full system within a single unit, or do you go for the risky full tranition all at once?


OS_like_OS
Requirements
To run OS_like_OS on your computer you need:
- 2 GHz or faster processor
- 1 GB RAM
- 200 MB available hard disk space
Installation
To install OS_like_OS on your computer:
- Download the bootable image from our site
- Write it to a USB drive or an optical disk
- Boot your computer with it
- Follow instructions on the screen


Posted By Brad Traversy on August 21, 2014 at 10:00 PM
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making
Read MorePosted By Brad Traversy on August 21, 2014 at 10:00 PM
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making
Read MorePosted By Brad Traversy on August 21, 2013 at 10:00 PM
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making
Read MoreIf you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text.


BAD FORTUNES
GOOD
Not all fortune cookies make the final cut. Sit back and click through these poor attempts at inspiration and predicting your life.
After that, feel free to check out the good ones: you'll need them.


Minister for Health Simon Harris to ban sale of e-cigarettes to under 18s
Harris' move comes as new information from the Department of Health reveals that there has been more than a tripling of the number of new vaping products on the market in just a year
by Ferghal BlaneySimon Harris is banning the sale of e-cigarettes to all under 18s.
The Minister for Health is announcing today a complete ban on vaping for kids, with shopkeepers who sell the nicotine products facing prosecutions.
Mr Harris also said that he will be looking at restrictions on the advertising of e-cigarettes in the legislation he is bringing forward.
But in the meantime, he is calling on the companies behind the vaping products to step up the plate themselves.
The minister wants them to immediately remove any products they have that are aimed at children.
He said the companies claim that the products they sell are to help people give up cigarettes, so it should be no problem for them to stop any advertising targeted at children.
His move comes as new information from the Department of Health reveals that there has been more than a tripling of the number of new vaping products on the market in just a year.
There were 1,538 new products (electronic cigarette products and refill containers) registered last year, which has jumped to 5,362 this year so far.
Recent reports from the USA claim that there have been deaths from e-cigarettes.
Vaping devices have been proven to be not as dangerous as ordinary cigarettes, but could still pose some dangers.
Mr Harris is also acting on fears that crafty vaping companies - often owned by Big Tobacco - are deliberately targeting children with bright, colourful ads.
It is suspected they are doing this to battle the move away from cancer-causing real cigarettes and tobacco among the youth of today.
Mr Harris said: “The figures provided by the HSE to my Department recently show the number of electronic cigarette products has more than tripled in the past year.
"We have had significant impact in the war on tobacco but it is clear companies are adapting and evolving as we erect legislative barriers.
"The increase in the number of products being reported to the HSE shows their business is continuing to increase here.
“My fear is they are targeting their business towards children.
"This is why we are introducing legislation to ban the sale of e-cigarettes to children under the age of 18 and my Department is examining restrictions on advertising.
"But there are things the companies can do themselves.
“If their argument is that they are cessation tools, they should take immediate action to remove products that are marketed towards our children from the market.
"Some companies have done this in other jurisdictions.
“They should do it here too."
How to follow the Irish Mirror on social media
You can like our main Facebook page here.
Our Irish Mirror Sports page - which brings you all your Irish and UK sports news - can be found here.
You can also check out our Irish Mirror GAA sports page.
The Irish Mirror Twitter account is @IrishMirror while our sports account is @MirrorSportIE.
Our Instagram account can be found here.


The Fathym Low-Code Framework enables you to host, manage and deploy data-driven applications.
Each element of the Low-Code Framework is built from Low Code Units – modular and reusable building blocks of code that can be as large as an application, or as small as a data visualization.
The framework drastically cuts down development time by automating and applying best practice workflows for cloud infrastructure automation and application management. You can create data applications without having to manage and maintain the underlying infrastructure.


{% extends "template.html" %} {% block content %}
An interactive feedback platform that helps individuals with impaired hearing to practice speaking and reconnect with communities and reintegrate into the society
Reconnect is a website that uses speech recognition and analysis to teach people with hearing impairments to talk by giving them feedback on which words they have mispronounced, when they talked too loud/quiet, and when the breaks between the words were too long
Get started!


--- layout: post title: Kylie Jenner has officially become the youngest self-made billionaire ever | Business Insider India date: '2019-10-15T13:51:00.001+05:30' author: Sahil Rajput tags: modified_time: '2019-10-15T13:51:26.081+05:30' blogger_id: tag:blogger.com,1999:blog-5250005448924290719.post-6087839049639159929 blogger_orig_url: https://www.jaadujinn.ml/2019/10/kylie-jenner-has-officially-become.html ---


Hi! My name is Dan and I'm a Portland-based web developer. After graduating from Portland State University with a Bachelors in Political Science I decided to begin coding to stay close to home.
I'm cultivating a diverse set of skills and languages, including:
When I'm not playing with my daughter you can probably find me in one of Portland's many amazing restaurants, bars, or disc golf courses.


Spring Canvas provides users with various outfits for new and upcoming fashion trends put together by luxury brands. Every season and year, luxury brands come out with a new collection. To help these brands promote their new collection to the public, we want to create a lookbook that specifically targets fashion students, fashionista, influencers, celebrities, and the general public on these upcoming collections. The goal is to successfully market, educate, inform, and develop an appreciation for the collection as a piece of artwork. This lookbook will specifically only present the Spring 2021 Collection brought out by each brand.


Ocean [aq79], ocean, in The Outer Sea
Last updated Turn #44
Ocean [aq79], ocean, in The Outer Sea
------------------------------------------------------------------------
21: Orion I [hd3f], ship, 2 hulls, 1 rowing port, 6 sails, arrived from
21: Ocean [aq78], owner:
21: Sir Pigparts [n4b], Imperial Empire, with 16 sailors
22: Orion I [hd3f], ship, 2 hulls, 1 rowing port, 6 sails, departed for
22: Ocean [ap79].
Routes leaving Ocean:
North, to Ocean [ap79], 6 days
East, to Ocean [aq80], 6 days
South, to Ocean [ar79], 6 days
West, to Ocean [aq78], 6 days


Warning: client only. Use REST API from backend spring-petclinic-rest project You need start backend server before start frontend application.
npm uninstall -g angular-cli @angular/cli
npm cache clean
npm install -g @angular/cli@latest
Clone project from github
git clone https://github.com/spring-petclinic/spring-petclinic-angular.git
Install local project package
npm install --save-dev @angular/cli@latest
if npm version > 5.0 delete package-lock.json file ( bug in npm 5.0 - this file prevent correct packages install)
npm install
Now project use Angular CLI v.8.0.3 and Angular v.8.0.1 You can see current dependencies in package.json file.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the -prod
flag for a production build.
The documentation of the Spring Petclinic Angular application is generated by the compodoc tool.
Documentation URL: th
Regenerate the docs
folder with compodoc:
compodoc -p src/tsconfig.app.json -d docs
Build Angular application:
ng build --prod --base-href=/petclinic/ --deploy-url=/petclinic/
Create sub-directory /petclinic in default nginx directory /usr/share/nginx/html
Copy /dist sub-directory from Angular appication to /usr/share/nginx/html/petclinic
Edit nginx config (nginx.conf file in /etc/nginx/ directory)
server {
listen 80 default_server;
root /usr/share/nginx/html;
index index.html;
location /petclinic/ {
alias /usr/share/nginx/html/petclinic/dist/;
try_files $uri$args $uri$args/ /petclinic/index.html;
}
}
Reload nginx: nginx -s reload
Run app in brouser: http://server_name/petclinic/
ng build --prod --base-href=/petclinic/ --deploy-url=/petclinic/
Create sub-directory /petclinic in default Apache directory /var/www/html
Go into Angular appication /dist sub-directory and copy all files and sub-dirs from it to /var/www/html/petclinic
Edit Apache config (/etc/https/conf/httpd.conf):
sudo vi /etc/httpd/conf/httpd.conf
Find the Directory /var/www/html> section and change the AllowOverride directive from None to All:
/etc/httpd/conf/httpd.conf
. . .
<Directory /var/www/html>
. . .
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
. . .
</Directory>
. . .
sudo systemctl restart httpd
sudo vi /var/www/html/petclinic/.htaccess
Add the following line to the top of the file to activate the RewriteEngine, which instructs Apache to process any rules that follow:
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
# If the requested resource doesn't exist, use index.html
RewriteRule ^ index.html
sudo systemctl restart httpd
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
Before running the tests make sure you are serving the app via ng serve
.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.


Active Ingredients (in each capsule)
Diphenhydramine hydrochloride 25 mg
Solubilized ibuprofen equal to 200 mg ibuprofen (NSAID)*
(present as the free acid and potassium salt)
*non-steroidal anti-inflammatory drug
Purpose
Nighttime sleep-aid
Pain Reliever
Uses
- for relief of occasional sleeplessness when associated with minor aches and pains
- helps you fall asleep and stay asleep
Warnings
Allergy alert: Ibuprofen may cause a severe allergic reaction, especially in people allergic to aspirin. Symptoms may include:
- hives
- facial swelling
- asthma (wheezing)
- shock
- skin reddening
- rash
- blisters
If an allergic reaction occurs, stop use and seek medical help right away.
Stomach bleeding warning: This product contains an NSAID, which may cause severe stomach bleeding. The chance is higher if you:
- have had stomach ulcers or bleeding problems
- take a blood thinning (anticoagulant) or steroid drug
- are age 60 or older
- take other drugs containing prescription or nonprescription NSAIDS [aspirin, ibuprofen, naproxen, or others]
- take more or for a longer time than directed.
- have 3 or more alcoholic drinks every day while using this product
Do not use
- in children under 12 years of age
- if you have ever had an allergic reaction to any other pain reliever/fever reducer
- right before or after heart surgery
- unless you have time for a full night’s sleep
- with any other product containing diphenhydramine , even one used on skin
- if you have sleeplessness without pain
Ask a doctor before use if
- the stomach bleeding warning applies to you
- you have a history of stomach problems, such as heartburn
- you have glaucoma
- you have high blood pressure, heart disease, liver cirrhosis, kidney disease, or asthma
- you are taking a diuretic
- you have problems or serious side effects from taking pain relievers or fever reducers.
- you have a breathing problem such as emphysema or chronic bronchitis
- you have trouble urinating due to an enlarged prostate gland
Ask a doctor or pharmacist before use if you are
- taking sedatives or tranquilizers, or any other sleep-aid
- taking any other drug
- taking any other antihistamines
- taking aspirin for heart attack or stroke, because ibuprofen may decease this benefit of aspirin
- under a doctor's care for any continuing medical illness
When using this product
- drowsiness will occur
- avoid alcoholic drinks
- do not drive a motor vehicle or operate machinery
- take with food or milk if stomach upset occurs
- the risk of heart attack or stroke may increase if you use more than directed or for longer than directed.
Stop use and ask a doctor if
- you experience any of the following signs of stomach bleeding:
feel faint
have bloody or black stools
vomit blood
have stomach pain that does not get better
pain gets worse or last more than 10 days
sleepnessness persists continuously for more than 2 weeks. Insomnia may be a symptom of a serious underlying medical illness
redness or swelling is present in the painful area
any new symptoms appear.
If pregnant of breast-feeding,
ask a health professional before use. It is especially important not to use ibuprofen during the last 3 months of pregnancy unless definitely directed to do so by a doctor because it may cause problems in the unborn child or complications during delivery.
Keep out of reach of children
In case of overdose, get medical help or contact a poison control center right away
Directions
- do not take more than directed
-
adults and children 12 years and over:
- take 2 capsules at bedtime
- do not take more than 2 capsules in 24 hours
Other information
- each capsule contains: potassium 20 mg
- read all warnings and directions before use. Keep carton.
- store at 20° to 25°C (68° to 77° F)
- avoid high humidity and excessively heat above 40o C (104o F)
- protect from light.
Inactive Ingredients
FD&C Blue #1, FD&C Red #40, gelatin, pharmaceutical ink, polyethylene glycol, potassium hydroxide, purified water, sorbitan,sorbitol
Questions or comments?
call 1-877-753-3935 Monday- Friday 9AM-5PM EST
Principal Display Panel
Compare to the active ingredients in Advil® PM LIQUI-GELS® †
IBUPROFEN PM SOFTGELS
Solubilized Ibuprofen, 200 mg/
Diphenhydramine HCl, 25 mg
PAIN RELIEVER (NSAID)/ NIGHTTIME SLEEP-AID
Softgels**
(**Liquid Filled Capsules)
†This product is not manufactured or distributed by Pfizer Consumer Healthcare, owner of the registered trademark Advil® PM LIQUI-GELS®
KEEP OUTER CARTON FOR COMPLETE WARNINGS AND PRODUCT INFORMATION.
TAMPER EVIDENT: DO NOT USE IF CARTON IS OPENED OR IF BLISTER UNIT IS TORN, BROKEN OR SHOWS ANY SIGNS OF TAMPERING


9999 999 9999
<EMAIL_ADDRESS>ONLINE HOTEL
Contact
About us
Facilites
Rooms
Home
WELCOME TO ONLINE HOTEL
STAY IN TOUCH
Sign up here to receive interesting updates
CLICK
HOTEL
Home
Rooms
Facilites
Aboutus
contact
CONTACT US
9999 99 9999
reserve@ONLINE HOTEL
calangute-baga Rd.calangute
Goa 403516


Welcome to deepatari!¶
This is a framework to support the development of algorithms for intelligent agents in the Atari game playing domain. The idea is to let researcher or programmer focus on the development of algorithms without having to think about the whole environment implementation and to facilitate and generalize the evaluation of these algorithms to make results comparable.


I think it would be awesome for a community server/player blotter. For example, I check a server before joining and it has a "Community warning" flag by it. Thats saying something sketchy is going on in that server. Same thing with players. And to avoid spammers, that player/server and only be blotted if numerous people vote/report.
Similar to Norton Firewalls community.
BrainFooLong
Administrator
This is mostly the same as global ban and cheater list, which requested a lot here.
So, bblog doesn't add any feature like this.
Vote/Report requires also a good server structure to make this support stable, this costs money and much time to administrate -> Just another reason why its a good idea but not simple to handle by free projects without sponsors.
Maybe Battlelog integrate such feature in the future.
Greetz


The shortlink requested is not a configured shortlink.
If you're an admin, click
here
to go to the portal and configure it.


red wire
`Prev `__
R
`Next `__
--------------
**red wire**: n.
[IBM] Patch wires installed by programmers who have no business mucking
with the hardware. It is said that the only thing more dangerous than a
hardware guy with a code patch is a `*softy* <../S/softy.html>`__ with a
soldering iron.... Compare `*blue wire* <../B/blue-wire.html>`__,
`*yellow wire* <../Y/yellow-wire.html>`__, `*purple
wire* <../P/purple-wire.html>`__.
--------------
+--------------------------------------+----------------------------+---------------------------+
| `Prev `__ | `Up <../R.html>`__ | `Next `__ |
+--------------------------------------+----------------------------+---------------------------+
| recursive acronym | `Home <../index.html>`__ | regexp |
+--------------------------------------+----------------------------+---------------------------+


Join the ranks of such Heroes as Grenwald the Wise and Samuel the Just by taking on a course of study at Fletchison’s Academy: the first academy in Goscogne committed to teaching the next generation of adventurers.
Will you conquer the feared Standardized Test Dungeon to ensure your admittance? Can you bring honor to your family and village? We invite the most worthy would-be Heroes to apply.


Returns a list of the available reserved node offerings by Amazon Redshift with their descriptions including the node type, the fixed and recurring costs of reserving the node and duration the node will be reserved for you. These descriptions help you determine which reserve node offering you want to purchase. You then use the unique offering ID in you call to purchase-reserved-node-offering to reserve one or more nodes for your Amazon Redshift cluster.
For more information about managing parameter groups, go to Purchasing Reserved Nodes in the Amazon Redshift Management Guide .
describe-reserved-node-offerings
[--reserved-node-offering-id <value>]
[--max-records <value>]
[--marker <value>]
--reserved-node-offering-id (string)
The unique identifier for the offering.
An optional marker returned by a previous describe-reserved-node-offerings request to indicate the first offering that the request will return.
You can specify either a --marker parameter or a ClusterIdentifier parameter in a describe-clusters request, but not both.
This example shows all of the reserved node offerings that are available for purchase.
Command:
aws redshift describe-reserved-node-offerings
Result:
{
"ReservedNodeOfferings": [
{
"OfferingType": "Heavy Utilization",
"FixedPrice": "",
"NodeType": "dw.hs1.xlarge",
"UsagePrice": "",
"RecurringCharges": [
{
"RecurringChargeAmount": "",
"RecurringChargeFrequency": "Hourly"
} ],
"Duration": 31536000,
"ReservedNodeOfferingId": "ceb6a579-cf4c-4343-be8b-d832c45ab51c"
},
{
"OfferingType": "Heavy Utilization",
"FixedPrice": "",
"NodeType": "dw.hs1.8xlarge",
"UsagePrice": "",
"RecurringCharges": [
{
"RecurringChargeAmount": "",
"RecurringChargeFrequency": "Hourly"
} ],
"Duration": 31536000,
"ReservedNodeOfferingId": "e5a2ff3b-352d-4a9c-ad7d-373c4cab5dd2"
},
...remaining output omitted...
],
"ResponseMetadata": {
"RequestId": "8b1a1a43-75ff-11e2-9666-e142fe91ddd1"
}
}
If you want to purchase a reserved node offering, you can call purchase-reserved-node-offering using a valid ReservedNodeOfferingId.


Muscat: Oman Al Khair festival will kick off on Friday in Amirat public park.
Muscat Municipality said in a statement: "Within the celebrations of the 49th National Day, H.E Eng. Issam al Zidjali, Chairman of Muscat Municipality will preside over the opening ceremony of our Festivity Oman al Khair, to be held at al Amirat public park and will last for 8 consecutive days."


Crash Bandicoot is a third person platform game developed by Naughty Dog and released by Sony Computer Entertainment in 1996. The game focuses on Crash, a creature created by the antagonist of the game, Dr. Neo Cortex, and his henchman, Doctor Nitrus Brio (Dr. N. Brio).  The game was one of the best selling games for the PlayStation, following up with over 18 games featuring the lovable bandicoot.


Options
Update stories every:
5 minutes
10 minutes
15 minutes
20 minutes
30 minutes
45 minutes
1 hour
Open story links in background tabs?
Yes
No
Report an Issue
Port of
hacker-news-for-chrome
, for
DataTau
, by
Abhinav Tushar


Email Design
|
Breathe in-between rendering
This is a themed example of the Starter Email Template. It’s designed to bring a sense of calm to your email-building process. Coding emails can get frustrating. This is a reminder to take some deep breaths while coding and testing.
Be one with your code editor
This design uses warm, natural colors to bring a sense of calm, with stock photos from Unsplash of people that look at peace with their email production workflow.
Let go of email client frustrations
Meditation is not about trying to turn off your thoughts or emotions, but about observing them to better understand them. "Why does Outlook render emails so badly?"
How to be mindful by meditating
Mindfulness means being present in the here and now. So our brains don't get too caught up with things we need to figure out and decisions we need to make in a given day. Like, "how do I get some proper padding around this block of text?"
Taking as little as 10 minutes a day to meditate and take some deep breaths can make a difference. You’ll feel more relaxed throughout the day, and when working on your spacing technique to also make your copy breathe.
Mindfulness meditation can positively impact mental and physical health; reducing stress, improving sleep, increasing focus, and improving communication in relationships. And, improving the quality of email templates. It’s all scientifically proven.
|
“You may think there’s no point in singing unless you are good at it, but that is like saying there is no point in doing anything at all unless you are particularly gifted at it, which is ridiculous.” — Alan W. Watts, Still the Mind: An Introduction to Meditation |
You received this email because you're seeking email design zen.
Unsubscribe


AprilWu 四一月
April Blog
April Works
Inspiration
About
Contact
Subscribe
Instagram
BandCamp
SoundCloud
Vimeo
Try
Filter
Close
Connection by April Wu
Album-Connection
Endless is not Romantic 无限不浪漫（Album-Connection）
The many many trees（Album-The End of Year）
Fruit Girls（Album-Everyone has cute friends（2019））
不说话的男孩喜欢音乐（Album-My eyes will Listen）
April Wu SoundCloud：Common Morning(Album-Connection)
Mini View- 15s之内记录生活
Deutsche Oper 2020
My Way
In the Studio
MuseumsQuartier Vienna 2018/2019
Los Angeles (Hopes & Dreams)
Exhibition views
Virtual Realty Q&A
New York Drawings
New Zealand
The Mind
Hermès
Travel Drawings
Virtual Reality Experiences
Helmet Design for Sebastian Vettel
Animations
Ted Talk
New York Times Magazine Cover
MoMA - Design and Violence
QUAD Movie Theatre
Large Format Silkscreens
Deutsche Oper 2019
Svalbard for National Geographic
WIRED
I LEGO N.Y.
The Creative Process
Biodiversity
Photo drawings
Selected Illustration Projects
Various Covers
Blueprint Coworking Space
Tribute to Maurice Sendak
Red Eye
Let it Dough
26.2 Miles, 46 Sketches
Coffee
Poster for MoMA
The Story of my App
New York Times Book Review
Erich Kästner Aphorisms
My Life In Illustration
American Illustration