text:
\section{Introduction}
Motion blurs are the most common artifacts in videos recorded using hand-held cameras.
For decades, several researchers have studied deblurring algorithms to remove motion blurs.
Their methodologies depend on whether the captured scenes are static or non-static.
Early works on single image deblurring usually assumed that the scene is static with constant depth~\cite{Cho:2009,Fergus:2006,Gupta:2010,Hirsch:2011,Shan:2008,Whyte:2012}.
The successful approaches were naturally extended to video deblurring.
In the work of Cai et al.~\cite{cai2009blind}, a multi-image deconvolution method was proposed
using sparsity of blur kernels and clear image to handle registration errors.
However, this method only enables two-dimensional translational camera motion, which generates uniform blur.
Therefore, the proposed approach cannot handle rotational camera shake,
which is the main cause of large motion blurs~\cite{Whyte:2012}.
To overcome this limitation, Li et al.~\cite{li2010generating} used a method
parameterizing spatially varying motions with 3x3 homographies,
and could handle spatially varying blurs by camera rotation.
In the work of Cho et al.~\cite{cho2012registration}, camera motion in three-dimensional space was estimated
without the assistance of specialized hardware.
In addition, non-uniform blurs by projective camera motion could be removed.
Spatially varying blurs by depth variation in a static scene was handled recently
in the works of Lee and Lee~\cite{lee2013dense} and Paramanand et al.~\cite{paramanand2013non}.

\begin{figure*}[t]
	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_intro.pdf}
	\end{center}
	\caption{(a) Blurry frame of video containing moving car. (b) Our deblurring result. (c) Our color coded optical flow.}
	\label{fig_intro}
\end{figure*}

However, previous approaches, which assume that the scene is static,
suffer from general blurs not only from camera shake but also from moving objects and depth variations
in a dynamic scene.
As parameterizing a spatially varying blur kernel in the dynamic scene is difficult with simple homography,
kernel estimation to handle dynamic scene becomes more challenging.
Therefore, several researchers have focused on restoring dynamic scenes,
which is mainly grouped into two approaches:
segmentation-based approach, and exemplar-based approach.

Segmentation-based deblurring approaches simultaneously estimate multiple motions, multiple kernels,
and associated image segments.
Cho et al.~\cite{cho2007removing} proposed a method
that segments images into multiple regions of homogeneous motions
and estimates the corresponding blur kernel as a one-dimensional Gaussian kernel.
Therefore, this method cannot handle complex motions of objects
and rotational motions of cameras that generate locally varying blurs.
Bar et al.~\cite{bar2007variational} proposed a layered model
and segmented images into two layers (foreground and background).
In addition, they estimated a linear blur kernel corresponding to a foreground layer.
Although this method can explicitly handle occluded regions using a layered model,
the kernel is limited to a one-dimensional box filter only, and only a static camera is allowed.
Wulff and Black~\cite{Wulff:ECCV:2014} extended the previous work of Bar et al.
They focused on estimating the parameters for both foreground and background motions.
However, the motions within each segment are only parameterized using the affine model,
and extending to multi-layered scenes is difficult because such task requires joint estimation of depth ordering of the layers.
In summary, segmentation-based approaches have the advantage of handling blurs by moving objects in dynamic scenes.
However, parameterizing the motions in each segment remains an issue~\cite{thkim_cvpr2014}.
That is, it fails to segment non-parametrically varying complex motions such as motions of people,
because doing so with the simple models used in~\cite{bar2007variational,Wulff:ECCV:2014} is difficult.

The works of Matsushita et al.~\cite{matsushita2006full}
and Cho et al.~\cite{cho_siggraph2012} are typical exemplar-based approaches.
These works estimate latent frames by interpolating sharp patches,
that commonly exist in a long image sequence.
Therefore, these methods disregard accurate segmentation and deconvolution, enabling the emergence of ringing artifacts.
However, the former work cannot handle blurs by moving objects. Moreover, the latter one can only treat blurs by slightly moving objects in dynamic scenes
because it searches sharp patches of a blurry patch using globally parameterized kernel with homography.
Therefore, handling fast-moving objects, which have distinct motions from backgrounds, is difficult.
Moreover, it degrades mid-frequency textures, such as grasses and trees,
because this method does not use deconvolution with spatial priors
but use interpolation to restore latent frames, which renders smooth results.

To alleviate the problems in previous works, we propose a new generalized video deblurring method
that estimates latent frames without using global motion parametrization and segmentation.
We estimate bidirectional optical flows and use them to estimate pixel-wise varying kernels.
Therefore, we can naturally handle coexisting blurs by camera shake, moving objects with complex motions,
and depth variations.
However, sharp frames are required to obtain accurate optical flows
because estimating flow fields is difficult between blurry images.
In addition, accurate optical flows are necessary to restore sharp frames.
This case is a typical chicken-and-egg problem,
and thus we simultaneously estimate both variables.
Therefore, we propose a new single energy model to solve our joint problem.
We also provide a framework and efficient techniques to optimize the model.
The result of our system is shown in Fig.\ref{fig_intro},
in which the moving car is successfully restored because accurate optical flows are jointly estimated.

By minimizing the proposed energy function,
we achieve significant improvements in numerous real challenging videos that other methods fail to do, as shown in Fig.\ref{fig_teaser}.
Furthermore, we estimate more accurate optical flows compared with
the state-of-the-art flow estimation method, that handles blurry images.
The performances are demonstrated in our extensive experiments.

\section{Generalized Video Deblurring}
Most conventional video deblurring methods suffer from the coexistence of various motion
blurs from dynamic scenes because the motions cannot be parameterized using global
or segment-wise parameterization.
To handle general blurs, we propose a new energy model using pixel-wise
kernel estimation rather than global or segment-wise parameterization.
As blind deblurring is a well-known ill-posed problem,
our energy model not only consists of data and spatial regularization terms
but also a temporal term.
The model is expressed as follows:
\begin{equation}
\begin{split}
\textbf{E} =  \textbf{E}_{data} + \textbf{E}_{temporal} + \textbf{E}_{spatial},
\end{split}
\label{equ_base}
\end{equation}
and the details of each term in~(\ref{equ_base}) are given in the following sections.

\subsection{Data Model based on Approximated Blur}
\begin{figure}[t]
	\begin{center}
		\includegraphics[width=0.9\linewidth]{figs/fig_kernel.pdf}
	\end{center}
	\vspace{-3Ex}
	\caption{(a) Bidirectional optical flows. (b) Piece-wise linear blur kernel at pixel location $\textbf{x}$.}

	\label{fig_kernel}
	\vspace{-2Ex}
\end{figure}

In conventional works, the motion blurs of each frame are approximated using
parametric models such as homographies and affine models~\cite{bar2007variational,cho_siggraph2012,li2010generating,Wulff:ECCV:2014}.
However, these kernel approximations are valid when motion blurs are parameterizable within an entire frame or segment.
Therefore, pixel-wise motion and kernel estimation are required to cope with general blurs.
We approximate the pixel-wise blur kernel using bidirectional optical flows,
in accordance with previous works~\cite{Dai:2008,thkim_cvpr2014,Portz:2012}.

Specifically, under an assumption that the velocity of the motion is constant between adjacent frames,
our blur model is expressed as follows:
\begin{equation}
\textbf{B}_i = \frac{1}{2\tau_i} \int_0^{\tau_i} H(\textbf{L}_i, t\cdot \textbf{u}_{i \rightarrow i+1}) + H(\textbf{L}_i, t\cdot \textbf{u}_{i \rightarrow i-1}) dt
\label{equ_blur_constraint},
\end{equation}
where $\textbf{u}_{i \rightarrow i+1}=(u_{i \rightarrow i+1}, v_{i \rightarrow i+1})$,
and $\textbf{u}_{i \rightarrow i-1}=(u_{i \rightarrow i-1}, v_{i \rightarrow i-1})$
denote bidirectional optical flows at frame $i$.
Blurry frame and latent frame are $\textbf{B}_i$ and $\textbf{L}_i$, respectively.
Camera duty cycle of the frame is $\tau_i$ and denotes relative exposure time~\cite{li2010generating}.
We define the image warping, $H(\textbf{L}_i, t\cdot \textbf{u}_{i \rightarrow i+1})$, which transforms the frame $\textbf{L}_i$ to $\textbf{L}_{i+t}$ when $0 \leq t \leq 1$, and $H(\textbf{L}_i, t\cdot \textbf{u}_{i \rightarrow i-1})$ transforms the frame $\textbf{L}_i$ to $\textbf{L}_{i-t}$.
Our bi-directional optical flows,
duty cycle, and the corresponding piece-wise linear kernel
used in our blur model are illustrated in Fig.~\ref{fig_kernel}.

Although our blur kernel model is simple,
our model can be justified because we treat video that has short exposure time to some extent.
Therefore, we approximate the kernel as piece-wise linear using bidirectional optical flows:
\begin{equation}
\begin{split}
&{k}_{i,x}(u,v) = \\
&\begin{cases}
\frac{\delta(u v_{i \rightarrow i+1} - v u_{i \rightarrow i+1})}{2\tau_i \|\textbf{u}_{i \rightarrow i+1}\|},&$if$~ u \in [0,\tau_i u_{i \rightarrow i+1}], v \in [0, \tau_i v_{i \rightarrow i+1}]\\
\frac{\delta(u v_{i \rightarrow i-1} - v u_{i \rightarrow i-1})}{2\tau_i \|\textbf{u}_{i \rightarrow i-1}\|},&$if$~ u \in (0,\tau_i u_{i \rightarrow i-1}], v \in (0, \tau_i v_{i \rightarrow i-1}]\\
0, &$otherwise.$
\end{cases}
\end{split},
\end{equation}
where ${k}_{i,x}(u,v)$ is the blur kernel using bidirectional optical flows at pixel location \textbf{x},
and $\delta$ denotes Kronecker delta.

Using this pixel-wise kernel approximation,
we can easily manage multiple different blurs in a frame, unlike conventional methods.
The superiority of our kernel model is shown in Fig.~\ref{fig_kernel_difference}.
Our kernel model fits blurs from differently moving objects and camera shake much better
than the conventional homography-based model.

\begin{figure}[t]
	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_kernel_difference.pdf}
	\end{center}
	\vspace{-4Ex}
	\caption{(a) Blurry frame of a video in dynamic scene. (b) Locally varying kernel using homography. (c) Our pixel-wise varying kernel using bidirectional optical flows.}
	\label{fig_kernel_difference}
	\vspace{-2Ex}
\end{figure}

Therefore, we cast pixel-wise kernel estimation problem as an optical flows estimation problem.
Discretizing the constraint (\ref{equ_blur_constraint}) gives the following data term:
\begin{equation}
\begin{split}
&\textbf{E}_{data}({\textbf{L}, \textbf{u}, \textbf{B}}) =\\ &\lambda\sum_{i} \sum_{\partial_*}  \|\partial_*  \textbf{K}_i(\tau_i, \textbf{u}_{i \rightarrow i+1}, \textbf{u}_{i \rightarrow i-1}) \textbf{L}_i -\partial_* \textbf{B}_i \|^2,
\end{split}
\label{equ_data}
\end{equation}
where the row vector of blur kernel matrix $\textbf{K}_i$, corresponding to the blur kernel at pixel $\textbf{x}$,
is the vector form of $k_{i,x}(.)$, and its elements are non-negative and their sum is equal to one.
Linear operator $\partial_*$ denotes the Toeplitz matrices corresponding to the partial
(e.g., horizontal and vertical) derivative filters.
Parameter $\lambda$ controls the weight of the data term,
and $\textbf{L}$, $\textbf{u}$, and $\textbf{B}$ denote the set of latent frames,
optical flows, and blurry frames, respectively.

\subsection{Temporal Coherence with Optical Flow Constraint}
Here, we determine that optical flows are required to estimate the pixel-wise blur kernel.
However, the proposed data term does not have conventional optical flow constraints
such as brightness constancy or gradient constancy in (\ref{equ_data}).
In general, such constraints do not hold between two blurry frames.
Thus, Portz et al.~\cite{Portz:2012} proposed a method to apply flow constraints between blurry images. Based on the commutative law of shift invariance of kernels~\cite{Jin:cvpr2005},
the authors of~\cite{Portz:2012} convolved the approximated blur of each observed image to the other image
and assumed constant brightness between them at matched points.
However, the commutativity property does not hold in theory when the kernel is not translation invariant.
Therefore, this approach only works when the motion is smooth enough.

To address this problem, we propose a new model that finds correspondences between two latent sharp images
to enable abrupt changes in motions and the corresponding kernels.
In using this model, we need not restrict our blur kernels to be shift invariant.
Our model is based on the conventional optical flow constraint between latent images,
that is, brightness constancy.
The formulation is expressed as follows:
\begin{equation}
\begin{split}
\textbf{E}_{temporal}(\textbf{L},\textbf{u}) =
 \sum_{i} \sum_{n = -N}^{N} \mu_{n}   | \textbf{L}_i(\textbf{x}) - \textbf{L}_{i + n}(\textbf{x} + \textbf{u}_{i \rightarrow i+n})  |,
\end{split}
\label{equ_temporal}
\end{equation}
where $n$ denotes the index of neighboring frames at $i$.
Constant parameter $\mu_{n}$ controls the weight of each term in the summation.
We apply the robust $L^1 $ norm to offer robustness against outliers and occlusions.

Notably, a major difference between the proposed model and the conventional optical flow estimation methods is that
our problem is a joint problem.
That is, the brightness of latent frames and optical flows need to be simultaneously estimated.
Therefore, our model simultaneously enforces the temporal coherence of latent frames
and estimates the correspondences.

\subsection{Spatial Coherence}
To alleviate the difficulties of highly ill-posed deblurring and optical flow estimation problems,
several researchers have emphasized the importance of spatial regularization.
Therefore, we also enforce spatial coherence to penalize spatial fluctuations
while allowing discontinuities in both latent frames and flow fields.
We assume that spatial priors for latent frames and optical flows are independent.
They are expressed as follows:
\begin{equation}
\begin{split}
&\textbf{E}_{spatial}(\textbf{L},\textbf{u}) = \sum_i  | \nabla \textbf{L}_i | + \sum_{n=-N}^{N} g_i(\textbf{x}) | \nabla \textbf{u}_{i \rightarrow i+n} |.
\end{split}
\label{equ_spatial}
\end{equation}
The first term in (\ref{equ_spatial}) denotes the spatial regularization term for the latent frames.
Although more sparse $L^p$ norms (e.g., $p = 0.8$) fit the gradient statistics of natural sharp images better~\cite{Krishnan:2009,Krishnan:2011,Levin:PAMI2007},
we use conventional total variation (TV) based regularization~\cite{hu_cvpr2014_depthdeblur,thkim:2013,thkim_cvpr2014},
as TV is computationally less expensive. The second term denotes the spatial smoothness term for optical flows.
We adopt edge-map coupled TV-based regularization~\cite{thkim_iccv2013optical}
to preserve discontinuities in the flow fields at edges.
Similar to~\cite{thkim_cvpr2014}, the edge-map is expressed as follows:
\begin{equation}
g_i(\textbf{x}) = \nu \exp(- (\frac {|\nabla \overline{\textbf{L}}_i|}{\sigma_I})^2),
\end{equation}
where $\nu$ controls the scale of the edge-map, parameter $\sigma_I$ controls the weight,
and $\overline{\textbf{L}}_i$ is an initial latent image in the iterative optimization framework.

\section{Optimization Framework}
 In the previous sections, we described the $\textbf{E}_{data}$, $\textbf{E}_{temporal}$, and $\textbf{E}_{spatial}$ terms.
When camera duty cycle $\tau_i$ is known, our final objective function becomes as follows:
\begin{equation}
\begin{split}
\min_{\textbf{L},\textbf{u}} &~ \lambda \sum_{i} \sum_{\partial_*}  \|\partial_*  \textbf{K}_i(\textbf{u}_{i \rightarrow i+1}, \textbf{u}_{i \rightarrow i-1}) \textbf{L}_i -\partial_* \textbf{B}_i \|^2 +\\
&\sum_{i} \sum_{n = -N}^{N} \mu_{n}  \cdot | \textbf{L}_i(\textbf{x}) - \textbf{L}_{i + n}(\textbf{x} + \textbf{u}_{i \rightarrow i+n})  | + \\
&\sum_{i} | \nabla \textbf{L}_i | + \sum_{n=-N}^{N} g_i(\textbf{x}) | \nabla \textbf{u}_{i \rightarrow i+n} |.
\end{split}
\label{equ_final}
\end{equation}
Unlike the work of Cho et al.~\cite{cho_siggraph2012}, which sequentially performs multi-phase approaches,
our model obtains a solution by minimizing a single objective function.
However, because of its non-convexity, our model is required to adopt practical optimization methods
to obtain approximated solution.
Therefore, we divide the original problem into two sub-problems and use conventional iterative
and alternating optimization techniques~\cite{Cho:2009,Wulff:ECCV:2014} to minimize the non-convex objective function.
In the following sections,
we introduce efficient solvers and describe how to estimate unknowns $\textbf{L}$ and $\textbf{u}$, with one of them being fixed.

\subsection{Sharp Video Restoration}
While the optical flows $\textbf{u}$ are fixed, corresponding blur kernels are also fixed,
and our objective function in~(\ref{equ_final}) becomes convex with respect to $\textbf{L}$, and is expressed as follows:
\begin{equation}
\begin{split}
&\min_{\textbf{L}} ~\lambda  \sum_i \sum_{\partial_*} \|\partial_*  \textbf{K}_i \textbf{L}_i -\partial_* \textbf{B}_i \|^2 +\\
& \sum_i  \sum_{n = -N}^{N} \mu_{n} \cdot | \textbf{L}_i(\textbf{x}) - \textbf{L}_{i+n}(\textbf{x}+\textbf{u}_{i \rightarrow i+n}) | +  | \nabla \textbf{L}_i |.
\end{split}
\label{equ_video_restoration}
\end{equation}
To obtain $\textbf{L}$,
we adopt the conventional convex optimization method in~\cite{Chambolle:2011},
and derive the primal-dual update scheme as follows:
\begin{equation}\begin{cases}
\textbf{s}^{m+1}_i = \frac {\textbf{s}^m_i + \eta_L  \textbf{A} \textbf{L}_i^m}{\max(\textbf{1}, ~\text{abs}(\textbf{s}^m_i + \eta_L \textbf{A} \textbf{L}_i^m ) )}  \\
\textbf{q}^{m+1}_{i,n} = \frac {\textbf{q}^m_{i,n} + \eta_L \mu_n \textbf{D}_{i,n}
	\begin{bmatrix}
	\scriptsize\textbf{L}_i^m\\
	\scriptsize\textbf{L}_{i+n}^{m}
	\end{bmatrix}}
{\max(\textbf{1}, ~\text{abs}(\textbf{q}^m_{i,n} + \eta_L
	\mu_n \textbf{D}_{i,n}
	\begin{bmatrix}
	\scriptsize\textbf{L}_i^m\\
	\scriptsize\textbf{L}_{i+n}^{m}
	\end{bmatrix} )
	)}  \\

\begin{split}
&\textbf{L}_i^{m+1} = \arg \min_{\textbf{L}_i}  \lambda \sum_{\partial_*}  (\partial_* \textbf{K}_i\textbf{L}_i - \partial_*\textbf{B}_i)^2 +\\
& {\frac{(\textbf{L}_i - (\textbf{L}_i^m - \epsilon_L( \textbf{A}^T\textbf{s}_i^{m+1} + \sum_{n=-N}^N \mu_n{\textbf{D}_{i,n}}^T \textbf{q}_{i,n}^{m+1} )))^2}{2\epsilon_L}},
\end{split}
\end{cases}
\label{equ_update_L}
\end{equation}
where $m\geq0$ indicates the iteration number,
and, $\textbf{s}_i$ and $\textbf{q}_{i,n}$ denote the dual variables.
Parameters $\eta_L$ and $\epsilon_L$ denote the update steps.
A linear operator $\textbf{A}$ calculates the spatial difference between neighboring pixels,
and another operator $\textbf{D}_{i,n}$ calculates the temporal differences
between $\textbf{L}_i(\textbf{x})$ and $\textbf{L}_{i+n}(\textbf{x}+\textbf{u}_{i \rightarrow i+n})$.
To update the primal variable and obtain $\textbf{L}_i^{m+1}$ in~(\ref{equ_update_L}),
we apply the conjugate gradient method to optimize the quadratic function.

\subsection{Optical Flows Estimation}
While the latent frames $\textbf{L}$ are fixed, temporal coherence term $\textbf{E}_{temporal}$ becomes convex
but the data term $\textbf{E}_{data}$ remains non-convex.
Therefore, we define a non-convex fidelity function $\rho(.)$ as follows:
\begin{equation}
\begin{split}
\rho(\textbf{x},\textbf{u})= \lambda &\sum_i \sum_{\partial_*}  \| \partial_* \textbf{K}_i(\textbf{u}_{i \rightarrow i+1}, \textbf{u}_{i \rightarrow i-1}) \textbf{L}_i - \partial_* \textbf{B}_i \|^2 +\\
 & \sum_i \sum_{n=-N}^N \mu_n \cdot | \textbf{L}_i(\textbf{x}) - \textbf{L}_{i+n}(\textbf{x}+\textbf{u}_{i \rightarrow i+n}) |.
\end{split}
\end{equation}
To find the optimized values of optical flows $\textbf{u}$,
we first convexify the non-convex function $\rho(.)$ by applying the first-order Taylor expansion.
Similar to~\cite{thkim_cvpr2014}, we linearize the function near an initial $\textbf{u}_0$ in the iterative process as follows:
\begin{equation}
\rho(\textbf{x},\textbf{u}) \approx \rho(\textbf{x},\textbf{u}_0) + \nabla \rho(\textbf{x},\textbf{u}_0)^T(\textbf{u}-\textbf{u}_0).
\end{equation}
Therefore, our approximated convex function for optical flows estimation is expressed as follows:
\begin{equation}
\begin{split}
\min_{\textbf{u}} \rho(\textbf{x},\textbf{u}_0) +  \nabla \rho(\textbf{x}, \textbf{u}_0)^T(\textbf{u}-\textbf{u}_0) + \sum_i\sum_{n=-N}^{N} g_i(\textbf{x}) |\nabla \textbf{u}_{i\rightarrow i+n}|.
\end{split}
\label{equ_convex_data}
\end{equation}
~Next, we apply the convex optimization technique in~\cite{Chambolle:2011}
to the approximated convex function (\ref{equ_convex_data}),
and the primal-dual update process is expressed as follows:
\begin{equation}\begin{cases}
\textbf{p}_{i,n}^{m+1} = \frac {\textbf{p}_{i,n}^m + \eta_u (\textbf{G}_i\textbf{A}) \textbf{u}_{i \rightarrow i+n}^m}{\max(\textbf{1},  ~\text{abs}(\textbf{p}_{i,n}^m + \eta_u (\textbf{G}_i\textbf{A}) \textbf{u}_{i \rightarrow i+n}^m))}  \\
\textbf{u}_{i \rightarrow i+n}^{m+1} = (\textbf{u}_{i \rightarrow i+n}^m - \epsilon_u(\textbf{G}_i\textbf{A})^T \textbf{p}_{i,n}^{m+1}) - \epsilon_u \nabla_{i,n}\rho(\textbf{x},\textbf{u}_0),
\end{cases}
\label{equ_update_motion}
\end{equation}
where $\textbf{p}_{i,n}$ denotes the dual variable of $\textbf{u}_{i \rightarrow i + n}$ on the vector space
and the diagonal matrix $\textbf{G}_i$ is the weighting matrix denoted as $\textbf{G}_i= \text{diag}(g_i(\textbf{x}))$.
Parameters $\eta_u$ and $\epsilon_u$ denote the update steps
and $\nabla_{i,n}\rho(\textbf{x},\textbf{u}_0)$ means $\frac{\partial \rho(\textbf{x},\textbf{u})}{\partial \textbf{u}_{i \rightarrow i + n}} | \textbf{u}_0$.

\section{Implementation Details}
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=\linewidth]{figs/fig_corr.pdf}
	\end{center}
	\caption{Temporally consistent optical flows over three frames.}
	\label{fig_corr}
	\vspace{-3Ex}
\end{figure}

To handle large blurs and guide fast convergence, we implement our algorithm on the traditional coarse-to-fine framework with empirically determined parameters.
We use $\lambda = 250$ for our most experiments,
and other parameters are determined as $\mu_n = \lambda$, $\nu = 0.08\lambda$, $\sigma_I = \frac{25}{255}$, and $N = 2$.
In the coarse-to-fine framework, we build image pyramid with 17 levels
for a high-definition(1280x720) video, the scale factor is 0.9,
and use bi-cubic interpolation to propagate both the optical flows and latent frames to the next pyramid level.

Moreover, to reduce the number of unknowns in optical flows,
we only estimate $\textbf{u}_{i \rightarrow i+1 }$ and $\textbf{u}_{i \rightarrow i-1 }$.
We approximate $\textbf{u}_{i \rightarrow i+2 }$ using $\textbf{u}_{i \rightarrow i+1 }$ and $\textbf{u}_{i+1 \rightarrow i+2 }$.
For example, it satisfies, $\textbf{u}_{i \rightarrow i+2} = \textbf{u}_{i \rightarrow i+1} + \textbf{u}_{i+1 \rightarrow i+2}$, as illustrated in Fig.~\ref{fig_corr}, and we can easily apply this for $n \neq 1$.

The overall process of our algorithm is in Algorithm \ref{algorithm_overall}.
Further details on estimating the duty cycle $\tau_i$
and post-processing step that reduces artifacts are given below.

\begin{algorithm}[h]
	\footnotesize
	\caption{Overview of the proposed method}
	\begin{algorithmic}[1]
		\renewcommand{\algorithmicrequire}{\textbf{Input:}}
		\renewcommand{\algorithmicensure}{\textbf{Output:}}
		\REQUIRE Blurry frames $\textbf{B}$
		\ENSURE  Latent frames $\textbf{L}$ and optical flows $\textbf{u}$
		\STATE {Initialize duty cycle ${\tau_i}$ and optical flows \textbf{u}. (Sec. 4.1)}
		\STATE {Build image pyramid.}
		\STATE {Restore \textit{sharp video} with fixed \textbf{u}. (Sec. 3.1)}
		\STATE {Estimate \textit{optical flows} with fixed \textbf{L}. (Sec. 3.2)}
		\STATE {Detect occlusion and perform post-processing. (Sec 4.2)}
		\STATE {Propagate variables to the next pyramid level if exists.}
		\STATE {Repeat steps 3-6 from coarse to fine pyramid level.}
	\end{algorithmic} \label{algorithm_overall}
\end{algorithm}

\subsection{Duty Cycle Estimation}
In this study, we assume that the camera duty cycle $\tau_i$ is known for every frame.
We can obtain the duty cyle from public SDK, when we use Kinect to capture RGB videos.
However, when we conduct deblurring with conventional data sets, which do not provide exposure information,
we apply the technique proposed in~\cite{cho_siggraph2012} to estimate the duty cycle.
Contrary to the original method in~\cite{cho_siggraph2012},
we use optical flows instead of homographies to obtain initially approximated blur kernels.
Therefore, we first estimate flow fields from blurry images with~\cite{wedel2009improved}, which runs in near real-time.
We then use them as initial flows and approximate the kernels to estimate the duty cycle.

\subsection{Occlusion Detection and Refinement}
Our piece-wise linear kernel naturally results in approximation error
and it causes problems such as ringing artifacts.
Moreover, our data model in (\ref{equ_data}),
and temporal coherence model in (\ref{equ_temporal}) are invalid at occluded regions.

To reduce such artifacts from kernel errors and occlusions, we use spatio-temporal filtering as a post-processing:
\begin{equation}
\textbf{L}^{m+1}_i(\textbf{x})^ = \frac{1}{Z(\textbf{x})}\sum_{n=-N}^N \sum_\textbf{y} w_{i,n}(\textbf{x},\textbf{y})\cdot \textbf{L}_{i+n}^m(\textbf{y}),
\label{equ_spatio_temporal_filter}
\end{equation}
where \textbf{y} denotes a pixel in the 3x3 neighboring patch at location $(\textbf{x}+\textbf{u}_{i \rightarrow i+n})$
and $Z$ is the normalization factor (e.g. ${Z(\textbf{x})} = \sum_{n=-N}^N \sum_\textbf{y} w_{i,n}(\textbf{x},\textbf{y})$).
Notably, we enable $n=0$ in (\ref{equ_spatio_temporal_filter}) for spatial filtering.
Our occlusion-aware weight $w_{i,n}$ is defined as follows:
\begin{equation}
w_{i,n}(\textbf{x},\textbf{y}) = o_{i,n}(\textbf{x},\textbf{y}) \cdot \exp(- \frac{  \| P_i(\textbf{x}) - P_{i+n}(\textbf{y}) \|^2 } {2\sigma_w^2} ),
\end{equation}
where occlusion state $o_{i,n}(\textbf{x},\textbf{y}) \in \{0, 0.5, 1\} $ is determined using the method proposed in~\cite{thkim_iccv2013optical}.
The 5x5 patch $P_i(\textbf{x})$ is centered at $\textbf{x}$ in frame $i$.
The similarity control parameter $\sigma_w$ is fixed as $\sigma_w = 25/255$.

\section{Experimental Results}

\begin{figure*}[t]
	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_comp_exemplar1.pdf}
	\end{center}
		\vspace{-3Ex}
	\caption{\textbf{Left to right:} Blurry frames of dynamic scenes, deblurring results of \cite{cho_siggraph2012}, and our results.}
	\label{fig_comp_exemplar1}

	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_comp_exemplar2.pdf}
	\end{center}
		\vspace{-3Ex}
	\caption{\textbf{Left to right:} Blurry frame, deblurring result of \cite{cho_siggraph2012}, and ours.}
	\label{fig_comp_exemplar2}

	%

	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_com_segmentation.pdf}
	\end{center}
		\vspace{-3Ex}
	\caption{Comparison with segmentation-based approach. \textbf{Left to right:} Blurry frame, result of \cite{Wulff:ECCV:2014}, and ours.}
	\label{fig_com_segmentation}
\end{figure*}

In what follows, we demonstrate the superiority of the proposed method.
(For more results, see the supplementary video.)

First, we compare our deblurring results with
those of the state-of-the art exemplar based method \cite{cho_siggraph2012}
with the videos used in \cite{cho_siggraph2012}.
As shown in Fig. \ref{fig_comp_exemplar1}, the captured scenes are dynamic and contain multiple moving objects.
The method \cite{cho_siggraph2012} fails in restoring the moving objects,
because the object motions are large and distinct from the backgrounds.
By contrast, our results show better performances in deblurring moving objects and backgrounds.
This exemplar-based approach also fails in handling large blurs, as shown in Fig. \ref{fig_comp_exemplar2},
as the initially estimated homographies in the largely blurred images are inaccurate.
Moreover, this approach renders excessively smooth results for mid-frequency textures such as trees,
as the method is based on interpolation without spatial prior for latent frames.

Next, we compare our method with the state-of-the-art segmentation-based approach \cite{Wulff:ECCV:2014}.
In Fig.~\ref{fig_com_segmentation}, the captured scene is a bi-layer and used in \cite{Wulff:ECCV:2014}.
Although the bi-layer scene is a good example to verify the performance of the layered model,
inaccurate segmentation near the boundaries causes serious artifacts in the restored frame.
By contrast, our method does not depend on accurate segmentation
and thus restores the boundaries much better than the layered model.

In Fig.~\ref{fig_comp_optical_flow}, we quantitatively compare the optical flow accuracies with \cite{Portz:2012}
on synthetic blurry images.
Although \cite{Portz:2012} proposed to handle blurry images in optical flow estimation,
its assumption does not hold in motion boundaries, which are very important for deblurring.
Therefore, their optical flow is inaccurate in the motion boundaries of moving objects.
However, our model enables abrupt changes of motions and thus performs better than the previous model.

Moreover, we show the deblurring results
with and without using the temporal coherence term in (\ref{equ_temporal}),
and verify that our temporal coherence model significantly reduces ringinig artifacts near the edges in Fig.~\ref{fig_kinect_ipiu}.

Other deblurring results from numerous real videos are shown in Fig.~\ref{fig_comp_self}.
Notably, our model successfully restores the face which has highly non-uniform blurs
because the person moves rotationally (Fig.~\ref{fig_comp_self}(e)).

\begin{figure}[t]
	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_comp_optical_flow.pdf}
	\end{center}

	\caption{EPE denotes average end point error. (a) Color coded ground truth optical flow between blurry images. (b) Optical flow estimation result of \cite{Portz:2012}. (c) Our result.}
	\label{fig_comp_optical_flow}

	%

	\vspace{5Ex}
	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_kinect_ipiu.pdf}
	\end{center}
	\caption{(a) Real blurry frame of a video. (b) Our deblurring result without using $\textbf{E}_{temporal}$. (c) Our deblurring result with $\textbf{E}_{temporal}$.}
	\label{fig_kinect_ipiu}

\end{figure}

\begin{figure}[t]
	\begin{center}
		\includegraphics[width=\linewidth]{figs/fig_comp_self.pdf}
	\end{center}
	\vspace{-3Ex}
	\caption{\textbf{Left to right:} Numerous real blurry frames and our deblurring results. (a)-(b) Data sets used in \cite{cho_siggraph2012}. (c)-(e) Captured RGB data sets using kinect.}
	\label{fig_comp_self}
\end{figure}

\section{Conclusions}
In this study, we introduced a novel method that removes general blurs in dynamic scenes,
which conventional methods fail to do.
By estimating a pixel-wise kernel using optical flows, we handled general blurs.
Thus, we proposed a new energy model that estimates optical flows and latent frames, jointly.

We also provided a framework and efficient solvers to minimize the energy function
and achieved significant improvements in removing general blurs in dynamic scenes.

\clearpage
\section*{Acknowledgments}
This research was supported in part by the MKE (The Ministry of Knowledge Economy), Korea and Microsoft Research, under IT/SW Creative research program supervised by the NIPA (National IT Industry Promotion Agency) (NIPA-2013-H0503-13-1041), and in part by the National Research Foundation of Korea (NRF) grant funded by the Ministry of Science, ICT \& Future Planning (MSIP) (No. 2009-0083495)
{\small
\bibliographystyle{ieee}

redpajama_set_name: RedPajamaArXiv


text:
HAT-P-24 es una estrella enana F8 a unos 400 parsecs de distancia. El HATNet Project descubrió un planeta con el método de tránsito, el HAT-P-24b que es un Júpiter caliente típico que la orbita en tan solo 3 días.

Sistema planetario
En 2010, el Proyecto HATNet anunció el descubrimiento de un planeta extrasolar gigante de gas tipo Júpiter caliente en órbita alrededor de esta estrella. Siguiendo el esquema de designación usado por el Proyecto HATNet, la estrella se designó como HAT-P-24, y el planeta mismo como HAT-P-24b.

Referencias

Enlaces externos
 http://www.astro.keele.ac.uk/jkt/tepcat/planets/HAT-P-24.html
 http://exoplanet.eu/star.php?st=HAT-P-24
 http://www.odyssespace.fr/exoplanetes-liste.php

Estrellas de tipo F
Sistemas planetarios
Constelación de Géminis

redpajama_set_name: RedPajamaWikipedia


text:
Griffin shipwreck search
From LSJ
Five months after divers searched a remote section of Lake Michigan for a mysterious 17th century ship and retrieved a wooden slab the group leader believes is part of the vessel, it's still uncertain whether they are on the right track.
The object of the weeklong mission in June was the Griffin, built by the legendary French explorer La Salle, which disappeared in 1679 with its six-member crew, becoming the oldest known shipwreck in the upper Great Lakes.
The dive team dug a deep hole at the base of the nearly 20-foot-long timber, which was wedged vertically into the lake floor, hoping other wreckage was beneath. To their disappointment, they found nothing.
Since then, the beam has undergone a CT scan at a Michigan hospital. A wooden sliver has been sent to a Florida lab for carbon-14 analysis. Three French experts who participated in the expedition have completed a report.
Others are in the works, as scientists who have examined the slab or data from the tests compile their findings. Thus far, most have declined to take a position on whether the Griffin has been found.
"Based on the totality of the scientific results thus far, as well as historical research, to this point there are still two valid theories" about the wooden beam, said Ken Vrana, who served as project manager for the expedition.
It could be part of a ship, or a "pound net stake" — an underwater fishing apparatus used in the Great Lakes in the 19th and early 20th centuries, he said.
Previous : China to recover ancient shipwreck's treasures
Next : Shipwreck wine draws buyers at auction
Griffin shipwreck
Turkey opens Gallipoli as an 'underwater museum'
Hulking hulls of mighty warships greet divers off Turkey's western shore, testament to a World War I battle that gave birth to nations...
El segundo tesoro de la 'Mercedes'
España rescata el cargamento de miles de objetos que la firma cazatesoros Odyssey abandonó durante el expolio de la fragata, hundida en 1804...
Diving into the past
As he slipped through the kelp forest to the bottom of the Atlantic Ocean, Kamau Sadiki's eyes hooked onto something resembling the item he and fellow divers...
Greece opens first underwater museum
Emerging from the crystal-clear turquoise waters of the Aegean Sea, Hans-Juergen Fercher has just returned from his fourth dive...
Egypt's Submerged Site of Thonis-Heracleion
Divers have discovered rare remains of a military vessel in the ancient sunken city of Thônis-Heracleion - once Egypt's largest port on the Mediterranean...

redpajama_set_name: RedPajamaCommonCrawl


text:
from azurelinuxagent.common.exception import ExtensionError, ExtensionErrorCodes
from azurelinuxagent.common.future import ustr
from azurelinuxagent.common.utils.extensionprocessutil import format_stdout_stderr, read_output, \
    wait_for_process_completion_or_timeout, handle_process_completion
from tests.tools import AgentTestCase, patch
import os
import shutil
import subprocess
import tempfile

class TestProcessUtils(AgentTestCase):
    def setUp(self):
        AgentTestCase.setUp(self)
        self.tmp_dir = tempfile.mkdtemp()
        self.stdout = tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b")
        self.stderr = tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b")

        self.stdout.write("The quick brown fox jumps over the lazy dog.".encode("utf-8"))
        self.stderr.write("The five boxing wizards jump quickly.".encode("utf-8"))

    def tearDown(self):
        if self.tmp_dir is not None:
            shutil.rmtree(self.tmp_dir)

    def test_wait_for_process_completion_or_timeout_should_terminate_cleanly(self):
        process = subprocess.Popen(
            "date",
            shell=True,
            cwd=self.tmp_dir,
            env={},
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE)

        timed_out, ret = wait_for_process_completion_or_timeout(process=process, timeout=5)
        self.assertEquals(timed_out, False)
        self.assertEquals(ret, 0)

    def test_wait_for_process_completion_or_timeout_should_kill_process_on_timeout(self):
        timeout = 5
        process = subprocess.Popen(
            "sleep 1m",
            shell=True,
            cwd=self.tmp_dir,
            env={},
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            preexec_fn=os.setsid)

        # We don't actually mock the kill, just wrap it so we can assert its call count
        with patch('azurelinuxagent.common.utils.extensionprocessutil.os.killpg', wraps=os.killpg) as patch_kill:
            with patch('time.sleep') as mock_sleep:
                timed_out, ret = wait_for_process_completion_or_timeout(process=process, timeout=timeout)

                # We're mocking sleep to avoid prolonging the test execution time, but we still want to make sure
                # we're "waiting" the correct amount of time before killing the process
                self.assertEquals(mock_sleep.call_count, timeout)

                self.assertEquals(patch_kill.call_count, 1)
                self.assertEquals(timed_out, True)
                self.assertEquals(ret, None)

    def test_handle_process_completion_should_return_nonzero_when_process_fails(self):
        process = subprocess.Popen(
            "ls folder_does_not_exist",
            shell=True,
            cwd=self.tmp_dir,
            env={},
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE)

        timed_out, ret = wait_for_process_completion_or_timeout(process=process, timeout=5)
        self.assertEquals(timed_out, False)
        self.assertEquals(ret, 2)

    def test_handle_process_completion_should_return_process_output(self):
        command = "echo 'dummy stdout' && 1>&2 echo 'dummy stderr'"
        with tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b") as stdout:
            with tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b") as stderr:
                process = subprocess.Popen(command,
                                           shell=True,
                                           cwd=self.tmp_dir,
                                           env={},
                                           stdout=stdout,
                                           stderr=stderr,
                                           preexec_fn=os.setsid)

                process_output = handle_process_completion(process=process,
                                                           command=command,
                                                           timeout=5,
                                                           stdout=stdout,
                                                           stderr=stderr,
                                                           error_code=42)

        expected_output = "[stdout]\ndummy stdout\n\n\n[stderr]\ndummy stderr\n"
        self.assertEquals(process_output, expected_output)

    def test_handle_process_completion_should_raise_on_timeout(self):
        command = "sleep 1m"
        timeout = 5
        with tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b") as stdout:
            with tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b") as stderr:
                with patch('time.sleep') as mock_sleep:
                    with self.assertRaises(ExtensionError) as context_manager:
                        process = subprocess.Popen(command,
                                                   shell=True,
                                                   cwd=self.tmp_dir,
                                                   env={},
                                                   stdout=stdout,
                                                   stderr=stderr,
                                                   preexec_fn=os.setsid)

                        handle_process_completion(process=process,
                                                  command=command,
                                                  timeout=timeout,
                                                  stdout=stdout,
                                                  stderr=stderr,
                                                  error_code=42)

                    # We're mocking sleep to avoid prolonging the test execution time, but we still want to make sure
                    # we're "waiting" the correct amount of time before killing the process and raising an exception
                    self.assertEquals(mock_sleep.call_count, timeout)

                    self.assertEquals(context_manager.exception.code, ExtensionErrorCodes.PluginHandlerScriptTimedout)
                    self.assertIn("Timeout({0})".format(timeout), ustr(context_manager.exception))

    def test_handle_process_completion_should_raise_on_nonzero_exit_code(self):
        command = "ls folder_does_not_exist"
        error_code = 42
        with tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b") as stdout:
            with tempfile.TemporaryFile(dir=self.tmp_dir, mode="w+b") as stderr:
                with self.assertRaises(ExtensionError) as context_manager:
                    process = subprocess.Popen(command,
                                               shell=True,
                                               cwd=self.tmp_dir,
                                               env={},
                                               stdout=stdout,
                                               stderr=stderr,
                                               preexec_fn=os.setsid)

                    handle_process_completion(process=process,
                                              command=command,
                                              timeout=4,
                                              stdout=stdout,
                                              stderr=stderr,
                                              error_code=error_code)

                self.assertEquals(context_manager.exception.code, error_code)
                self.assertIn("Non-zero exit code:", ustr(context_manager.exception))

    def test_read_output_it_should_return_no_content(self):
        with patch('azurelinuxagent.common.utils.extensionprocessutil.TELEMETRY_MESSAGE_MAX_LEN', 0):
            expected = "[stdout]\n\n\n[stderr]\n"
            actual = read_output(self.stdout, self.stderr)
            self.assertEqual(expected, actual)

    def test_read_output_it_should_truncate_the_content(self):
        with patch('azurelinuxagent.common.utils.extensionprocessutil.TELEMETRY_MESSAGE_MAX_LEN', 10):
            expected = "[stdout]\nThe quick \n\n[stderr]\nThe five b"
            actual = read_output(self.stdout, self.stderr)
            self.assertEqual(expected, actual)

    def test_read_output_it_should_return_all_content(self):
        with patch('azurelinuxagent.common.utils.extensionprocessutil.TELEMETRY_MESSAGE_MAX_LEN', 50):
            expected = "[stdout]\nThe quick brown fox jumps over the lazy dog.\n\n" \
                       "[stderr]\nThe five boxing wizards jump quickly."
            actual = read_output(self.stdout, self.stderr)
            self.assertEqual(expected, actual)

    def test_read_output_it_should_handle_exceptions(self):
        with patch('azurelinuxagent.common.utils.extensionprocessutil.TELEMETRY_MESSAGE_MAX_LEN', "type error"):
            actual = read_output(self.stdout, self.stderr)
            self.assertIn("Cannot read stdout/stderr", actual)

    def test_format_stdout_stderr00(self):
        """
        If stdout and stderr are both smaller than the max length,
        the full representation should be displayed.
        """
        stdout = "The quick brown fox jumps over the lazy dog."
        stderr = "The five boxing wizards jump quickly."

        expected = "[stdout]\n{0}\n\n[stderr]\n{1}".format(stdout, stderr)
        actual = format_stdout_stderr(stdout, stderr, 1000)
        self.assertEqual(expected, actual)

    def test_format_stdout_stderr01(self):
        """
        If stdout and stderr both exceed the max length,
        then both stdout and stderr are trimmed equally.
        """
        stdout = "The quick brown fox jumps over the lazy dog."
        stderr = "The five boxing wizards jump quickly."

        # noinspection SpellCheckingInspection
        expected = '[stdout]\ns over the lazy dog.\n\n[stderr]\nizards jump quickly.'
        actual = format_stdout_stderr(stdout, stderr, 60)
        self.assertEqual(expected, actual)
        self.assertEqual(60, len(actual))

    def test_format_stdout_stderr02(self):
        """
        If stderr is much larger than stdout, stderr is allowed
        to borrow space from stdout's quota.
        """
        stdout = "empty"
        stderr = "The five boxing wizards jump quickly."

        expected = '[stdout]\nempty\n\n[stderr]\ns jump quickly.'
        actual = format_stdout_stderr(stdout, stderr, 40)
        self.assertEqual(expected, actual)
        self.assertEqual(40, len(actual))

    def test_format_stdout_stderr03(self):
        """
        If stdout is much larger than stderr, stdout is allowed
        to borrow space from stderr's quota.
        """
        stdout = "The quick brown fox jumps over the lazy dog."
        stderr = "empty"

        expected = '[stdout]\nr the lazy dog.\n\n[stderr]\nempty'
        actual = format_stdout_stderr(stdout, stderr, 40)
        self.assertEqual(expected, actual)
        self.assertEqual(40, len(actual))

    def test_format_stdout_stderr04(self):
        """
        If the max length is not sufficient to even hold the stdout
        and stderr markers an empty string is returned.
        """
        stdout = "The quick brown fox jumps over the lazy dog."
        stderr = "The five boxing wizards jump quickly."

        expected = ''
        actual = format_stdout_stderr(stdout, stderr, 4)
        self.assertEqual(expected, actual)
        self.assertEqual(0, len(actual))

    def test_format_stdout_stderr05(self):
        """
        If stdout and stderr are empty, an empty template is returned.
        """

        expected = '[stdout]\n\n\n[stderr]\n'
        actual = format_stdout_stderr('', '', 1000)
        self.assertEqual(expected, actual)

redpajama_set_name: RedPajamaGithub


Прародителей заметно меньше чем дворфов. Поэтому эффективнее начать с великанов, а дворфов набить "за компанию".
После выполнения Памятник павшим, Ньормельд строит Рог Ходира (координаты 64.2 65). Если вы не видите его после выполнения квеста, то нужно уйти из Дун Ниффилема и вернутся, тогда данные обновятся.
За квест дают уже 455 репутации.
Thunderfall is the frozen battle scene to the north of Frostfield Lake and northeast of Dun Niffelem. Use Рог Ходира over Ниффелемский прародитель, Неупокоенный дворф из клана Зиморожденных and Неупокоенный воин клана Зиморожденных corpses to receive quest credit. Both ghosts and warriors count for the Restless Frostborn credit. Make sure you loot before you use the horn, though, as the corpse will disappear.
You are able to blow the horn on tapped Niffelem folk, so if someone doesn't plan on blowing the horn after killing the thing you can use it on theirs.
And equally, keep an eye out for griefers. The 5s CD on the horn can mean killing multiple mobs is a bad idea.
This is available once you are neutral with the Sons of Hodir.
Only becomes available after completeing In Memoriam.
Judging by the quest name, if this is what dailies have become, I'd rather stay poor.
After you've blown his horn you can polish his helmet.
Either way, I'm highly amused.
One of two (or more) dailies that is so hard to do if you are on a high populated server.
There are maybe 5 giants at most around the area. That's nice, but the problem is they got a low spawn rate and there isn't just only one person there doing the daily.
Not to mention people can easily come up to your mob after you killed it and ninja it before you blow the horn.
We have heard the screams of your mother as they echoed as they echoed from across the valley.
You have done our people a service this day, little .
As of Sunday, 7 December 2008 the error message "Target is tapped." appears if you attempt to use your horn on a Frostborn or Giant that you or a group member did not kill. The sound of the horn will still play, but the effect will not occur.
"SPAWN MORE OVERLORDS..." uh, I mean "FOREFATHERS!"
These dailies can be done at level 78, once you hit the required reputation.
Retarded quest at peak times. Too few forefather spawns, too long spawn time, griefers able to steal your kill. Whoever designed this one is either an idiot or a sadist.
Doing this quest left a sour taste in my mouth.
This quest is AWFUL if you're on something of a populated server.
You Blow his horn... 10 times a day... I'm sorry but the rep just isnt worth it... I'm gonna go wash my mouth now.
It appears that since the last patch, the mobs spawn more frequently. I haven't had any problems getting 10 mobs, even with many people doing the quest at the same time. The respawn was almost too fast, a new forefather kept spawning while I was still fighting the origional one at that spot.
You said, "grind." Way to turn an otherwise totally family-friendly thread into some sort of perv-fest. Perv.
Note to fellow Shamans, everytime you blow the horn on a corpse, you will proc water shield.
I think these saucy references are inappropriate. "Immature" is what I'd call it. Of course I am in the minority.
They should rename these quests: 'Being Hodir's B i t c h' . If you swallow you get extra.
I'm friendly to Sons of Hodir, but can't get the quest. I've already done the other quest named Polishing the Helm, which should unlock this quest. Bugged, or is there something I've forgotten ?
I had to check the wowhead comments on this because I knew I wasn't the only one feeling a bit dirty doing Hodir dailies.
Disturbing. You 'blow the horn' over dead corpses which miraculously disappear when you do.
That plus you can't blow the horn on corpses that have already been tapped. Think about it.
seriously, next there's gonna be a quest telling us to Teabag a bunch of Dragons, or go Spoon a few wolves.
man think of how many times this guy gets his horn blown a day.
Make sure you loot 'em before you blow 'em.
Me thinks Hodir should get a GF.
As of 3.3, the new quest tracking feature incorrectly sends you back to King Jokkum with this.
as of 3.3.0 the horn does not appear after completing A Monument to the Fallen.
Thank you for this post. Waited about 15 minutes. No horn. Leave and return is the key.
If you're running around thinking "where is it!", it take a minute to appear, at least, it did for me.
Убейте 5 ниффелемских прародителей и 5 неупокоенных дворфов из клана Зиморожденных в Громовержье.
Вы сослужили хорошую службу великанам Дун Ниффелема. Без вашей помощи они бы никогда не построили этот монумент.
Вы молча смотрите на монумент и осмысляете все его значение. Ваше сердце переполняется чувствами... а в голове появляются мысли и образы... вы чувствуете, как некая неодолимая сила побуждает вас к действию.
Потом это ощущение проходит и вы понимаете, что надо делать. Беспокойные духи Громовержья должны упокоиться с миром.
Когда вы отходите от монумента, вы вдруг обнаруживаете у себя в руках эфирный рог.
Вас переполняет чувство покоя и удовлетворения от завершенного дела. Вы точно знаете, что беспокойные духи Громовержья упокоились с миром и их мучения закончились.


Could be labelled Potato Gratin on Crack I guess…totally amazing, totally easy, and totally French decadence! I would serve this as a side, or with a beautiful green salad as a fantastic lunch. All stories about Tartiflette lead to great bacon, and great cheese. If you have those, this is a breeze....don't be tempted to go cheap on either... It is very rich and you need the bonus of the best you can afford!
I think I would do this as individual serves next time for best presentation...and easier to keep some left overs as well! Enjoy!
Place prepared potatoes into Varoma dish and tray and water into Thermomix bowl. Steam 25 min/Varoma/speed 3.
Remove potatoes and cool slightly. Drain water from bowl.
Place onion, butter, wine and salt into Thermomix bowl. Chop 4 sec/speed 5. Saute 8 min/Varoma/speed 1.
Butter a large pie dish, casserole dish or several individual ramekin dishes.
Now, for the hard part…. Lay potatoes, lardons, sauteed onions, in prepared dish. Cut the cheese into pieces and dot the surface of everything else. Bake until golden and fragrant…about 20-25 minutes.


text:
Fort Phooey: Wiley in the Studio
William T. Wiley (American, born 1937), Eerie Grotto? Okini, 1982, color block print on rag paper, 20 7/8 x 27 3/8 inches, Montgomery Museum of Fine Arts, Montgomery, Alabama, Association Purchase, 1999.6
Step inside the studio of the late William T. Wiley. Fort Phooey: Wiley in the Studio recreates the sights and sounds of his iconic studio—a meeting place for generations of Bay Area artists—combining over fifty original works from di Rosa's collection with archival objects on loan from the artist's estate. The "Fort Phooey" part of the exhibition title is taken from a little-known work in the di Rosa collection titled "Fort Phooey Mandala." Wiley created the mandala as a meditative exercise in his studio, and he also referred to his studio as "Fort Phooey."
Wiley's Marin County studio was perhaps his greatest work of art. Densely layered with words, images and objects that meandered into his work and back out again, it was nothing less than an immersive assemblage. "Being in the studio was like entering into a Wiley artwork," explains curator Kate Eilertsen. "The effect could be dizzying. Every surface was covered with scrawled wordplay, found objects and other elements of his distinctive visual vocabulary."
Inviting visitors into Wiley's studio, the exhibition draws attention to the legacy of his artistic practice. "Wiley's studio practice—rooted in Zen mysticism and an ethos of open-ended play—was imitated by artists ranging from Bruce Nauman to Deborah Butterfield," states Eilertsen. "To understand his profound impact, it is necessary to grapple with the legacy of his practice as well as the work itself."
The exhibition is both immersive and participatory, and will include such details as Wiley's final painting he was working on at the time of his death earlier this year; his workbench; photographs of him with friends and family; works by artists who influenced Wiley's work including Wally Hedrick; musical instruments he encouraged visitors to play when they visited; National Public Radio (NPR) live via radio; and objects such as chalkboards and dunce caps that often appeared in his two-dimensional and three-dimensional work. Visitors will be prompted to create their own artworks and add them to a community wall inside the exhibition space.
Member's Reception on August 20, 4:30-6:30 PM
Making Art with Everyone / Haciendo arte con todos on September 25 and October 23
Why is it called Fort Phooey?
"Fort Phooey" is taken from a little-known work in the di Rosa collection titled "Fort Phooey Mandala." Wiley created the mandala as a meditative exercise in his studio, and he also referred to his studio as "Fort Phooey."


text:
Playing Happy Families by Julian Symons
March 13, 2021 Helen M Francini
Mysterious (first), 1995
The Midway clan has been a happy family for thirty years when daughter Jenny disappears leaving no trace. As Detective Superintendent Catchpole investigates, a missing person case turns into a murder trial with no body. Too many false leads make the case a tough one to crack. True to Symons' form, the crime in the book really exists as background. Jenny's disappearance and the endless investigation act as a test of the characters' personalities. The reader watches almost with a magnifying glass as they react, evolve, and in some cases change completely. Catchpole himself comes across as moralizing and old-fashioned when inquiring into the very modern, free-spirited Jenny's lifestyle. The personalities of Jenny's parents turn almost completely inside out. Symons manages a neat swipe at the justice system in the character of Jenny's uncle Giles, a judge, who remains unmoved by a clear miscarriage of justice in a case he hears, even as his niece's case is about to come to trial. However, the painful detail with which Symons recounts both Catchpole's investigation and the various Midways' reactions to the crisis is a liability to the story; the pace lags. (Helen M Francini)
Originally published in Issue # 135 – January/February 1995
Find in a library Buy a copy
Your purchases using these links help support this site through commissions.
If I'd Killed Him When I Met Him… by Sharyn McCrumb
The Venus Throw by Steven Saylor


Our souvenir collection has been very popular and successful in multiple cities and countries in Europe (Amsterdam, Leiden, The Hauge, Vienna). Our partners and their end-clients love them for the high-quality finishing, aesthetics, durability and obviously- affordable price! The products are handmade in Italy, with the attention to detail and great touch and feel. The products are high customisable and you can use them for your hotel, museum, souvenir shop – you name it!


text:
Q: Consuming multiple messages from two different queue using @StreamListener in RabbitMQ I have two queue which are able to produce messages in the RabbitMQ queue. Now I want to consume this messages from a same consumer service based upon the action.One queue was created when user add some item and other was created when user try to delete from the UI.
I can able to consume one messages using @StreamListener but how to consume both the messages using @StreamListener?
in Consumer class:
    @StreamListener(target = Sink.INPUT)
        public void processRegisterAdd(String message) throws JsonParseException, JsonMappingException, IOException {
            System.out.println("for adding item message in queue: " + message);

        }

 /* @StreamListener(target = Sink.INPUT)
            public void processRegisterDelete(String message) throws JsonParseException, JsonMappingException, IOException {
                System.out.println("for deleting item message in queue: " + message);

            }*/

in Consumer application.properties:
spring.cloud.stream.bindings.input.destination=itemRetrival
spring.cloud.stream.bindings.input.group=itemRetrivalQueue

How do I consuming both the messages depending upon the action in Consumer class using @StreamListener.

redpajama_set_name: RedPajamaStackExchange


text:
Police: Months of problems, violence at Aurora motels
WA House passes pause to long-term care program and tax
CASEY MCNERTHNEY, SEATTLEPI.COM STAFF
John Coelho, left, and Teresa Addison Coe, members of FAWN (Fremont and Wallingford Neighbors) watch a steady stream of suspicious looking people entering and exiting a motel on Aurora Avenue on Wednesday Jan. 28. They're standing in front of the Italia and Isabella motels, both owned by Dean and Jill Inman. (Joshua Trujillo/seattlepi.com)/
It was about 3 a.m. when a man knocked on room 19 of the Fremont Inn. He yelled and refused to go away, and when the room guest came outside there was a fight. The man was stabbed in the abdomen and the suspect fled with two others in an older model gold Cadillac.
Two days after that Aug. 1 incident, police went back to the motel -- a business run by Dean and Jill Inman -- after a man threatened to kill another man and knocked him into a wall.
At the Seattle Motor Inn -- another of the Inmans' five Aurora Avenue North motels -- police arrested a felony warrant suspect that day. The same thing had happened a day before, and three warrant suspects were arrested there the day after.
City documents, which detailed those incidents, show that last year there were 460 calls for service at the Fremont Inn and four other motels operated by the Inmans.
During the first seven months of this year, the blocks in which the Inmans' motels are located have been the subject of 459 calls for service, according to police records. Though not all are at the motels, police say most problems stem from there.
Last week, the Seattle City Attorney's office filed 152 criminal charges for various tax violations against the Inmans and the five motels, of which they are corporate officers and directors.
The total amount of tax owed had not been determined Tuesday.
One of the motel managers -- a felon with more than 30 convictions, according to the city attorney's office -- was also charged this month with failing to require identification from a hotel guest after authorities said he let an undercover officer who had no state ID rent a room with cash.
Tuesday morning, city officials said the Inmans owed thousands in utility payments and motel guests were told they might be relocated Wednesday if a payment wasn't made -- a move that would shut off power, preventing the businesses from meeting codes.
Late Tuesday afternoon, the city received payment of more than $11,000 for utility bills on all five properties. That was the bare minimum payment to keep the lights on, said Alex Fryer, a spokesman for Mayor Greg Nickels.
A staff member at one of the five motels, who asked not to be named because of employment concerns, said the overall bill at the five properties was more than $38,000. City officials would not confirm that number.
Though the five motels remained operational Tuesday night, police and city officials said the episode isn't over.
Addressing the utility bill issues, Fryer said, "are the first steps in dealing with this problem."
Part of Aurora's reputation
Aurora Avenue North has long been known as an area for prostitution and low-level drug activity. But some neighbors claim the motels run by the Inmans disproportionately add to the problem.
Some city officials agree. Only one other Aurora Avenue Motel has back taxes due among all those covered by the Seattle Police North Precinct, Assistant City Attorney Ed McKenna said.
Of the top 10 problem motels on Aurora, he said the Inmans' motels are the top five, and the others listed are "to a significantly lesser degree."
The Inmans are corporate officers and directors for these five Seattle motels:
The Seattle Motor Inn, 12245 Aurora Ave. N.
The Wallingford Inn, 4453 Winslow Pl. N.
The Italia Motel, 4129 Aurora Ave. N.
The Fremont Inn, 4251 Aurora Ave. N.
The Isabella Motel, 4117 Aurora Ave. N.
Neither Dean nor Jill Inman returned separate calls for comment Tuesday and an e-mail was not returned. The property owner for The Seattle Motor Inn did not return a call after business hours Tuesday, and McKenna said an attorney for the Inmans has not contacted the city attorney's office.
"The Inmans are very, very good people," said one employee who asked not to be named because of employment concerns. "This has been nothing but a whole bunch of stress for them and they're trying to keep this afloat.
"But not a day goes by where there's not a cop car here. Sometimes it gets out of hand. … There are the wrong type of people that come around."
Neighbor concerns
About a year and a half ago, Robb Pierides considered selling his restaurant.
The former owner of the Twin Teepees had opened Robb's 125th Street Grill in the mid 1990s, but problems started a few years ago after the Inmans became involved with the Seattle Motor Inn, he said.
It allegedly started with guests bringing pets and allowing them to defecate in the parking lot that the motel and restaurant share.
Police say the problems only worsened.
About a year and a half ago, Pierides went to police, saying guests were scaring off his customers and his employees were scared. He wanted to know what to do.
He said McKenna introduced him to officers working to prevent gang activity.
"The Department of Corrections explained the State of Washington had been releasing inmates into that motel," Pierides said, referring to temporary stays.
Police said there has been widespread drug use at the hotels. In April 2008, officers reported seizing traces of heroin, 42 grams of cocaine, four drug scales and 11.7 grams of marijuana from the hotels. Police said they made 32 arrests that month in a 16-day period.
One neighbor appealed her property taxes, saying the value of her home should be lower because of crime around the Aurora motels. She won the appeal, according to the city attorney's office.
This month, Michael Moore, whom police said worked as a motel manager for the Inmans, was charged with failing to register or require identification from a hotel guest.
Authorities said the felon with a long criminal record allegedly allowed an undercover officer without proper identification to rent a room with cash.
Health conditions at the five motels became such a concern, police made a checklist that details violations of state and county health codes and Seattle municipal code violations.
McKenna and police did not have a specific number that had been sent to the State Health Department, but said several notices -- including details of drug paraphernalia and bloodstained mattresses -- had been sent to health authorities.
Last month, an informant told police of a felon in possession of a handgun at the Seattle Motor Inn. Officers reported finding him hiding in a dumpster and recovered heroin.
They also reported finding a 14-year-old girl there causing a disturbance. She allegedly told police her mother is a crack addict and Aurora prostitute locked in jail.
In the past two years, police reports show dozens of assaults at the Inmans' motels.
"The noticeable violent incidents are of great concern to us," said Julien Loh, a spokesman for Mayor Greg Nickels. "But the overall number of incidents is concerning to us and the environment that presents to the businesses and the communities there."
'An unfortunate thing'
Alex Hollman, who lives near the Italia and Isabella motels, said he called police about two suspected drug deals near the motels Monday. Most of the noticeable problems are drug deals and prostitution, he said.
"They knew it was kind of risky to stand on Aurora, so they'd move one block in and that's when they really become really visible to the neighbors," he said of suspected prostitutes. "There would be cars idling at all hours of the night."
For years, members of FAWN -- Fremont Aurora Wallingford Neighbors -- have been conducting weekly walks near four of the Inmans' motels.
On walks earlier this year, members told seattlepi.com they believe other motels -- including ones that have relatively low rates -- have less problems because building managers are constantly on the sites.
Police and city officials said they started meeting with the Inmans in 2005 to discuss criminal activities in and around their motels. Authorities say they promised to take action, but continued to ignore problems.
"Honestly, when we would contact them, things would get better for a couple months after," said Spencer Anderson, who also lives near the Isabella and Italia motels.
He believes the Inmans were trying to be successful developers, but the downturn in the housing market created timing that couldn't have been worse. Building codes also likely contributed to their difficulties, he said.
Because of neighborhood problems believed to be stemming from the motels, Anderson and other neighbors had discussed a lawsuit against the Inmans. One wasn't filed because they believed it would have pushed the motel operators into a financial corner, Anderson said.
"If they go into bankruptcy we're no better off," he said. "I don't think that they were malicious individuals; I think they were stuck in a situation where they were trying to keep it going and not get to this point."
Now, he said, "it's an unfortunate thing for them and for the neighborhood."
CASEY MCNERTHNEY


You will require a Licensed Driver and Photo I.D. along with Additional Documents depending on the Reason for Impoundment. Please call or e-mail to confirm which documents you will require to obtain the release of your vehicle.
Although you can obtain the release of your vehicle 24/ 7 you will not be allowed to obtain the release of any personal property after the hours of 19:00.
Vehicle Make, Model, Colour, Lic # and Last known location. These items will assist us in determining if we have your vehicle. For more information, visit our FAQs page.


text:
Journalism and Media Week
Leeds has the luck of the Irish with huge celebration for St Patrick's Day Parade
Yorkshire Voice Reporter
Comments Off on Leeds has the luck of the Irish with huge celebration for St Patrick's Day Parade
Thousands attended the St Patrick's Day celebrations in Millennium Square
By Lauren Entwistle
MORE THAN 5,000 people poured into Millennium Square to celebrate the Leeds Irish community with the annual St Patrick's Day Parade last Sunday.
Noel Whelan opens the Parade.
Former Leeds United footballer Noel Whelan was invited to cut the ribbon at the event, now in its 18th year, and then led the procession with Belfast-born Mayor of Leeds, Gerry Harper.
Whelan, whose father is Irish said: "I think it's important to celebrate where our families are from and celebrate Ireland."
"There are many, many Irish people in Leeds and it's great to bring everyone together and mark this special day."
The parade, which included colourful floats, brass bands and vintage buses was organised by 'Leeds Going Irish,' who work all year-round to ensure the day is a success.
Jackie Dwyer, Chair of the St Patrick's Day Committee said: "The parade has been going now for 18 years, and St Patrick's day is celebrated all over the world – but we didn't have one in Leeds.
"We thought it would be a good idea, so from small beginnings which were just people getting together and walking around, it's grown to the point where we have to make more room for the crowd!"
An archived photo of the Irish Community shown in Civic Hall.
To mark the occasion, the lower rooms of the Civic Hall were specially opened to the public to showcase the history of the Leeds Irish Community.
This included photographs of The Bank, the main Irish district of Leeds and censuses showing details of where families settled following emigration and their new jobs.
Phillipa Dowson, vice-chair of the Leeds St Patrick's Community said: "I got into this through my job, but even if I were going to leave that tomorrow I'd still be coming to this event and still want to help.
"I'm not Irish, but this is a huge part of the wider Leeds community and it's such a fun day. Anyone can get involved, whether or not you've got Irish heritage."
Leeds Cathedral held a St Patrick's Day Vigil on Thursday for those wanting to mark the day.
A history of the Leeds Irish community:
The origins of the Leeds Irish community dates back to the aftermath of the Napoleonic Wars (1799-1815), which prompted a sharp rise in emigration.
By 1971, the community numbered 31,000 people – that's more Irish people per square kilometre in inner-city Leeds than in County Mayo which covers more than 2,000 square miles.
Most original settlers lived in the centre of Leeds, but then moved eastwards to dominate an area around Richmond Hill, then called 'The Bank.'
Without the help of television, radio and general travel, most Irish people had never heard the Yorkshire dialect before and struggled understanding the locals!
As well as the St Patrick's Day Parade, there is also the Leeds Irish Festival which is held on the other side of the River Aire in Beeston.
Regular events, such as ceilidhs, folk nights, traditional Irish foods and Gaelic football is held at the Leeds Irish Centre, which has been part of the community since 1970.
A census of newly emigrated Irish families.
Source: http://www.untoldstories.co.uk/home.do
Tags: Art, celebration, Culture, Football, Ireland, Irish, Leeds, leeds united, Music, Noel Whelan, Parade, St Patrick, St Patrick's Day, West Yorkshire, Yorkshire
← Exclusive: Josh Warrington praises the fans ahead of clash with Martinez
Leeds pop punk band Summer's Colour prepare to release new single, AWOL →
Tweets by @YorkshireV
Key workers don't just have to worry about their p
Tino shows us how to stay productive and positive
We are all stuck in lockdown, but what's it like f
Stay home, stay healthy, stay handsome. A guide t
Journalism and Media Week (66)
Keeping It Yorkshire Updates (4)
Leeds News (138)
Listen Up Leeds (1)
LTU Media Fest (2)
TV Archive (113)
© Copyright 2021 — Yorkshire Voice. All Rights Reserved


Description: Selling Four Commercial Buildings at 10:00a.m. with home center and lumber yard personal property to follow!
Real Estate Information: Retail Bldg has front retail space w/ back office, restroom & storage. Adjacent drive thru lumber bldg. has metal roof, 14x11 overhead door, concrete floor. Directly behind is the shop- heated, concrete floor, 10x16 automatic overhead door, metal roof, work benches. Rear Post frame/metal lean-to has a 10x16 overhead door.
Personal Property Information: Selling various sizes of dimensional lumber, drywall materials, basement jacks, ceiling tiles, banding machine, trim boards, shutters, skylight, gutters & downspout parts, gas vent pipe, sockets, wrench sets, misc. electrical supplies, hammers, trowels, shovels, rakes, closet doors, light fixtures, can lighting, pex & copper plumbing pipe, pex & brass fittings, ¾ & 1" pvc-S40 & joints, Dewalt 12v driver, drill & blades, nail guns, lightbulbs, circular saw blades, Dremmel tool bits, wood & concrete bits, picnic table, bathroom fixtures, toilet parts, galvanized pipe, door knobs & handles, grip rite, paint gun, tool sets, fuses, oil, grease, sprinkler repairs, garden hose, yard chemicals, display doors, trash cans, caulk, gloves, fencing items, cattle watering floats, furnace filters, fastening, joist hangers, locks, cabinet handles, bolts, springs, screws, washers, nails, cable, chain, rope, vinyl shield molding, Sentry safe, Wilson radial arm saw 16" w/ 18' table, Jet table saw, air compressor, lg. amount of shelving, office furniture, Jet hybrid 10" table saw, Wilson 12" radial arm saw, Point of Sale system by DBMS, 9 camera alarm system, 1999 Ford F250 gas 5sp 125K miles 5th wheel ball, 25' PJ 5th wheel 2-7000 lb axles 2 jacks toolbox beaver tail flip up ramps.
Terms: Real Estate Terms: 20% down the day of the sale with balance due at closing on or before January 16, 2019 with possession. Title insurance premium to be divided 50/50 between buyer and seller. 2018 real estate taxes will be paid by the seller. Announcements and verification made by the escrow agent or the agents of sale at the date and time of sale shall supersede any prior advertising. Sale is not contingent on buyer financing. Please call for a private showing. Personal Property Terms: Cash or good check day of auction. Photo ID required when registering for a bidder number. Everything sold in an as-is condition.


text:
Irene Sam
Irene Sam is a contributor to Inkstone and the South China Morning Post.
Meet the chef who once cooked for Deng Xiaoping
Liu Guo-zhu is the executive chef of the two-Michelin-star Golden Flower restaurant in Macau, specializing in imperial Tan cuisine, which comes from Beijing and has aristocratic roots. In an interview, he talks about cooking for China's late paramount leader and why traditions are essential for Chinese chefs. What was it like cooking for Deng Xiaoping? He loved dishes with chili because he was from Sichuan. He liked to enjoy a bit of alcohol as well. Back in 1981, there was a big military exercise for six days and he insisted on watching over the whole thing. The exercise was in Zhangjiakou, near Inner Mongolia, and the weather was cold. The quality of lamb from Inner Mongolia was known to


Embattled CareerSource South Florida executive director Rick Beasley, already likely to face criticism week over alleged workplace bullying, has a new problem. Three current and former employees accuse him of religious discrimination.
Beasley has denied discriminating against the women in his office, saying, "I treat all men and women, black and white, fairly." He did not return two calls seeking comment about the claims of religious discrimination. A Miami-Dade County spokesperson declined to comment, saying Beasley is a state employee. The state Department of Economic Opportunity also refused to respond, saying it had not received an official complaint.
Not long after that disagreement, in 2008, Rosenbaum was fired. He claimed religious discrimination and filed a complaint with Miami-Dade's Office of Human Rights and Fair Employment Practices. Like at least four women interviewed by New Times who had complained to the county about Beasley, however, he was rebuffed.
"If you're Beasley, you think you're God and you can say and do what you want," Rosenbaum says.
She says Beasley promoted a religious atmosphere within the county agency. This year, Vanias filed an EEOC complaint against her supervisor — not Beasley — after he asked her if she believed in God. "I just looked at him like he was crazy. How is that appropriate?" she exclaims. The EEOC couldn't corroborate her claims but told her she could sue. But, by then, Vanias had already been laid off and decided not to pursue the matter further.
A current employee, who asked that New Times not disclose her name for fear of retaliation, says she's worked at CareerSource for four years and sat through dozens of prayers. She is not religious, and they always offend her. "When you go to work at a county office, you don't expect to hear a prayer session, and you shouldn't," she says.
A CareerSource board of directors meeting is scheduled for this week at a convention center near the airport. A source says the controversy over Beasley's behavior will likely be discussed.
Jess Swanson is a contributing writer at New Times. She graduated from the University of Miami and has a Master's Degree from the Columbia University School of Journalism.


Stephen was awarded the degree of Doctor of Philosophy at Griffith University, Brisbane in 2008 for his thesis "Behind the Text, Beyond the Sound: Investigations into Processes of Creative Musical Interpretation".
Roger Smalley passed away in Sydney on 18 August 2015. In my experience he was the most comprehensively gifted of all my contemporaries who were studying and working in the UK from the early 1960s. A pianist of incisive brilliance with a wide and eclectic range and a composer of modernist outlook, high intellectual rigour and an already distinctive voice, he was also a committed commentator and mover in support of the new dispensation which was taking hold of British musical life as William Glock took control at the BBC and the London Sinfonietta became established. Roger displayed then an extraordinary energy and ambitious confidence.
I knew him first as a pianist, who as a student at RCM, was exploring the mainstream repertoire in a highly original way, often seeking out works which usually lacked advocacy, such as the Schumann Allego, Op 8, Liszt's E major Polonaise and Dusseck's Elegie harmonique while he was also presenting a wide range of progressive 20th century piano repertoire with the Second Viennese School at its core. He also had a fondness for peripheral figures such as Ireland and I recall him taking some delight in preparing a BBC recital of pieces by Edward Macdowell at a time when he was also working towards UK premiere performances of many of the Stockhausen Piano Pieces.
We performed together just once during our time at the Royal College of Music, in Debussy's Six Epigraphes antiques. My own acquaintance with new music was sparse at that time but an opportunity to perform Tippett's Sonata No 2 for the composer's 60th birthday in 1965 stimulated my confidence in tackling non-tonal music.
The first work of Roger's I played in public was the set of Five Piano Pieces and we presented our initial joint performance in 1967 with the first performance of David Lumsdaine's Flights, in a live BBC Invitation Concert broadcast. In that year he wrote the highly elaborate Missa Parodia I for me, a work which keeps the performer at full stretch throughout, technically, emotionally and intellectually. It was a huge challenge to prepare and because I ran out of very limited time in relation to its first scheduled performance at the 1967 Dartington Summer School, Roger played it. My own first outing with this work was another live BBC occasion in May 1968. Hearing the recording of the concert again now, I am proud of the performance and struck by the eloquence and strength of utterance it displays. It would be wonderful to hear it again in the hands of a young virtuoso of today!
Subsequent to this period, Roger explored performance and composition for instruments with electronic treatment, often involving improvisation, chiefly through the group Intermodulation, and our paths did not cross again until after he had begun living in Australia where his life took a different direction. It has often been noted that removing oneself into a new environment offers the likelihood of a new invention and so it was for Roger in Perth.
The first major composition to result was the monumental Accord for two pianos written in 1974-5 which we premiered in a concert for the Park Lane Group at London's Purcell Room in December 1975, when we also included the first UK performance of Berio's Memory. Critical reaction was immediate and unequivocal. In the Guardian, Meirion Bowen wrote that "the two-piano repertoire includes a fairly limited number of obvious master works. To this list must now be added Roger Smalley's Accord..." In the Times, Paul Griffiths wrote that the work "seems to be a culmination of what he has achieved in the past few years. It is an engulfing experience for the hearer..." I regard the preparation and subsequent performances across the UK (for the Arts Council New Music Network) which we gave of the work, together with the Schubert A flat Variations, the Three Pieces of Ligeti and Debussy's En Blanc et Noir as among the most satisfying artistic collaborations of my career. Roger saw Accord as a new beginning and the point from which his subsequent work sprang and it is fortunate that our performance of it was recorded. There was a move by NMC some years ago to reissue this on compact disc, but the master-tape could not be located. It should now be technically possible for a transcription to be made from the original LP to preserve a remarkable document. The performance may be found within the Archive on the writer's website, www.savagepianist.com, together with other related works and performances.
By this time Roger was firmly centred in Australia, though commissions continued to be forthcoming from the UK, notably from the BBC for both the Symphony (1981) and the Piano Concerto (1985) and the Fires of London for The Narrow Road to the Deep North(1982-3). However, at some point his association with his publisher Faber Music, ceased. Roger never spoke of this to me and I have found no reference to it in published interviews. There can be no doubt that association with a major publisher is decisive not only in presenting a composer to the public but nurturing his creativity. Among Australians, Peter Sculthorpe, Carl Vine and Matthew Hindson have become house composers at Faber, while Brett Dean has flourished at Boosey and Hawkes. For all of them, the association with a major publisher has assisted in gaining commissions and international attention and a resultant reputation based on a comprehensive view of their creativity and output. For Roger there was an unfortunate fracturing: in England he is known best by reputation for his early work in the avant-garde of his time whereas in Australia, he is most known for his works for the concert hall, often for traditional combinations, particularly the later chamber music which displays a strikingly mature mastery and is virtually unknown in the UK.
In 1980 I had the opportunity, at Roger's instigation to spend time as visiting artist at the University of Western Australia. At short notice I had to cancel just before going. Just as with Roger some years earlier, the stress of earning a freelance living for a family in the UK while attempting to maintain distinctive professional activity was taking its toll. I had to accept that I had missed a perhaps unique opportunity to experience Australia, only to have an invitation to work for a term at the Elder Conservatorium within the University of Adelaide the very next year. In turn this led to my appointment to the Queensland Conservatorium in Brisbane from 1982. As for Roger, the subsequent experience of living and working away from the UK were transformational. However, the move did not translate into further collaborations between us, given that we were at opposite ends of the country and caught up in the musical life of our respective cities.
It was not until 1990 that I visited Perth to contribute to the Festival which featured music by Tippett, who attended throughout, just before he came to Brisbane for the major week-long event I had organised. It was on that visit that I made the acquaintance of the then recent Chopin Variations which Roger had written for Ian Munro. This is a strikingly original piece on several levels. It is not written on a "theme" so much as on the entire Mazurka of Chopin (op 24, no 4), with explorations of its structure and material going on throughout. It also covers a wide emotional span, beginning in an atmosphere of truculence and caricature and gradually expanding toward an ending of lyrical loneliness, all within no more than 10 minutes. I was most taken with it and first programmed it in a concert in Brisbane in 1992, (just before playing it for the BBC in London) when Roger came as guest of my short-lived Griffith University Ensemble and collaborated with the group in his Ceremony II. Writing to me afterwards he said: "This was the first time I had actually performed in Ceremony II and I found out at first hand how tricky it is! ...the result was one of the best performances it has had..." On that visit Roger also worked with student groups on his Strung Out and the Scriabin transcriptions.
Now that Roger is gone, his music must speak for him and provide his legacy. This requires more dissemination of his works, and it is to be hoped that the material to be found in this Archive will play its part in building a wider and enduring reputation of a remarkable creative force.


The message with Action 'http://tempuri.org/ISiteCommunication/GetCMSSiteInformationSecured' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).
This error is almost always caused by version disparity; prior to 9.1X the error would state 'Version Mismatch'.
Retrieve the following version information from both ends of the eSync relationship in question and update as necessary. Please reach out to Support with questions regarding upgrading the EktronWindowService. An article on upgrading the EktronWindowService can be found here. The web.config and database values should be identical. The EktronWindowService version should also be identical but may be a higher version than the web.config/database values, this is acceptable. (For additional install versions of the EktronWindowService, please view the below listing).