text:
\section{Introduction}
	Finding the most important nodes of a network is a major task in network analysis. To this end,
	numerous centrality measures have been introduced in the literature.  Examples of well-known
	measures are betweenness (which ranks nodes according to their participation in the shortest
	paths of the network) and closeness (which indicates the average shortest-path distance to other
	nodes).  A major limitation of both measures is that they are based on the assumption that
	information flows through the networks following shortest paths only. However, this is often not
	the case in practice; think, for example, of traffic on street networks: it is easy to imagine
	reasons why drivers might prefer to take slightly longer paths.  On the other hand, it is also
	quite unlikely that \textit{much} longer paths will be taken.

	Katz centrality~\cite{katz1953defn} accounts for this
	by summing all walks starting from a node, but weighting them based on their length. More
	precisely, the weight of a walk of length $i$ is $\alpha^i$, where $\alpha$ is some attenuation
	factor smaller than $1$. Thus, naming $\omega_i(v)$ the number of walks of length $i$ starting
	from node $v$, the Katz centrality of $v$ is defined as
	\begin{equation}
		\label{eq:katz}
		\katz(v) := \sum_{i=1}^\infty \omega_i(v)\,\alpha^i
	\end{equation}
	or equivalently: $\katz = \left(\sum_{i=1}^\infty A^i\,\alpha^i\right)\vec{I}$, where $A$ is the
	adjacency matrix of the graph and $\vec{I}$ is the vector consisting only of $1$s.
	This can be restated as a Neumann series, resulting in
	the closed-form expression $\katz = \alpha A (I - \alpha A)^{-1} \vec{I}$,
	where $I$ is the identity
	matrix.
	Thus, Katz centrality can be computed exactly by solving the linear system
	\begin{equation}
		\label{eq:la}
		(I - \alpha A)\,\mathbf{z} = \vec{I} ~,
	\end{equation}
	followed by evaluating $\katz = \alpha A\,\mathbf{z}$.
	We call this approach the \emph{linear algebra formulation}.
	In practice, the solution to Eq.~(\ref{eq:la}) is numerically approximated
	using iterative solvers for linear systems.
	While these solvers yield solutions of good quality,
	they can take hundreds of iterations to converge \cite{nathan2017guarantee}.
	Thus, in terms of running time, those algorithms can be impractical for
	today's large networks, which often have millions of nodes and billions of edges.

	Instead, Foster \etals~\cite{foster2001iter} algorithm
	estimates Katz centrality
	iteratively by computing partial sums of the series from Eq.~(\ref{eq:katz})
	until a stopping criterion is reached.
	Although very
	efficient in practice, this method has no guarantee on the correctness of the ranking it finds,
	not even for the top nodes.
	Thus, the approach is ineffective for applications where only
	a subset of the most central nodes is needed or when accuracy is needed.
	As this is indeed the case in many applications, several
	top-$k$ centrality algorithms have been proposed recently for
	closeness~\cite{bergamini2016topclose}
	and betweenness~\cite{lee2014topbetween}.
	Recently, a top-$k$ algorithm for Katz centrality~\cite{nathan2017guarantee}
	was suggested. That algorithm
	still relies on solving Eq.~(\ref{eq:la}); however, it reduces
	the numerical accuracy that is required to obtain a top-$k$ rating.
	Similarly, Zhan \etal~\cite{zhan2017topkatz} propose a heuristic method to exclude
	certain nodes from top-$k$ rankings but do not present
	algorithmic improvements on the actual Katz computation.

	\subparagraph*{Dynamic graphs.}
	Furthermore, many of today's real-world networks,
	such as social networks and web graphs, are dynamic in nature and some
	of them evolve over time at a very quick pace. For such networks, it is often impractical to
	recompute centralities from scratch after each graph modification. Thus, several dynamic graph
	algorithms that efficiently update centrality have been introduced for
	closeness~\cite{bisenius2018dynclose} and
	betweenness~\cite{lee2016dynbetween}.
	Such algorithms usually work well in practice, because they
	reduce the computation to the part of the graph that has actually been affected.
	This offers potentially large speedups compared to recomputation.
	For Katz centrality, dynamic algorithms
	have recently been proposed by Nathan \etal~\cite{nathan2017dynsolve,nathan2018dynperson}.
	However, those algorithms rely on heuristics and are unable to
	reproduce the exact Katz ranking after dynamic updates.

	\subparagraph*{Our contribution.}
		We construct a vertex-centric
		algorithm that computes Katz centrality by iteratively
		improving upper and lower bounds on the centrality scores (see Section~\ref{sec:static}
		for the construction of this algorithm).
		While the computed centralities are approximate, our algorithm guarantees
		the correct ranking. We extend (in Section \ref{sec:dyn})
		this algorithm to dynamic graphs while preserving the guarantees of the static algorithm.
		An extensive experimental evaluation (see Section~\ref{sec:exp})
		shows that (i) our new algorithm outperforms Katz algorithms
		that rely on numerical approximation with speedups between $1.5\times$ and $3.5\times$,
		depending on the desired correctness guarantees,
		(ii) our algorithm has a speedup in the same order of magnitude
		over the widely-used heuristic
		of Foster \etal~\cite{foster2001iter} while improving accuracy,
		(iii) our dynamic graph algorithm improves upon static recomputation
		of Katz rankings for batch sizes of less than 10000 edges
		and (iv) efficient parallel CPU and GPU implementations of our algorithm
		allow near real-time computation of Katz centrality in fractions
		of seconds even for very large graphs. In particular, our GPU implementation
		achieves speedups of more than $10\times$ compared to a 20-core CPU implementation.

\section{Preliminaries}
\label{sec:prelim}

\subsection{Notation}
	\begin{description}
		\item[Graphs] In the following sections, we assume that
			$G = (V, E)$ is the input graph to our algorithm.
			Unless stated otherwise, we
			assume that $G$ is directed.
			For the purposes of Katz centrality, undirected graphs can be modeled
			by replacing each undirected edge with two directed edges in reverse directions.
			For a node $x \in V$, we denote the \emph{out-}degree of $x$ by
			$\deg(x)$. The maximum out-degree of any node in $G$ is denoted by $\deg_\mathrm{max}$.

		\item[Katz centrality] The Katz centrality of the nodes of $G$
			is given by Eq.~(\ref{eq:katz}). With $\katz_i(v)$ we denote
			the $i$-th partial sum of Eq.~(\ref{eq:katz}).
			Katz centrality is not defined for
			arbitrary values of $\alpha$. In general, Eq.~(\ref{eq:katz}) converges
			for $\alpha < \frac1{\sigma_\mathrm{max}}$, where
			$\sigma_\mathrm{max}$ is the largest singular value of
			the adjacency matrix $A$ (see~\cite{katz1953defn}).

			Katz centrality can also be defined by counting \emph{inbound}
			walks in $G$~\cite{katz1953defn,newman2010networks}.
			For this definition, $\omega_i(x)$ is replaced by
			the number of walks of length $i$ that end in $x \in V$.
			Indeed, for applications like web graphs, nodes that are the target
			of many links intuitively should be considered more central than nodes that
			only have many links
			themselves\footnote{This is a central idea behind the
				PageRank~\cite{brin1998google} metric.}.
			However, as inbound Katz centrality coincides with the outbound Katz centrality
			of the reverse graph, we will not specifically consider it in this paper.
			\todo{Maybe remove inbound Katz.}
	\end{description}

\subsection{Related work}
	Most algorithms that are able to compute Katz scores with
	approximation guarantees are based on the linear algebra formulation and
	compute a numerical solution to Eq.~(\ref{eq:la}).
	Several approximation algorithms have been developed in order to
	decrease the practical running times of this formulation
	(\eg based on low-rank approximation~\cite{acer2009lowrank}).
	Nathan \etal~\cite{nathan2017guarantee} prove a relationship between
	the numerical approximation quality of Eq.~(\ref{eq:la})
	and the resulting Katz ranking quality.
	While this allows computation of top-$k$ rankings with reduced numerical
	approximation quality, no significant speedups can be expected
	if full Katz rankings are desired.

	Foster \etal~\cite{foster2001iter} present a vertex-centric heuristic
	for Katz centrality:
	They propose to determine Katz centrality by computing the recurrence
	$c_{i+1} = \alpha A\ c_i + \vec{I}$.
	The computation is iterated until either a fixed
	point\footnote{Note that a true fixed point will not be reached using this method
		unless the graph is a DAG.}
	or a predefined number of iterations is reached.
	This algorithm performs well in
	practice; however, due to the heuristic nature of the stopping condition,
	the algorithm does not give any correctness guarantees.

	Another paper from Nathan \etal~\cite{nathan2018dynperson}
	discusses an algorithm for a \enquote{personalized} variant of Katz centrality.
	Our algorithm uses a similar iteration scheme but differs in
	multiple key properties of the algorithm: Instead of considering
	personalized Katz centrality, our algorithm computes the usual,
	\enquote{global} Katz centrality. While Nathan \etal give a global
	bound on the quality of their solution, we are able to compute
	per-node bounds that can guarantee the correctness of our ranking.
	Finally, Nathan \etals dynamic update procedure is a heuristic
	algorithm without correctness guarantee, although its ranking quality
	is good in practice. In contrast to that,
	our dynamic algorithm reproduces exactly the results of the
	static algorithm.
	\todo{Maybe shorten this paragraph.}

\section{Iterative improvement of Katz bounds}
	\label{sec:static}

\subsection{Per-node bounds for Katz centrality}
	The idea behind our algorithm is to compute upper and lower bounds on the centrality
	of each node. Those bounds are iteratively improved.
	We stop the iteration once an application-specific stopping criterion is reached.
	When that happens,
	we say that the algorithm \emph{converges}.

	Per-node upper and lower bounds allow us to rank nodes against each other:
	Let $\ell_r(x)$ and $u_r(x)$ denote respectively lower and upper bounds
	on the Katz score of node $x$ after iteration $r$.
	An explicit construction of those bounds will be given later in this section;
	for now, assume that such bounds exist.
	Furthermore, let $w$ and $v$ be two nodes; without loss of generality,
	we assume that $w$ and $v$ are chosen such that $\ell_r(w) \geq \ell_r(v)$.
	If $\ell_r(w) > u_r(v)$, then $w$ appears in the Katz centrality
	ranking before $v$ and we say that $w$ and $v$ are \emph{separated} by the bounds
	$\ell_r$ and $u_r$.
	In this context, it should be noted that per-node bounds do not allow us to prove that
	the Katz scores of two nodes are
	equal\footnote{In theory, the linear algebra formulation is able to prove that
		the score of two nodes is indeed equal.
		However, in practice, limited floating point precision
		limits the usefulness of this property.}.
	However, as the algorithm still needs to be able to rank nodes $x$ that share
	the same $\ell_r(x)$ and $u_r(x)$ values,
	we need a more relaxed concept of separation. Therefore:
	\begin{definition}
		In the same setting as before, let $\epsilon > 0$.
		We say that $w$ and $v$ are $\epsilon$-\emph{separated},
		if and only if
		\begin{equation}
			\label{eq:epsilon_sep}
			\ell_r(w) > u_r(v) - \epsilon ~.
		\end{equation}
	\end{definition}
	Intuitively, the introduction
	of $\epsilon$ makes the $\epsilon$-condition easier to fulfill than the
	separation condition: Indeed, separated pairs of nodes are
	also $\epsilon$-separated for every $\epsilon > 0$.
	In particular, $\epsilon$-separation allows us to construct Katz rankings even in the presence
	of nodes that have the same Katz score: Those nodes are
	never separated, but they will eventually be $\epsilon$-separated for every $\epsilon > 0$.

	In order to actually construct rankings, it is sufficient to notice that
	once all pairs of nodes are $\epsilon$-separated, sorting the nodes
	by their lower bounds $\ell_r$ yields a correct Katz ranking,
	except for pairs of nodes with a difference in Katz score of less than $\epsilon$.
	Thus, using this definition, we can discuss possible stopping criteria for the algorithm:

	\begin{description}
		\item[Ranking criterion.] Stop once all nodes are $\epsilon$-separated from each other.
			This guarantees that the ranking
			is correct, except for nodes with scores that are very close to each other.
		\item[Top-$k$ criterion.] Stop once the top-$k$ nodes are $\epsilon$-separated from
			each other and from all other nodes. For $k = n$ this criterion reduces to the
			ranking criterion.
		\item[Score criterion.] Stop once the difference between the upper and lower bound
			of each node becomes less than $\epsilon$. This guarantees that the
			Katz centrality of each node is correct up to an additive constant of $\epsilon$.
		\item[Pair criterion.] Stop once two given nodes $u$ and $v$ are
			$\epsilon$-separated.
	\end{description}

	First, we notice that a simple lower bound on the
	Katz centrality of a node $v$ can be obtained by truncating the series in Eq.~(\ref{eq:katz}) after
	$r$ iterations, hence, $\ell_r(v) := \sum_{i=1}^{r} \omega_i(v) \alpha^i$ is a
	lower bound on $\katz(v)$.
	For undirected graphs, this lower bound can be improved to
	$\sum_{i=1}^r \omega_i(v) \alpha^i + \omega_r(v) \alpha^{r+1}$,
	as any walk of length $r$ can be extended to a walk of length $r+1$ with the
	same starting point by repeating its last edge with reversed
	direction.

	\begin{theorem}
		\label{thm:correctness}
		Let $\gamma = \frac{\deg_\mathrm{max}}{1 - \alpha \deg_\mathrm{max}}$.
		For any $r \geq 1$, $v \in V$ and $\alpha < \frac{1}{\deg_\mathrm{max}}$,
		the value
		\[ u_r(v) := \sum_{i=1}^{r} \alpha^i \omega_i(v) + \alpha^{r+1}\omega_r(v) \gamma \]
		is an upper bound on $\katz(v)$.
	\end{theorem}
	\begin{proof}
		First, let $S_i(v)$ be the set of nodes $x$ for which there exists a walk of length $i$
		starting in $v$ and ending in $x$.
		Each walk of length $i+1$ is the concatenation of a walk of
		length $i$ ending in $x \in S_i(v)$
		and an edge $(x, y)$, where $y$ is some neighbor of $x$.
		Let $\omega_i(v, x)$ denote the number of walks of length $i$
		that start in $v$ and end in $x$. Thus, we can write
		\begin{equation}
			\label{eq:deg_ineq}
			\omega_{i+1}(v) = \sum_{x \in S_i(v)} \deg(x)\ \omega_i(v, x)
				\leq \sum_{x \in S_i(v)} \deg_\mathrm{max}\ \omega_i(v, x)
				= \deg_\mathrm{max}\ \omega_i(v) ~.
		\end{equation}
		By applying induction to the previous inequality,
		it is easy to see that, for any $j > 1$,
		\[ \omega_{i+j}(v) \leq (\deg_\mathrm{max})^j \omega_i(v) ~.\]
		Discarding the first $r$ terms of the sum in Eq.~(\ref{eq:katz})
		then yields
		\begin{align*}
			\sum_{i=r+1}^{\infty} \alpha^i \omega_i(v)
			& \leq \sum_{j=1}^{\infty} \alpha^{r+j} (\deg_\mathrm{max})^j \omega_r(v)
			= \alpha^r \omega_r(v) \sum_{j=1}^{\infty} (\alpha \deg_\mathrm{max})^j\\
			& = \alpha^r \omega_r(v) \left( \frac{1}{1- \alpha \deg_\mathrm{max}} - 1\right)
			= \alpha^{r+1} \omega_r(v) \gamma ~.
		\end{align*}
		For the second to last equality, we rewrite the infinite series as a geometric sum.
	\end{proof}

	The following lemma (with proof in Appendix~\ref{sec:proofs})
	shows that we can indeed iteratively improve
	the upper and lower bounds for each node $x \in V$:

	\begin{lemma}
		\label{lem:monotone}
		For each $x \in V$, $\ell_i(x)$ is non-decreasing in $i$ and
		$u_i(x)$ is non-increasing in $i$.
	\end{lemma}

	Theorem~\ref{thm:correctness} requires us to choose $\alpha < \frac1{\deg_\mathrm{max}}$,
	which is a restriction compared to the more general
	requirement of $\alpha < \frac1{\sigma_\mathrm{max}}$.
	For our experiments in the later sections of this paper,
	we set $\alpha = \frac1{1+\deg_\mathrm{max}}$ in order to satisfy this condition.
	Aside from enabling us to apply the theorem, this choice of $\alpha$ has
	some additional advantages: First, because Theorem~\ref{thm:correctness} gives
	an upper bound on Eq.~(\ref{eq:katz}), Katz centrality is
	guaranteed to converge for this value of the $\alpha$
	parameter\footnote{This was already noticed by Katz~\cite{katz1953defn}
		and can alternatively be proven through linear algebra.}.
	$\deg_\mathrm{max}$ is also much easier to compute than
	$\sigma_\mathrm{max}$, an operation that is comparable in complexity
	to computing the Katz centrality
	itself\footnote{Indeed, the popular power iteration method to compute
		$\sigma_\mathrm{max}$ for real, symmetric, positive-definite matrices
		has a complexity of $\Omega(r\,|E|)$, where $r$ denotes a number
		of iterations.}.
	Finally, $\alpha = \frac1{1+\deg_\mathrm{max}}$ is widely-used in existing
	literature \cite{bonchi2012personal,foster2001iter}, with Foster \etal calling it the
	\enquote{generally-accepted default attenuation factor}~\cite{foster2001iter}.

	It is worth remarking (proof in Appendix~\ref{sec:proofs})
	that graphs exist for which the bound from Theorem~\ref{thm:correctness}
	is sharp:
	\begin{lemma}
		If $G$ is a complete graph, $u_i(x) = \katz(x)$ for all $x \in V$ and $i \in \mathbb{N}$.
	\end{lemma}

\subsection{Efficient rankings using per-node bounds}
	In the following, we state the description of our Katz algorithm for static graphs.
	As hinted earlier, the algorithm estimates Katz centrality by computing
	$u_r(v)$ and $\ell_r(v)$. These upper and lower bounds are
	iteratively improved by incrementing $r$ until the algorithm converges.

	To actually compute $\katz_r(v)$, we use the well-known fact that the number of walks of
	length $i$ starting in node $v$ is equal to the sum of the number of walks of length $i-1$
	starting in the neighbors of $v$, in other words:
	\begin{equation}
		\label{eq:basic_recurrence}
		\omega_i(v) = \sum_{v \to x \in E} \omega_{i-1}(x)~.
	\end{equation}
	Thus, if we initialize $\omega_1(v)$ to $\deg(v)$ for all $v \in V$, we can then
	repeatedly loop over the edges of $G$ and compute tighter and tighter lower bounds.

	We focus here on the top-$k$ convergence criterion.
	It is not hard to see how our
	techniques can be adopted to the other stopping criteria
	mentioned at the start of the previous subsection.
	To be able to efficiently detect convergence,
	the algorithm maintains a set of \emph{active} nodes.
	These are the nodes for which the lower and upper bounds have not yet converged.
	Initially, all nodes are active.
	Each node is \emph{deactivated} once it is $\epsilon$-separated from the $k$ nodes
	with highest lower bounds $\ell_r$.
	It should be noted that, because of Lemma \ref{lem:monotone},
	deactivated nodes will stay deactivated in all future iterations.
	Thus, for the top-$k$ criterion, it is sufficient
	to check whether (i) only $k$ nodes remain active and (ii) the remaining
	active nodes are $\epsilon$-separated from each other.
	This means that each iteration will require less work than its previous iteration.

	\begin{algorithm}[t]
		\caption{Katz centrality bound computation for static graphs}
		\label{algo:topk}
		\begin{minipage}{0.475\textwidth}
			\begin{algorithmic}
				\footnotesize
				\State $\gamma \gets \deg_\mathrm{max}/(1 - \alpha \deg_\mathrm{max})$
				\smallskip
				\State Initialize $\katz_0(x) \gets 0 \quad \forall x \in V$
				\State Initialize $r \gets 0$ and $\omega_0(x) \gets 1 \quad \forall x \in V$
				\State Initialize set of active nodes: $M \gets V$
				\While{not \Call{converged}{\null}}
					\State Set $r \gets r+1$ and $\omega_{r}(x) \gets 0 \quad \forall x \in V$
					\ForAll{$v \in V$}
						\ForAll{$v \to u \in E$}
							\State $\omega_{r}(v) \gets \omega_{r}(v) + \omega_{r-1}(u)$
						\EndFor
						\State $\katz_r(v) \gets \katz_{r-1}(v) + \alpha^r \omega_r(v)$
						\If{$G$ undirected}
							\State $\ell_r(v) \gets \katz_r(v) + \alpha^{r+1} \omega_r(v)$
						\Else
							\State $\ell_r(v) \gets \katz_r(v)$
						\EndIf
						\State $u_r(v) \gets \katz_r(v)  + \alpha^{r+1} \omega_r(v) \gamma$
					\EndFor
				\EndWhile
			\end{algorithmic}
		\end{minipage}\hspace{0.05\textwidth}%
		\begin{minipage}{0.475\textwidth}
			\begin{algorithmic}
				\footnotesize
				\Function{converged}{\null}
					\State \Call{partialSort}{$M$, $k$, $\ell_r$, decreasing}
					\ForAll{$i \in \{k+1, \ldots, |V|\}$}
						\If{$u_r(M[i]) - \epsilon < \ell_r(M[k])$}
							\State $M \gets M \setminus \{v\}$
						\EndIf
					\EndFor
					\If{$|M| > k$}
						\State \Return $\mathrm{false}$
					\EndIf
					\ForAll{$i \in \{2, \ldots, \min(|M|, k)\}$}
						\If{$u_r(M[i]) - \epsilon \geq \ell_r(M[i - 1])$}
							\State \Return $\mathrm{false}$
						\EndIf
					\EndFor
					\State \Return $\mathrm{true}$
				\EndFunction
			\end{algorithmic}
		\end{minipage}
	\end{algorithm}

	Algorithm \ref{algo:topk} depicts the pseudocode of the algorithm.
	Computation of $\omega_r(v)$ is done by evaluating the
	recurrence from Eq.~(\ref{eq:basic_recurrence}).
	After the algorithm terminates,
	the $\epsilon$-separation property guarantees that
	the $k$ nodes with highest $\ell_r(v)$
	form a top-$k$ Katz centrality ranking (although $\ell_r(v)$
	does not necessarily equal the true Katz score).

	The \Call{converged}{} procedure in Algorithm~\ref{algo:topk}
	checks whether the top-$k$ convergence criterion is satisfied.
	In this procedure, $M$ denotes the set of active nodes.
	The procedure first partially sorts the elements of $M$ by decreasing
	lower bound $\ell_r$.
	After that is done, the first $k$ elements of $M$ correspond
	to the top-$k$ elements in the current ranking
	(which might not be correct yet).
	Note that it is not necessary to construct the entire
	ranking here; sorting just the top-$k$ nodes is sufficient.
	The procedure tries to deactivate nodes that cannot be in the top-$k$
	and afterwards checks if the remaining top-$k$ nodes
	are correctly ordered. These checks are performed by testing if the
	$\epsilon$-separation condition from Eq.~(\ref{eq:epsilon_sep}) is true.

	\subparagraph*{Complexity analysis.}
	The sequential worst-case time complexity of Algorithm~\ref{algo:topk}
	is $\mathcal{O}(r\,|E| + r\,\mathcal{C})$,
	where $r$ is the number of iterations and $\mathcal{C}$ is the complexity
	of the convergence checking procedure.
	It is easy to see that the loop over
	$V$ can be parallelized, yielding a complexity of
	$\mathcal{O}(r\,\frac{|V|}p \deg_{max} + r\,\mathcal{C})$
	on a parallel machine with $p$ processors.
	The complexity of \Call{converged}{}, the top-$k$ ranking convergence criterion,
	is dominated by the
	$\mathcal{O}(|V| + k \log k)$ complexity of partial sorting.
	Both the score and the pair criteria can be implemented in $\mathcal{O}(1)$.

	It should be noted that -- for the same solution quality --
	our algorithm converges at least as fast as
	the heuristic of Foster \etal that computes a Katz
	ranking without correctness guarantee.
	Indeed, the values of $\katz_r$ yield exactly the values
	that are computed by the heuristic. However, Foster \etals
	heuristic is unable to accurately assess the quality of
	its current solution and might thus perform too many or too
	few iterations.

\section{Updating Katz centrality in dynamic graphs}
	\label{sec:dyn}

	In this section, we discuss how our Katz centrality algorithm can be extended
	to compute Katz centrality rankings for dynamically
	changing graphs. We model those graphs as an initial graph that is
	modified by a sequence of edge insertions and edge deletions.
	We do not explicitly handle node insertions and deletions as those can
	easily be supported by adding enough isolated nodes to the initial graph.

	Before processing any edge updates, we assume that our algorithm
	from Section~\ref{sec:static} was first executed on the initial
	graph to initialize the values $\omega_i(x)$ for all $x \in V$.
	The dynamic graph algorithm needs to recompute $\omega_i(x)$
	for $i \in \{1, \ldots, r\}$, where $r$ is the number of iterations that
	was reached by the static Katz algorithm on the initial graph.
	The main observation here is that if an edge $u \to v$ is inserted into (or deleted from)
	the initial graph, $\omega_i(x)$ only changes for nodes $x$ in the vicinity
	of $u$. More precisely, $\omega_i(x)$ can only change if $u$ is reachable
	from $x$ in at most $i-1$ steps.

	Algorithm~\ref{algo:dynamic} depicts the pseudocode of our dynamic Katz algorithm.
	$\mathcal{I}$ denotes the set of edges to be inserted, while $\mathcal{D}$ denotes
	the set of edges to be deleted. We assume that
	$\mathcal{I} \cap E = \emptyset$ and $\mathcal{D} \subseteq E$ before the algorithm.
	Effectively, the algorithm performs a breadth-first search (BFS) through the
	reverse graph of $G$ and updates $\omega_i$ for all nodes nodes that
	were reached in steps $1$ to $i$.

	\begin{algorithm}[t]
		\caption{Dynamic Katz update procedure}
		\label{algo:dynamic}
		\begin{minipage}{0.475\textwidth}
			\begin{algorithmic}
				\footnotesize
				\State $E \gets E \setminus \mathcal{D}$
				\State $S \gets \emptyset$,\ $T \gets \emptyset$
				\ForAll{$w \to v \in \mathcal{I} \cup \mathcal{D}$}
					\State $S \gets S \cup \{w\}$
					\State $T \gets T \cup \{v\}$
				\EndFor
				\ForAll{$i \in \{1, \ldots, r\}$}
					\State \Call{updateLevel}{i}
				\EndFor
				\ForAll{$w \in S$}
					\State Recompute $\ell_r(w)$ and $u_r(w)$ from $\katz_r(w)$
				\EndFor
				\ForAll{$w \in V$}
					\If{$u_r(w) \geq \min_{x \in M} \ell_r(x) - \epsilon$}
						\State $M \gets M \cup \{w\}$ \Comment{Reactivation}
					\EndIf
				\EndFor
				\State $E \gets E \cup \mathcal{I}$
				\While{not \Call{converged}{\null}}
					\State Run more iterations of static algorithm
				\EndWhile
			\end{algorithmic}
		\end{minipage}\hspace{0.05\textwidth}%
		\begin{minipage}{0.475\textwidth}
			\begin{algorithmic}
				\footnotesize
				\Procedure{updateLevel}{i}
					\ForAll{$v \in S \cup T$}
						\State $\omega_i'(v) \gets \omega_i(v)$
					\EndFor
					\ForAll{$v \in S$}
						\ForAll{$w \to v \in E$}
							\State $S \gets S \cup \{w\}$
							\State $\omega'_i(w) \gets \omega'_i(w)
									- \omega_{i-1}(v) + \omega'_{i-1}(v)$
						\EndFor
					\EndFor
					\ForAll{$w \to v \in \mathcal{I}$}
						\State $\omega'_i(w) \gets \omega'_i(w) + \omega'_{i-1}(v)$
					\EndFor
					\ForAll{$w \to v \in \mathcal{D}$}
						\State $\omega'_i(w) \gets \omega'_i(w) - \omega_{i-1}(v)$
					\EndFor
					\ForAll{$w \in S$}
						\State $\katz_i(w) \gets \katz_i(w)
								- \alpha^i \omega_i(w) + \alpha^i \omega'_i(w)$
					\EndFor
				\EndProcedure
			\end{algorithmic}
		\end{minipage}
	\end{algorithm}

	After the update procedure terminates, the new upper and lower bounds
	can be computed from $\katz_r$ as in the static algorithm.
	We note that $\omega'_i(x)$ matches exactly the value
	of $\omega_i(x)$ that the static Katz algorithm would compute for the modified graph.
	Hence, the dynamic algorithm reproduces the correct values
	of $\katz_r(x)$ and also of $\ell_r(x)$ and $u_r(x)$ for all $x \in V$.
	In case of the top-$k$ convergence criterion,
	some nodes might need to be \emph{reactivated} afterwards: Remember
	that the top-$k$ criterion maintains a set $M$ of active nodes.
	After edge updates are processed, it can happen that there are nodes $x$ that
	are not $\epsilon$-separated from all nodes in $M$ anymore.
	Such nodes $x$ need to be added to $M$ in order to obtain a
	correct ranking. The ranking itself can then be updated by sorting
	$M$ according to decreasing $\ell_r$.

	It should be noted that there is another related corner case:
	Depending on the convergence criterion, it can happen that the algorithm
	is not converged anymore even after nodes have been reactivated.
	For example, for the top-$k$ criterion, this is the case if the nodes
	in $M$ are not $\epsilon$-separated from each other anymore.
	Thus, after the dynamic update we have to perform a convergence check
	and potentially run additional iterations of the static algorithm
	until it converges again.

	Assuming that no further iterations of the static algorithms
	are necessary, the complexity of the update procedure
	is $\mathcal{O}(r\,|E| + \mathcal{C})$, where $\mathcal{C}$ is the
	complexity of convergence checking (see Section~\ref{sec:static}). In reality, however,
	the procedure can be expected to perform much better:
	Especially for the first few iterations, we expect the set $S$
	of vertices visited by the BFS to be much smaller than $|V|$.
	However, this implies that effective parallelization of the dynamic graph algorithm is
	more challenging than the static counterpart.
	We mitigate this problem, by aborting the BFS
	if $|S|$ becomes large and
	just update the $\omega_i$ scores unconditionally for all nodes.

	Finally, it is easy to see that the algorithm can be modified to update $\omega$ in-place
	instead of constructing a new $\omega'$ matrix. For this optimization,
	the algorithm needs to save the value of $\omega_i$ for all nodes of $S$
	before overwriting it, as this value is required for iteration $i+1$.
	For readability, we omit this modification in the pseudocode.

\section{Experiments}
	\label{sec:exp}

	\begin{table}[t]
		\centering
		\begin{threeparttable}
			\caption{Performance of the Katz algorithm, ranking criterion}
			\label{tbl:basic_perf}
			\begin{tabular}{rrrr@{\quad}||rrrr}
				$\epsilon$ & $r$\tnote{a} & Runtime\tnote{a} & Separation\tnote{b} &
				$\epsilon$ & $r$\tnote{a} & Runtime\tnote{a} & Separation\tnote{b} \\\hline
				$10^{-1}$ & 2.3 & 33.51 s & 96.189974 \% &
				$10^{-7}$ & 7.2 & 78.74 s & 99.994959 \% \\
				$10^{-2}$ & 3.0 & 42.81 s & 98.478250 \% &
				$10^{-8}$ & 7.9 & 83.28 s & 99.998866 \% \\
				$10^{-3}$ & 3.8 & 51.59 s & 99.264726 \% &
				$10^{-9}$ & 8.6 & 85.10 s & 99.998886 \% \\
				$10^{-4}$ & 4.8 & 65.99 s & 99.391884 \% &
				$10^{-10}$ & 9.2 & 89.03 s & 99.998889 \% \\
				$10^{-5}$ & 5.7 & 71.53 s & 99.992908 \% &
				$10^{-11}$ & 9.8 & 99.43 s & 99.998934 \% \\
				$10^{-6}$ & 6.5 & 70.59 s & 99.994861 \% &
				$10^{-12}$ & 10.4 & 96.86 s & 99.998934 \% \\
				Foster & 11.2 & 105.03 s & - &
				CG & 12.0 & 117.24 s & - \\
			\end{tabular}
			\begin{tablenotes}
				\item[a] Average over all instances. $r$ is the number of iterations.
				\item[b] Fraction of node pairs that are separated
					(and not only $\epsilon$-separated).
					Lower bound on the correctly ranked pairs.
					This is the geometric mean over all graphs.
			\end{tablenotes}
		\end{threeparttable}
	\end{table}

\subparagraph*{Implementation details}
	The new algorithm in this paper is hardware independent and
	as such we can implement it on different types of hardware with
	the right type of software support.
	Specifically, our dynamic Katz centrality requires a dynamic graph
	data structure. On the CPU we use NetworKit~\cite{staudt2016networkit};
	on the GPU we use Hornet\footnote{Hornet can be found at \url{https://github.com/hornet-gt},
		while NetworKit is available from \url{https://github.com/kit-parco/networkit}.
		Both projects are open source, including the implementations of our new algorithm.}.
	The Hornet data structure is architecture independent, though at time of writing
	only a GPU implementation exists.

	NetworKit consists of an optimized C++ network analysis library
	and bindings to access this library from Python.
	NetworKit contains parallel shared-memory implementations of
	many popular graph algorithms and can handle networks with
	billions of edges.

	The Hornet \cite{green-hornet},  an efficient extension to the cuSTINGER~\cite{green2016custinger} data structure, is a dynamic graph and matrix data structure designed for large scale networks and to support graphs with trillions of vertices. In contrast to cuSTINGER, Hornet better utilizes memory, supports memory reclamation, and can be updated almost ten times faster.

	In our experiments, we compare our new algorithm to
	Foster \etals heuristic and a conjugate gradient (CG) algorithm
	(without preconditioning)
	that solves Eq.~(\ref{eq:la}).
	The performance of CG could be possibly improved by employing
	a suitable preconditioner;
	however, we do not expect this to change our
	results qualitatively.
	Both of these algorithms were implemented
	in NetworKit and share the graph data structure with our
	new Katz implementation.
	We remark that for the static case,
	both CG and our Katz algorithm could be implemented
	on top of a CSR matrix data structure to improve the data locality
	and speed up the implementation.

\subparagraph*{Experimental setup}
	We evaluate our algorithms on a set of complex networks.
	The networks originate from diverse
	real-world applications and were taken from SNAP~\cite{leskovec2016snap}
	and KONECT~\cite{kunegis2013konect}.
	Details about the exact instances that we used can be found in
	Appendix~\ref{sec:instsel}.
	In order to be able to compare our algorithm to the CG algorithm,
	we turn the directed graphs in this test set into undirected graphs
	by ignoring edge directions. This ensures that the adjacency matrix
	is symmetric and CG is applicable.
	Our new algorithm itself would be able to handle directed graphs just fine.

	All CPU experiments ran on a machine with dual-socket Intel Xeon E5-2690
	v2 CPUs with 10 cores per
	socket\footnote{Hyperthreading was disabled for the experiments.} and 128 GiB RAM.
	Our GPU experiments are conducted on an NVIDIA P100 GPU which has
	56 Streaming Multiprocessors (SMs) and 64 Streaming Processors (SPs) per SM
	(for a total of 3584 SPs) and has 16GB of HBM2 memory.
	To effectively use the GPU, the number of active threads need to be
	roughly 8 times larger than the number of SPs.
	The Hornet framework has an API that enables such parallelization
	(with load balancing) such that the user only needs to write a few lines of code.

\subsection{Evaluation of the static Katz algorithm}
	In a first experiment, we evaluate the running time of our static Katz algorithm.
	In particular, we compare it to the running time of the linear algebra
	formulation (\ie the CG algorithm) and Foster \etals heuristic.
	We run CG until the residual is less than $10^{-15}$ to obtain a
	nearly exact Katz ranking
	(\ie up to machine precision; later in this section, we compare to CG runs with
	larger error tolerances).
	For Foster's heuristic, we use an error tolerance of $10^{-9}$,
	which also yields an almost exact ranking.
	For our own algorithm, we use the ranking convergence criterion (see Section~\ref{sec:static})
	and report running times
	and the quality of our correctness guarantees for different values of $\epsilon$.
	All algorithms in this experiment ran in single-threaded mode.

	Table~\ref{tbl:basic_perf} summarizes the results of the evaluation.
	The fourth column of Table~\ref{tbl:basic_perf} states the fraction
	of separated pairs of nodes.
	This value represents
	a lower bound on the correctness of ranking. Note
	that pairs of nodes that have the same Katz score
	will never be separated. Indeed, this seems to be the case for
	about 0.001\% of all pairs of nodes (as they are never separated, not even
	if $\epsilon$ is very low). Taking this into account, we can
	see that our algorithm already computes the correct ranking
	for $99\%$ of all pairs of nodes at $\epsilon = 10^{-3}$.
	At this $\epsilon$, our
	algorithm outperforms the other Katz algorithms considerably.

	\begin{figure}[t]
		\includegraphics{ranktime}
		\caption{Katz performance on individual instances}
		\label{fig:ranktime}
	\end{figure}

	Furthermore, Table~\ref{tbl:basic_perf} shows that
	the average running time of our algorithm
	is smaller than the running time of the Foster \etal and CG algorithms.
	However, the graphs in our instance set vastly differ in
	size and originate from different applications; thus, the average
	running time alone does not give good indication for performance
	on individual graphs.
	In Figure~\ref{fig:ranktime} we report running times of
	our algorithm for the ten largest individual instances. $\epsilon = 10^{-1}$ is
	taken as baseline and the running times of all other algorithms
	are reported relative to this baseline.
	In the $\epsilon \leq 10^{-3}$ setups, our Katz
	algorithm outperforms the CG and Foster \etal algorithms on
	all instances. Foster \etals algorithm is faster than our
	algorithm for $\epsilon = 10^{-5}$ on three out of ten instances.
	On the depicted instances, CG is never faster than our algorithm,
	although it can outperform our algorithm on some small instances
	and for very low $\epsilon$.

	Finally, in Figure~\ref{fig:topk}, we present results of our Katz
	algorithm while using the top-$k$ convergence criterion. We
	report (geometric) mean speedups relative to the full ranking criterion.
	The figure also includes the approach of Nathan \etal~\cite{nathan2017guarantee}.
	Nathan \etal conducted experiments on real-world graphs and concluded
	that solving Eq.~(\ref{eq:la}) with an error tolerance of $10^{-4}$
	in practice almost always results in the correct top-$100$ ranking.
	Thus, we run CG with that error tolerance.
	However, it turns out that this approach is barely faster than
	our full ranking algorithm. In contrast to that, our top-$k$ algorithm
	yields decent speedups for $k \leq 1000$.

\subsection{Evaluation of the dynamic Katz algorithm}
	\begin{figure}[t]
		\begin{minipage}{0.475\textwidth}
			\includegraphics{topk}
			\caption{Top-$k$ speedup over full ranking}
			\label{fig:topk}
		\end{minipage}\hspace{0.05\textwidth}%
		\begin{minipage}{0.475\textwidth}
			\includegraphics{dynspeedup}
			\caption{Dynamic update performance}
			\label{fig:dynspeedup}
		\end{minipage}
	\end{figure}

	In our next experiment, we evaluate the performance of
	our dynamic Katz algorithm to compute top-$1000$ rankings
	using $\epsilon = 10^{-4}$. We select $b$ random edges
	from the graph, delete them in a single batch and run our dynamic
	update algorithm on the resulting graph. We vary the batch size $b$
	from $10^0$ to $10^5$ and report the running times of the dynamic
	graph algorithm relative to recomputation.
	Similar to the previous experiment, we run the algorithms in
	single-threaded mode.
	Note that while we only show results for edge
	deletion, edge insertion is completely symmetric in Algorithm~\ref{algo:dynamic}.

	Figure~\ref{fig:dynspeedup} summarizes the results of the experiment.
	For batch sizes $b \leq 1000$, our dynamic algorithm offers a considerable
	speedup over recomputation of Katz centralities.
	As many of the graphs in our set of instances have a small diameter,
	for larger batch sizes ($b > 10000$), almost all of the vertices
	of the graph need to be visited during the dynamic update procedure.
	Hence, the dynamic update algorithm is slower than recomputation
	in these cases.

\subsection{Real-time Katz computation using parallel CPU and GPU implementations}
	Our last experiment concerns the practical running time
	and scalability of efficient parallel CPU and GPU implementations
	of our algorithm.
	For this, we compare the running times of our shared-memory
	CPU implementation with different numbers of cores.
	Furthermore, we report results of our GPU implementation.
	Because of GPU memory constraints, we could not
	process all of the graphs on the GPU. Hence, we provide the results
	of this experiment only for a subset of graphs
	that do fit into the memory of our GPU.
	The graphs in this subset have between 1.5 million and
	120 million edges.
	We use the top-$10000$ convergence criterion with $\epsilon = 10^{-6}$.

	Figure~\ref{fig:partime} depicts the results of the evaluation.
	In this figure, we consider the sequential CPU implementation as a baseline.
	We report the relative running times of the 2, 4, 8 and 16 core CPU configurations,
	as well as the GPU configuration, to this baseline.
	While the parallel CPU configurations yield moderate speedups over
	the sequential implementation, the GPU gives a significant speedup
	over the 16 core CPU
	configuration\footnote{At time of writing, our CPU implementation
		uses a sequential algorithm for partial sorting; this is
		a bottleneck in the parallel CPU configurations.}.
	Even compared to a 20 core CPU configuration (not depicted in the
	plots; see Appendix~\ref{sec:addexps}), the GPU achieves a (geometric)
	mean speedup of $10\times$.

	The CPU implementation achieves running times in the
	range of seconds; however, our GPU implementation reduces this running time
	to a fraction of a second.
	In particular, the GPU running time
	varies between 20 ms (for roadNet-PA) and 213 ms (for com-orkut),
	enabling near real-time computation of Katz centrality even for graphs with
	hundreds of millions of edges.
	\todo{Real-time argument could be improved.}

	\begin{figure}[t]
		\includegraphics{partime}
		\caption{Scalability of parallel CPU and GPU implementations}
		\label{fig:partime}
	\end{figure}

\section{Conclusion}
	In this paper, we have presented an algorithm for Katz centrality that
	computes upper and lower bounds on the Katz score of
	individual nodes. Experiments demonstrated that our algorithm
	outperforms both linear algebra formulations and approximation
	algorithms, with speedups between 150\% and 350\%
	depending on desired correctness guarantees.

	Future work could try to provide stricter per-node bounds for Katz centrality
	to further decrease the number of iterations that the algorithm requires
	to convergence. In particular, it would be desirable to prove per-node bounds
	that do not rely on $\alpha < 1/\deg_\mathrm{max}$. On the implementation side,
	our new algorithm could be formulated in the language of GraphBLAS~\cite{kepner2016gblas}
	to enable it to run on a variety of upcoming software and hardware architectures.

\bibliographystyle{plainurl}

redpajama_set_name: RedPajamaArXiv


MissEllizee . Persephone4U. SarahYahn. Lacerta.
LyiyaAngelaHuntStephSquirt69MaskedItalian .MoniqueRozennSexyAngelina122CMcock4UEnergi .ScarlettSmithxSongOfTheSeaHaileeHarrisMAXgayPLEASURE .AngelicaVelezLJforeplaySirenaFoxKren28 .LovelyReneReallSlaveAlexandeer4youBrigitteDevon .LJforeplayPersephone4ULyiyaEleonoraNicole .LyiyaReallSlavevalerieandsaulGiuliaBocchino .Alexandeer4youLyiyaPersephone4UKristenHurst .EnergiLilySashaSweetAmayaXHaileeHarris .LacertabrunettebigtitVanityNasha22CMcock4U .DACHBOYLianaSunnUrMissJaneLinaSmily .
JeffXCrossMiaPearlleRalfandEmilyLJforeplay .alisunshanex10HOTsweetJULLIAxDOMINANTforCUMxDaliaOlsen .zeeyabeeaLesleyHotCATAORTIZ10HOTsweetJULLIA .MAXgayPLEASURERalfandEmilyAlexandeer4youRalfandEmily .LesyaHotGinaaBBxDOMINANTforCUMxLyiya .LovelyReneLJforeplayDEMMENTannalynne07 .SweetAmayaXAnneRedxDOMINANTforCUMxQueensizeTS4u .annalynne07ninalivexalexismancockAngelicaVelez .annalynne07HaileeHarrisJeffXCrossmila2sweet .StephSquirt69strongboycockLinaSmilyAlexandeer4you .EleonoraNicolestrongboycockNicoleErosMistressFunen .


text:
Live Chasers
1955-05-25 Udall, KS Tornado
Thread starter Mike Johnston
Weather and Chasing
Historical weather events
1960s and earlier
The tornado that demolished Udall in 1955 must have been one of the spookiest storms of all times. Completely unprepared, this very small Kansas town was practically wiped off the map in a nighttime tornado that came without warning. It still ranks as the worst natural disaster in Kansas history. For a complete description of the event, refer to Mike Smith's book Warnings which has a whole chapter devoted to it. Kansans still speak of this event in hushed tones, as if it were a gruesome midnight murder or something, which it practically was.
Reactions: Guy Yocom, John Olexa and Caleb Grunzke
Caleb Grunzke
I find these historic events to be very interesting. This is a worst case scenario as the tornado sounds like it was rain-wrapped and, as you mentioned, at night. There's not much the weather service could have done with their extremely primitive radar. Just unfortunate.
John Olexa
La Plata, Maryland
Thanks Mike. I will look for that book. Udall still ranks as the 25th deadliest tornado in U.S. history.
Andy Berrington
Looking at some of the damage pictures, it is likely that this was one of the most violent tornadoes of at least the 1950s. It was almost as complete of a wipeout as you can get. This storm produced some of the most severe vehicle mangling I've ever seen, highlighted by this photo...
This tornado also had a very high casualty rate, with ~1/2 of the population being killed or injured, which can be an indicator of extreme intensity, along with obviously the time it struck. I consider this case somewhat analogous to Greensburg, with a nighttime, northward-moving, intense, cyclic supercell (which also produced the Blackwell F5). The sketches of the radar echoes at the time are actually somewhat similar to the Greensburg/Trousdale storm.
Very observant of you to recognize the similarity in radar signatures between Udall and Greesnburg. This was actually a point that Mike Smith made in his book. Notice the Udall tracings were made from the Tinker AFB radar, as it likely had a better look than Wichita at the time. The Wichita radar was affected by attenuation, as there were 2 intervening storms between the Wichita radar site and Udall. Obviously, the watch/warning system was far advanced for the Greensburg storm.
Shawn Schuman
In researching an article I wrote on the 4/9/47 Glazier - Higgins - Woodward event, I came across something very interesting pertaining to this event. There was a woman named Agnes Hutchinson who was impacted by the Woodward tornado, and her husband and youngest son were killed. She survived but she lived in fear for quite some time, until she eventually decided to move. Guess where she moved to? Udall, Kansas. And sure enough, she was directly affected by that tornado as well. It completely destroyed her home and her possessions, but fortunately no one was killed. She's certainly not the only person to have ever been struck by two different tornadoes, but I think it's pretty extraordinary to have been impacted by two of the deadliest, most violent tornadoes ever recorded in the United States, and for it to happen all within eight years!
If anyone's interested, here is the article. And here's a snippet from the end of Agnes' story:
The material loss was staggering, but the emotional toll was hard to appreciate for those who had not lived through it. Agnes Hutchinson fell deeply into shock after her husband and youngest son were killed. She did not cry at the funeral, nor did she cry at all for some time. She kept herself constantly busy, cobbling together a small shack with whatever building material could be salvaged from the wreckage of the previous home, the home her husband had built for his family with his own hands. She, like so many in Woodward, could not sleep without keeping one eye focused on the window, fearful the swirling winds would return and determined to be ready. Agnes could never forget, but she slowly healed, and within a few years she'd remarried and had four more children. She and her family made their new home in Udall, Kansas. At 10:35 p.m. on May 25, 1955, the roaring winds did return. One of the most violent tornadoes in history obliterated much of the small town, killing 80 people. Agnes again lost her home and much of her property, but her family was safe. After the immeasurable loss she suffered on that early spring night in Woodward, that was all that mattered.
I think Udall overshadows just how devastating the Blackwell, OK tornado was as well. Here are a few photos from each event.
Udall:
Blackwell:
Reactions: Guy Yocom, Alex Heimberger and Andy Berrington
Alice Christy
Fleet of Dominators coming out of retirement
Latest: Jonathan Scrogham
Uh. Wow! ChatGPT
Advanced weather & chasing
National Storm Chaser Summit Feb 3 - Feb 5, 2023 in Midwest City, OK (Near Oklahoma City)
Latest: Joey Ketcham
STORMTRACK: Announcements
Stormtrack Light

redpajama_set_name: RedPajamaCommonCrawl


The lubrication system of jaw crusher is one of the important parts of the equipment. If the lubrication system does not work well, it will greatly affect the production. Therefore, in the daily production, we must be careful to check the lubrication system and maintain the lubrication system of the jaw crusher well.
1. When the jaw crusher is at work, listen the gear pump whether there is crashing noise in it or not, and check the value of the hydraulic table, the fuel inside the tank and lubrication systems whether there is oil leaking phenomenon or not, etc. If the oil is not enough, supple it immediately.
2. Check the returning oil of the pipe to see whether there is metal powder and other contaminants in it or not. If there is, you should stop the equipment immediately and open the bearing and other lubricated parts to inspect and promptly clean it. Ensure that the pipe is unobstructed.
3. In the production, we should pay attention to check the temperature of the bearing, and judge whether the lubrication system is normal or not through the temperature. If the temperature of the bearing is too high, then the lubrication system may be failure. You should stop the equipment and check it immediately.
1. If dust, dirt and other debris enter into the lubrication system, they will destroy the lubricating oil film and make the oil deterioration, leading the equipment to loss lubrication, accelerating the wear of components, and shortening the service life of the equipment. So we must keep the lubrication system clean.
2. Change the lubricant of the tank every six months. When you change the lubricant, you should clean all the lubricated components, and the equipment can be continued to use until the components are completely dried in the air.


Edited by peyote, 31 December 2008 - 08:34 PM.
Edited by 4nGel, 30 December 2008 - 04:49 PM.
translated: old yearsday is SOOOOO 2008!
I wish you all a good new year , may it better then the last one , party much and have lots of fun .
We (EU) will have a "5..4..3..2..1..ZEROOOOO" before you, Canadians and Americans!
edit: may I use this topic for a news topic?
Or at least the image you made 4nGel?
Edited by peyote, 31 December 2008 - 06:43 PM.
2009 should be an exciting year... my new year's resolution is to find Hans Wurst in Balance and make all his base belong to us!!!
Edited by Mongo, 31 December 2008 - 08:27 PM.


It's always nice to start off a new month with a brand new shareholder getting a Supreme Protector's Tip of the Hat™. Maniacal Laughter Ltd. proved that it's a responsible corporate citizen when it purchased 2,000 New Order shares and sent us past the 216 billion isk mark! The corporation earns a Double Supreme Protector's Tip of the Hat™ for this achievement.
Carry On Friend was designated as the representative of Maniacal Laughter Ltd. to receive said Double Supreme Protector's Tip of the Hat™. Responsible corporate citizens of highsec, you could be next! Our cause is just, so the isk keeps flowing.
We are happy to be a part of the lawful democratic society of High-Sec! We are very grateful of Supreme Protector's gracious acknowledgement of our most illustrious Agent Carry On Friend's contribution! It is our honor to give our lives to make High-Sec a safer and more respectful place for all citizens.
CODE's delusion that they actually matter (at all) is one of the most amusing things I've encountered as a miner.
Firstly... why does D400 single-handedly account for 40%-50% of CODE's damages? That is pretty pathetic. One guy should not be outdoing dozens upon dozens.
Gevlon Goblin, while operating for a mere handful of months, has had more of an effect on miners than CODE has in it's entire existence. I watched CODE come into my areas of operation over and over, months on end, and never saw one miner change his habits. In one week, Gevlon Goblin was able to get half the miners to quit, the other half to used tanked Skiffs. Almost no one would go AFK when he was online.
Think about that, guys. One random dude in 3 months having more of an effect than 150+ of you have in well over a year. This is why people always say, CODE members are the bottom feeders of the EVE community. They are like the brothers of the miners. Not too different, and as a result very competitive. A brother always tries to convince himself he's better than his brother, but on the outside everyone see's them as one in the same.
Lastly, I had figured when reading this site that CODE members were master trolls or something; that they would be rather difficult to one-up in a verbal engagement. What I have found is James' clearly ignores the 4/5 times CODE members get verbally raped, and instead chooses to post the 1/5 times they come out victorious.
There is nothing more amusing than watching a CODE member exit a system in silence after being ridiculed in local and having no comeback whatsoever.


text:
Home World
Nobel science laureates stress urgency of addressing climate
Nobel Physics Laureate Didier Queloz speaks during a press conference at the Royal Swedish Academy of Sciences in Stockholm, Sweden Saturday, Dec. 7, 2019. Photo: AP
Stockholm, AP
Nobel Prize laureates gathered in Stockholm to receive their awards took the opportunity today to stress the importance of addressing climate change.
Winners of the prizes in physics, chemistry and economics made the assessment today ahead of next week's presentation of the prizes. The remarks come as a global summit on climate change takes place in Madrid.
Didier Queloz, who shared the physics prize for discovery of an exoplanet orbiting a sunlike star, took issue with people who shrug off climate change on the grounds that people will eventually leave Earth.
"I think this is just irresponsible because the stars are so far away I think we should not have any serious hope to escape the Earth," he said.
"Also keeping in mind that we are a species that has evolved and developed for this planet. We're not built to survive on any other planet than this one. We'd better spend our time and energy trying to fix it."
Esther Duflo, one of the economics laureates, cautioned that dealing with climate change "will require a change in behavior, particularly in the rich countries" that are heavy consumers of goods and energy.
While some believe that there is no need to consume less provided consumption is fueled by renewable energy, "it would be great if that were the case but I don't think we can count on it necessarily," Duflo said.
M Stanley Whittingham, who shares the chemistry award for helping develop lithium-ion batteries, said "to help solve the climate issue, the time is right now, but we have to be pragmatic. ... We can't just turn off all the CO2."
Canadian-American James Peebles, who gets half of this year's 9-million-kronor ($948,000) physics prize for studying what happened soon after the Big Bang, later told The Associated Press he is excited about the wave of youthful climate change protesters.
"I see these people in Princeton, my home town, as they go marching for control of climate. It is a wonderful thing. I love their enthusiasm, their energy, their devotion to something very worthwhile," he said.
Whittingham also told the AP he was encouraged by the protests: "Maybe some of the young folks don't realize how long it takes. But I go back to the Vietnam War era and the United States where it was really the young people that pushed the politicians to get out and stop that nonsense."
Climate Change tops list of global worries for young people: Amnesty
Perils of climate change: Time for action
Floods predicted to uproot 50m yearly as climate heats up
PM urges int'l community to adopt appropriate climate action plan
Popular In World
Bollywood star slams Uber after 'scariest experience'
ICJ's rule in Myanmar genocide case Jan 23
Iran formally accused of breaking nuclear deal
Trump warns Khamenei to be 'careful with his words'
China moves to phase out single-use plastics
Prince Harry, Meghan to give up royal titles
US, China sign 'momentous' trade deal
Iran can take fight beyond its borders: Khamenei
60 killed in Houthi attack in Yemen
5,000 feral camels culled in drought-hit Australia
One killed, several injured in Seattle mass shooting
N Korea says may seek 'new path' of weapons build-up
Putin forms new govt, keeps key ministers


text:
19 People Have Been Murdered in Mexico by Cartels Fighting Over the Avocado Trade
By Matt Keeley On 8/12/19 at 7:41 PM EDT
News Avocado Mexico Mexico Drug Cartels
Last Thursday, nineteen bodies were displayed around the Mexican city of Uruapan, in the state of Michoacán. A local cartel took the credit for the murders, saying the victims had acted against the cartel.
Nine of the bodies had been displayed over a bridge, with another seven bodies found underneath a nearby pedestrian overpass. Another three victims were found dismembered along the street. All victims had been shot to death before their bodies were put on display.
The Jalisco New Generation Cartel (CJNG) took credit for the murders. Members of the cartel allegedly hung a banner near some of the victims, saying that those killed had helped the cartel's rivals.
"We want to make clear that whoever helps La Chatarra, Ronal, Ratón, Moto, Mono Verde, Maniaco or Filos will end up like this," the message read, according to Mexico News Daily. "Kind people, go on with your routine. Be patriotic, and kill a Viagra." "Kill a Viagra" refers to members of Los Viagras, one of CNJG's rival gangs.
The avocado industry is worth $1.5 billion in the Mexican state of Michoacán alone; Mexico provides 45 percent of the world's avocados. MARK RALSTON/AFP/Getty Images
According to Michoacán Attorney General Adrián López Solís, there has been a "turf war" amongst the cartels in the Mexican state.
"[The cartels] are fighting for territorial control over the production, distribution and consumption of drugs. That leads to this type of incident, which alarms the population, and rightfully so," he said, according to Al Jazeera.
However, cartels may also be fighting over another, perhaps unexpected, revenue source: the avocado trade. Mexico produces 45 percent of the world's avocados, and Michoacán produces the most avocados in Mexico. According to the International Crisis Group, Michoacán's avocado industry is worth $1.5 billion.
According to a news analysis by Density Design, CJNG shares the avocado trade in Michoacán with several other cartels, as well as with legitimate businesses.
"The big magnet here is avocados," Falko Ernst, an International Crisis Group researcher told The Guardian.
Avocado prices are at a high—a 24-pound carton of avocados from Michoacán sells for $66, almost twice as much as last year's price. The high price is due to last year's heatwave in California. Not only was July 2018 California's hottest month ever, according to the National Oceanic and Atmospheric Administration (NOAA), but the span from July-August 2018 was the second hottest in California's history.
With the world's supply of avocados at a low, people are willing to pay a premium for Mexican avocados—and those supplies are now running out.
Restaurants Are Turning To Faux-Guacamole Due To High Avocado Prices
Prosecutors Ask Federal Judge for 'El Chapo' to Forfeit His $12.7 Billion
U.S. Soldiers Accused of Selling Weapons to Cartel


Membership of Alton Tennis Club is open to all. We pride ourselves on being a friendly local tennis club with a personal touch; we would be pleased to welcome you, whether you are a beginner, intermediate or competitive player. We are sure you will enjoy Alton Tennis Club, both the tennis and the social side of being a member.
Fees may be paid annually or monthly (the latter costs slightly more, with 1/10th of the annual amount payable on the first day of each month for 12 months).
Alton Tennis Club is proud to be affiliated to Lawn Tennis Association (LTA), and affiliation fees and British Tennis Membership are included in our annual membership.
Alternatively, you can download the membership form below.
Please see below for terms and conditions of membership of Alton Tennis Club.
A Weekday member may only play between Monday-Friday 9 a.m - 6 p.m.
A Student member must be in full-time education at the start of the membership year, i.e. 1st April.
Where an age limit is set for a category (U14 and U18), the Junior must be U14 or U18 accordingly as at 1st April.
Parent Social entitles a parent / guardian to act as a hitting partner for a Junior; to play during their Junior's coaching session; and full access to clubhouse facilities. Courts cannot be booked, and the court must be ceded if full-paying members turn up to play.
Club membership subscriptions include British Tennis Association membership. Members should register on the LTA website and opt in to the Wimbledon ballot to maximise the number of Wimbledon tickets allocated to the club.


A Special Leave Petition (SLP) has been filed in the Supreme Court, challenging the media gag order passed by the Patna High Court in the case concerning sexual abuse of minor inmates of shelter homes in Muzaffarpur, Bihar.
The petitioner, Nivedita Jha has now challenged this blanket ban on media as unreasoned and patently erroneous, in the SLP filed through Advocate Fauzia Shakil.
It has been submitted thereby that the High Court had passed the non-speaking order, ignoring the fact that it amounts to a gross infraction of the fundamental right of the people to know and the Constitutionally guaranteed freedom of press under Article 19.
The petitioner has asserted that there is nothing on record to support the apprehension that media reporting in the Muzzaffarpur shelter homes case would prejudice the investigation in any way. Further, neither were such apprehensions raised, nor a request for a media gag made by the investigative agencies in the case.
On the other hand, it is argued that the Patna High Court order disregards the role of responsible media reporting in advancing the case.
In this regard, the petition quotes the example of Arrah Juvenile home, in which case the minor inmates complained of the abuse suffered by them because of the media reporting in the Muzaffarpur shelter home case.
Inter alia, the petitioner has also referred to the 2012 Supreme Court case of Sahara v. SEBI to argue against unreasoned, blanket media gag orders.
On these grounds, the petition has prayed for the Supreme Court to stay the Patna High Court's media gag order.


View Healthgrades for reviews, insurance, experience and booking information. Call for an appointment today.
Find and research local Dermatologists in Lake Mary, FL including ratings, contact information, and more.
Practice Information: 120 International Pkwy. Suite 240. Heathrow, FL 32746. Phone: (407) 333-4200. fax: (407) 829-6637. Review our office on Yelp.
Find a Dermatologist near you in Lake Mary, FL. See all Dermatologist office locations in Lake Mary, doctor ratings and insurance accepted.
Anthony E. Albregts, M.D. Board Certified Dermatologist . Dr. Albregts has been practicing dermatology in the Reno and Fallon area since 1995. Dr. Albregts is a member of the Washoe County Medical Society, the American Academy of Dermatology and the American Board of Dermatology.
Visit RateMDs for information on Dr. Magued Ibrahim in Lake Mary. Get contact info, maps, medical practice history, affiliated hospitals & more.
Dr. George Papanicolaou, MD is a plastic surgery specialist in Lake Mary, FL and has been practicing for 11 years. He specializes in plastic surgery, general surgery, and more.
Dr King is a nice woman, pleasant and super sneaky/tricky. She is at best a snake oil salesman and underhandly profits from her patients with disregard to their true well being.


We are commercial lock change experts, offer top-notch residential locksmith services, have the best auto locksmith team in Illinois and provide emergency lockout service 24/7. We repair locks and keys fast, rekey master locks and fix car key chip problems.
Improve the security of your home, office and car with the specialist solutions of "Locksmith Palatine". Our company is a leading provider of lock and key services ranging from installation to repair, rekey and replacement. Rely on us to provide emergency assistance 24/7. Our mobile team does everything from fixing damaged locks and replacing transponder keys to providing lockout assistance and emergency trunk opening. As part of our scheduled services, we carry out large and complex projects from the setting up of master key systems to the installation of safes. Our specialists will do everything necessary to make your property as secure as it has to be.
* Repair - We fix locksets and keys of all types and brands including ones which have electronic components and use digital technology. When a component such as a cylinder or a screw has to be replaced, spare part of the highest quality is used for achieving the best result.
* Rekey - In case of lost house keys, the lock is rekeyed so that the person who finds them will not be able to get inside. Our technicians will change the pin configuration of the cylinder and ensure smooth operation of both the lockset and the new keys.
* Replacement - When lock repair will not resolve the problem, our specialists will replace the lockset with a new one. You can readily opt for a more advanced device for getting even higher security.
All of these services and more are available on an emergency basis at Locksmith Palatine. We answer the phone quickly and arrive shortly regardless of your location or the time of day. Even the most specific and complex solution is implemented on the spot. If you are locked out of your vehicle because of a lost or broken ignition key, our technician will deliver a precisely matching replacement unit with the same functionality and perfect strength and durability.
You can hire our office, home and auto locksmith services by appointment too. Our company has extensive experience in projects for lock upgrading, ignition change and overall security improvement. To ensure that you will get excellent results, we can run an assessment and help you with the selection of the new locking devices before fitting them. Our professionals are always open to answering questions and giving advice to our customers.
Leave us a note or give us a call for more information. We are always at your service.


Who, exactly, is the Trustee in a Bankruptcy Case?
When declaring bankruptcy it is required to have an official and impartial party that is either a licensed Insolvency Practitioner or an Official Receiver who will act as the administrator of your bankruptcy case. Whether a licenced Insolvency Practitioner will be appointed a Trustee is dependent upon the assets involved in the case, this usually depends on whether there will be important assets that are required to be realised, or if the actual process of realisation is likely to be complex.
What are the differences between the Trustee and the Official Receiver?
The trustee has the role described in the previous paragraph; however the Official Receiver has the additional duties of being responsible the protection of your estate, as well as investigating any of your affairs.
What can a Bankruptcy Trustee actually do?
The Trustee has several administrative and investigative powers that allow them to deal with your assets and bankruptcy effectively, a number of these powers rely on the Sanctioning by a Court, while others can be used freely without the need of any sanctions.
-	The Trustee may submit an application to the Court for the redirection of your mail.
-	The Trustee can apply to the Court for any person believed to be in possession of your property to be summoned for a private examination.
-	In dire cases, the Trustee may request that the Court issue a warrant for the person claiming bankruptcy and can also seize any and all of the property relating to the bankruptcy estate.
These are only but a few examples, but it is a clear demonstration of the power a Bankruptcy Trustee may have over you should you decide to claim and what the subsequent consequences will be.
What rules does the Bankruptcy Trustee have to follow?
The power and duties assigned to a Trustee originate from the primary and secondary legislation of Insolvency Law. They are also expected to follow the ethical guidelines as set by their licencing body. If you believe that the trustee is operating outside of these set guidelines, then you may submit a complaint to that licensing body. If you further disagree with a decision or an act made by the trustee, then you are permitted to apply to the court to have the decision changed.
Am I Required to Co-operate with the Trustee in Bankruptcy?
By law, you are required to do so, but this does not mean you do not have any rights to defend yourself with. You have the right to challenge any decision made by the Trustee by applying to the Court. Whether you will actually succeed is dependent on the acts committed by the Trustee, and whether they have acted or have tried to avoid the laws or not. If you do not co-operate with the Trustee, then it is possible for your discharge from bankruptcy to be suspended, resulting in the Trustee being forced to exercise their investigative powers. If anything that was previously concealed was then found, for example, a property, investment or back account, then you might become victim to a bankruptcy offence, this crime is often punished by either a fire, imprisonment, or even both.
Whether you live in Sydney, Melbourne or elsewhere, a great place to find a local Trustee Agency near you is to look it up in AussieWeb.com.au, which hosts plenty of listings where you can find a Trustee you can trust.


An account of events that took place in 2011 during the Libyan revolution, which states that the UNESCO Director-General's appeals to protect Libyan cultural heritage played an instrumental role in avoiding serious damage to the property.
The information provided by the State Party demonstrates its commitment to the conservation of the property despite the prevailing conflict situation in the country and implies that the property did not incur serious damage.
Nevertheless, the prevailing situation continues to raise high concern about the capacity of the responsible authorities to ensure the protection and conservation of the property. It is recommended that Committee reiterate its request to the State Party to submit more detailed information about the situation at the property, and to invite, as soon as the security conditions permit, a joint World Heritage Centre/ICOMOS mission in order to assess the state of conservation of the property and elaborate, in cooperation with the relevant stakeholders, an action plan for the property. It is also recommended that the Committee reiterate the call made at its 40th session (Istanbul/UNESCO, 2016) for the international community to provide support to the State Party, especially in the implementation of the measures identified during the International Meeting on the Safeguard of Libya's Cultural Heritage (Tunis, May 2016). The report is available at the following web address: https://whc.unesco.org/en/news/1496.
Decides to retain Old Town of Ghadamès (Libya) on the List of World Heritage in Danger.


text:
https://www.nhregister.com/news/article/Percolate-over-this-The-Peabody-pours-Coffee-11616819.php
Percolate over this: The Peabody pours 'Coffee: The World in Your Cup' (video)
Jim Shelton, Register Staff
Published 12:00 am EDT, Thursday, June 3, 2010
"We want to make people think about what it means when they pour their cup of coffee in the morning," says Jane Pickering, director of public programs at Yale Peabody Museum of Natural History. (Arnold Gold/Register) less
"We want to make people think about what it means when they pour their cup of coffee in the morning," says Jane Pickering, director of public programs at Yale Peabody Museum of Natural History. ... more
NEW HAVEN -- To think, all this time we've been craving a bug paralyzer.
Coffee, that wondrous beverage associated with everyone from beatniks to baristas, finally gets its due in a new exhibit at the Yale Peabody Museum of Natural History. It's an eye-opener in more ways than one.
"We want to make people think about what it means when they pour their cup of coffee in the morning," says Jane Pickering, director of public programs at the museum. "We want them to see the complexity of it."
The exhibit, called "Coffee: The World in Your Cup," is a robust blend of anthropology, botany, history, economics, ornithology and environmentalism. It also may be the first museum exhibit with a local coffee shop, Willoughby's Coffee & Tea, as a presenting sponsor.
Willoughby's is even planning a free (with museum admission fee) coffee tasting at the Peabody, from 11 a.m. to 1 p.m. Saturday. Founders and co-owners Barry Levine and Bob Williams will have as many as five blends available for a comparative tasting of different regional flavors and processing techniques.
"For such a widespread commodity, consumers have little knowledge of coffee," Levine explains. "There are tens of millions of people involved in the coffee industry. It's a very human endeavor, in a humbling way."
Despite its caffeinated concept, "Coffee" is remarkably low-key, stressing information more than interactivity.
The exhibit features four short videos, color photographs showing the coffee industry around the world and artifacts such as antique coffee serving sets from Turkey and Ethiopia. There's also a coffea arabica plant on loan from Yale's Marsh Botanical Garden.
Ethiopians first discovered coffee more than 1,000 years ago. Of course, back then people only cared about eating the fruit surrounding the coffee bean, not making use of the bean itself. It wasn't until the Middle Ages that roasting and grinding beans became fashionable.
The first coffeehouse popped up, not on the TV show "Friends," but in Constantinople in the late 1400s. By the late 1600s, male-only coffeehouses were so popular in Europe that some husbands were having their mail delivered to the local coffeehouse, since that's where they spent so much of their time.
Meanwhile, at a more basic level, plants long have used caffeine as a way to paralyze and kill bugs; also, coffee has more flavor-producing chemicals than wine.
Today, it's a $60-billion-a-year industry worldwide.
Brazil produces more than 36 million, 60-kilogram bags of coffee annually, followed by Vietnam (18.2 million), Colombia (12.4 million), Indonesia (6.4 million) and Ethiopia (5.7 million). A kilogram weighs 2.2 pounds. America leads in annual coffee consumption, at more than 18 million 60-kg bags per year.
A major part of the coffee exhibit focuses on the environmental impact of coffee production.
For example, there is the advent of hybrid coffee plants that can grow in full sunlight. Previously, coffee plants were cultivated only in shady or semi-shady conditions, under a natural canopy.
Full-sun plants enabled coffee producers to bulldoze large tracts of forest to maximize their crops. In turn, this has destroyed the habitat of a variety of migratory birds, including many that are commonly seen here in the Northeast.
To illustrate this, the Peabody has brought out more than a dozen specimens from its bird collection for the exhibit. They include the Baltimore oriole, scarlet tanager, indigo bunting, American kestrel, sharp-shinned hawk, barn swallow and Tennessee warbler (also known as the coffee warbler).
"They have nowhere to go, as forests are being cut down to plant more coffee," Pickering says.
The human dimension of coffee production also is addressed. The exhibit details the "fair trade" coffee movement around the world, which encourages farmer cooperatives and other measures to establish better compensation for coffee farmers in poor countries.
"There is great complexity in the process of getting it from the plant to the cup," Pickering says. "It's amazing, if you think about it."
Contact Jim Shelton at 203-789-5664.


text:
What are the ball numbers for the FA Cup draw?
Japanese chip equipment manufacturers are in the dark about new Chinese…
Pressured Ruto to lower prices of crucial raw materials
Suns could move on from Chris Paul, Per NBA Executives
Users of Samsung Galaxy smartphones are at high risk, the Indian…
Home Entertainment World Entertainment Chris Evans and girlfriend Alba Baptista joke around with each other in...
Chris Evans and girlfriend Alba Baptista joke around with each other in new Instagram video
That one stan account will not be happy about this…. On Jan. 6, Chris Evans shared an adorable series of videos with his girlfriend, Alba Baptista, as a way to "look back at 2022."
In case you forgot, the 41-year-old Captain America star has been dating 25-year-old Baptista for over a year, according to a People report from November 2022. "It's serious," a source told the outlet. "They are in love and Chris has never been happier. His family and friends all adore her."
Romance aside, Evans and Baptista's first year together also seems to be filled with jump scares. The compilation video shared by PeopleIn's Sexiest Man Alive, the pair repeatedly make the other scream by yelling "babe" or "baby" when they least expect it. Highlights of the video include Evans' terrifying little laundry dance, Baptista throwing her phone, and the fact that one of them has the same standard washer-dryer that came with my apartment.
ALSO READ Kylie Jenner Changed Her Baby Boy Name To Aire: A Guide To Other Kardashian-Jenner Baby Names
As is the nature of the internet, Chris Evans' post was not without criticism. "Delete, many people ask you to delete, it triggers so many people, there are people who pass out and feel sick, please I beg you to delete it, delete the message now, it is forbidden and illegal in many countries to posting something like that makes people cry," one person tweeted in response to the post, which was shared on Twitter by means of Pop desire.
While some of the actor's fans have genuinely taken issue with the couple's 16-year age difference, the dramatic nature of the tweet is likely a joke — or even a reference to a fan account's runaway viral response to Evans and Baptista's relationship . "We are disappointed. We are hurt," @TeamEvans_13 tweeted alongside an open letter to the Marvel actor in November.
ALSO READ Kyle Richards shows off toned arms in black tank top during gym workout...after denying using Ozempic
While the writer suggests in recent interviews that Evans "betrayed" his fans by suggesting he was single, the actor opened up about settling down in his Sexiest Man Alive film. "That is definitely something I want. Wife, kids, start a family," he said. "I like the idea of tradition and ceremony. I had a lot of those in my life, so the idea of creating that, I can't think of anything better.
ALSO READ Kris Jenner pays emotional tribute to Tristan Thompson's mother after death
Originally published on Glamour
Previous articleHealthAtom enables LatAm's small healthcare offices to run cloud-based operations
Next articleFactbox-Who are the die-hard US House Republicans voting for and against McCarthy?
Candice Warner and husband David lead arrivals at the Australian Cricket Awards
Lisa Loring, the original Wednesday Addams, dies at age 64 after 'massive stroke'
The Last of Us Episode 3: Joel and Ellie continue their journey West
However, BP said a continuous supply of oil and gas was needed...
Japanese chip equipment manufacturers are in the dark about new Chinese...
Renault is downsizing Nissan's stake as the automakers rethink their decades-long...


text:
using RimWorld;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using Verse;

namespace AbilityUser
{
    public class Projectile_AbilityAoE : Projectile_AbilityBase
    {
        public Thing target;

        public Vector3 drawpos
        {
            get
            {
                if (this.target != null)
                {
                    return target.DrawPos;
                }
                return destination;
            }
        }

        public override void PostMake()
        {
            base.PostMake();
            TargetingParameters parms = new TargetingParameters();
            parms.canTargetPawns = true;
            target = this.Map.thingGrid.ThingAt(destination.ToIntVec3(), ThingCategory.Pawn);
            if (target != null) Log.Message("FoundTarget");
            if (target == null) Log.Message("No Target??");
        }

        public override void Draw()
        {
            if (target != null)
            {
                Vector3 vector = drawpos;
                Vector3 distance = this.destination - this.origin;
                Vector3 curpos = this.destination - this.Position.ToVector3();
                var num = 1 - (Mathf.Sqrt(Mathf.Pow(curpos.x, 2) + Mathf.Pow(curpos.z, 2)) / (Mathf.Sqrt(Mathf.Pow(distance.x, 2) + Mathf.Pow(distance.z, 2))));
                float angle = 0f;
                Material mat = this.Graphic.MatSingle;
                Vector3 s = new Vector3(num, 1f, num);
                Matrix4x4 matrix = default(Matrix4x4);
                vector.y = 3;
                matrix.SetTRS(vector, Quaternion.AngleAxis(angle, Vector3.up), s);
                Graphics.DrawMesh(MeshPool.plane10, matrix, mat, 0);
            }
        }

        public override void DrawAt(Vector3 drawLoc)
        {
            if (target != null)
            {
                Vector3 vector = drawpos;
                Vector3 distance = this.destination - this.origin;
                Vector3 curpos = this.destination - this.Position.ToVector3();
                var num = 1 - (Mathf.Sqrt(Mathf.Pow(curpos.x, 2) + Mathf.Pow(curpos.z, 2)) / (Mathf.Sqrt(Mathf.Pow(distance.x, 2) + Mathf.Pow(distance.z, 2))));
                float angle = 0f;
                Material mat = this.Graphic.MatSingle;
                Vector3 s = new Vector3(num, 1f, num);
                Matrix4x4 matrix = default(Matrix4x4);
                vector.y = 3;
                matrix.SetTRS(vector, Quaternion.AngleAxis(angle, Vector3.up), s);
                Graphics.DrawMesh(MeshPool.plane10, matrix, mat, 0);
            }
        }

    }
}

redpajama_set_name: RedPajamaGithub


Once in a while we'll find an article that hits home and that we think is worth bringing to your attention. We are adamant about keeping you safe and keeping you safe often means making you aware of the scams you're most likely to encounter.
It's tax season. If you are a U. S. taxpayer, here are the six most popular tax scams being reported this tax season. Keeping you safe means making you aware of these tax scams so you will be looking out for them and thus more likely to avoid them.
The following article is from Clark Howard's financial tips website and was written by Theo Thimou. It is timely and more than worth the time it will take you to read it. It may save you from becoming one of the millions of victims who will fall for one or more of these scams during the 2019 tax season. We hope you'll read this so you won't become a tax scam victim this tax season.
During the last few years, crooks have been stealing people's Social Security numbers and then filing false returns as though they were those people.
The crooks typically claim a low income with high deductions and they file electronically. Then when you go to legitimately file your return, it's rejected by the IRS because somebody else already filed as you!
The whole mess typically takes about 10-14 months to straighten out if you're on the receiving end of the scam.
But it turns out there's an easy solution…You can get an Identity Protection PIN from the IRS before you file your taxes.
The IP PIN is a six-digit number that must be used on a tax return, in addition to the Social Security number, to verify the identity of a taxpayer. Once you opt into the program you can't opt out. If you qualify, you will get a new PIN each year through the mail.
Visit IRS.gov/GetanIPPIN to opt into the program.
This year, there's a new twist on tax return identity theft. The IRS says crooks have been running a successful W-2 email phishing scam operation that has tricked major companies into turning over copies of W-2 forms for all employees.
This is actually a CEO impostor scam, where a criminal or criminals pretend to be top company brass and ask payroll or human resources for sensitive W-2 data.
The premise here is that you have a surprise tax bill you need to pay immediately to the IRS or you'll be arrested. The scammers use phone spoofing to make their number come up list as "IRS." Because they already have the last four digits of your Social Security number, that gives them a further air of legitimacy.
They use common names and fake IRS badge numbers.
They send bogus IRS e-mails to support their scam.
They call a second time claiming to be the police or department of motor vehicles, and the caller ID again supports their claim.
You're told to submit payment either by wire or by prepaid debit card. Know this: The IRS will never contact you by phone asking for money. They communicate exclusively through snail mail.
You can listen to an actual recording a fake IRS scam call here.
Everyone would love to get notice of a secret tax refund waiting for them, right? Well, this area is ripe for exploitation!
Enrolled agent Craig Smalley wrote a piece for NerdWallet that described an encounter one of his clients had with this scam.
The client got an e-mail that looked like it legitimately came from the IRS, promising a $7,000 refund.
A few years back, a supermarket clerk in Washington was able to stop a woman from losing thousands in a scam.
MyEdmondsNews.com reports a 54-year-old woman approached a Safeway clerk trying to buy $2,400 in prepaid cards. But the clerk smelled something fishy. Upon questioning, the woman revealed that she'd received a call from a man who claimed to be with the IRS contacting her about an unpaid tax bill.
Worse yet, the man claimed to be holding the woman's daughter hostage and threatened to kill her if she didn't pay up.
The clerk became suspicious and contacted the police who were able to determine the woman's daughter was safe, and that this was all just a horrible scam.
First off, kudos to this employee who took time to more than serve this customer and save the woman's money. Second, kudos to the police for stepping in so quickly. But as always, the criminal was not caught.
USAToday reported a 20-year-old college student was duped by someone claiming to represent the IRS into putting $500 on three separate iTunes cards and $262 on a fourth, using her debit card.
Why would the student do this? Because she was threatened with arrest.
The scammers call persistently and also may spoof 911 calling your phone as well, according to the report.
With the iTunes gift card scam, the thieves ask you to put money on the card and then read them the 16-digit code off the back. That allows them to quickly access the cash in a way that's untraceable in most cases.
If you have questions regarding tax scams or any other financial or consumer matter, consider calling our free Consumer Action Center. Volunteers are here to help you Monday-Thursday 10am -7pm ET and Friday 10am-4pm ET!
This article is from Clark Howard's Website and was written by Theo Thimou. You can read the original article here.
My college-aged daughter was caught by the first scam last year – the second year she ever attempted to file a return. It's been 12 months and it's still unresolved. Someone else submitted a fake federal return online and her refund is still in limbo.
Thank you for this article. I am going to make a printout and bring one copy to my local Council On Aging and another I will post in the community center of the retirement complex when I now live. The elderly are the ones that are usually the people that these criminals love to target. Many of them them scare easily. Some of them are not as sharp as they used to be.
Even though this has nothing to do with the computer world, it is something this group needs to read. Thank you. You may have save a lot of people in my area a lot of anguish. I think one of the best things I ever did was buy a lifetime membership to your newsletter many years ago.
I hope anyone else that reads this will please make a copy and bring it to their local Council On Aging. Save someone from these creeps.


text:
Aaron Rodgers Trade Package Surfaces That Would Send Him To Vegas
NFL Draft 2023: 3 Positions The Packers Should Target
Multiple Trade Packages Surface To Lure Aaron Rodgers To The New York Jets
Former Packers Quarterback Volunteers to Play for 49ers After Brock Purdy Injury
Wisconsin Badgers Fans React To Record Breaking Commitment
NFL Community Reacts To Adam Schefter's Bombshell Report
Wisconsin Narrowly Loses Road Dual to Northwestern, 18-17
Breaking: Badgers Get Commitment From Highest-Rated Tight End In Program History
Mark Mayfield
Aaron Rodgers News
Packers News
Packers Rumors
Giannis Antetokounmpo News
Bucks News
Bucks Rumors
Brewers News
Wisconsin Badgers Football
Wisconsin Badgers Basketball
Wisconsin Badgers Women's Basketball
Wisconsin Badgers Volleyball
Wisconsin Badgers Hockey
Wisconsin Badgers Wrestling
2023 NFL Draft Big Board & Scouting Reports
2023 NFL Mock Drafts
Milkmen
Milwaukee Milkmen News
Milwaukee Milkmen Rumors
CheeseDads Sports
Packers Podcast
Wickett On Wisconsin
Home»Sports»Wisconsin Badgers»Wisconsin Badgers Basketball»D'Mitrik Trice: Thank You, Tom Izzo
D'Mitrik Trice: Thank You, Tom Izzo
By Mara Allen January 19, 2021 Updated: August 15, 2021 1 Comment5 Mins Read
D'Mitrik Trice (UWBadgers.com)
D'Mitrik Trice is one of the top point guards in the BIG 10. Some have said that he's one of the best in the country. There's no denying that Trice played a major role in the Badgers mid-season turn around last season that eventually led to a BIG 10 title. He's been even better this year, leading a team that has consistently been ranked in the top 10 in the country. Towards the end of every tight game this season, the ball has been in Trice's hands. When the Badgers need a clutch basket, D'Mitrik delivers.
Wisconsin is lucky to have him. But there wasn't much competition to land him. Looking back, coming to Madison was an easy decision for Trice to make. Most of his offers came from mid-major schools. His most notable, besides Wisconsin, came from Missouri and Ohio State. The Buckeyes were the only other team in the conference that showed significant interest in Trice. Needless to say, he's made everyone regret passing on him. However, some teams may have more regret than others, and Michigan State is one of them. Out of all the teams in the BIG 10, it's most shocking that no offer ever came from Tom Izzo and his Spartans.
Trice Family Ties With Izzo
D'Mitrik's brother, Travis, was a star for Michigan State. He finished with over 1,000 career points and was a key reason why the Spartans made four straight Sweet 16 appearances during his career. The Trice family is close to Tom Izzo. Izzo has known D'Mitrik since he was in middle school. He knew his work ethic, his drive, and his ability. So why didn't he offer him?
Today, Coach Izzo is most likely asking himself the same question. Izzo is considered one of the best recruiters in college basketball, and has been for a long time. He consistently boasts some of the nation's top recruiting classes and doesn't make many mistakes in this area. Trice may be one of his biggest ones, and he knows it.
Izzo Admits Mistake
After the Badgers beat the Spartans at the Breslin Center for the first time in over 16 years on Christmas Day, led by Trice with 29 points, Izzo acknowledged his mistake. "So it shows you how bad a recruiter I am," he said. "Not only did his brother play here, but his mother and father are really good friends of mine. I'm not sure he was a recruit at this level at the time, but to his credit, that's what we all should learn. He is just a product of the process."
D'Mitrik Trice (Wisconsin) guards Rocket Watts (Michigan State) during their game at The Breslin Center on December 25, 2020. (Photo by Rey Del Rio/Getty Images)
The process Izzo was referring to was how Trice ultimately ended up at this point. First, his decision to attend IMG Academy after graduating from Huber Heights (Ohio) High School. Trice did so in an effort to up his recruiting stock before committing to a college. Once he got to Madison, he played limited minutes, learning from Badger great Bronson Koenig. The next few seasons included battling injuries, redshirting, and hot and cold play. There were flashes of greatness; he just wasn't consistent.
Trice & Izzo Today
That changed during the Badgers' run last season that culminated with a BIG 10 title. He's been hot ever since, proving that the process does work. Izzo recognizes what Trice went through to get to where he is today, saying, "It's been a battle, he's redshirted there, he struggled a little bit early." While Izzo wasn't sold on Trice coming out of high school, he sure is now. "As far as running that team, making shots, making plays, he's as good as there is in this league. Maybe as good as there is in the country," he said. In addition, he's happy for Trice and the success he's experienced: "That kid gets exactly what he deserved, and dog-gone-it, you've got to love people that do that."
Without Trice, it's hard to see UW having the same success it has had while Trice has been running the show. However, a team without Trice could have easily been a reality. "God, I hate to be as honest as I can be on this, because I'm going to look bad, but that's the truth," Izzo explained. "I can't remember who we had then, and if there was a need, but the truth of it is… It was our choice [not to extend an offer]. I think if we would have offered him a scholarship, I think he would have come."
Tom Izzo (Photo by Rey Del Rio/Getty Images)
Badger fans can breathe a sigh of relief that Izzo missed this one. There aren't many things Wisconsin has to be thankful to Coach Izzo for, but D'Mitrik Trice is one of them.
Thank you, Tom Izzo.
Badger Nation
Follow me on Twitter at @Mara__Allen and follow us @WiscoHeroics1 for more great content! For the latest in Wisconsin sports, click here.
Badger Basketball D'Mitrik Trice Michigan State Spartans Tom Izzo Wisconsin Badgers Wisconsin Basketball
Mara Allen
Mara Allen is a student at the University of Wisconsin — Green Bay studying Communication, with emphases in Sports Communication, Social Media, Public Relations, Journalism, and Organizational Communication. In her free time, she enjoys playing & watching sports and spending time with family & friends.
Is It Time To Panic About Wisconsin Basketball?
© 2023 WISportsHeroics All Rights Reserved.


Pre-chopped romaine lettuce is part of a huge recall right now over fears about E.coli, and a handful of people in Idaho are among those who have fallen ill after eating it.
I was in my neighborhood grocery store on Sunday, and there was NO romaine lettuce left on the shelf at all. None. The store removed every package and put up a sign with notice of the recall, and said they were doing it out of an abundance of caution. That may be the best move since the romaine that's out there has already made a few Idahoans sick.
Idaho Health officials estimate so far that eight people have gotten sick after eating bad romaine lettuce, but there could be more. Other people who get sick could think they just have a stomach bug and they don't bother to trace it to what they ate. Those situations don't get reported, and therefore are not added to the total. Of the eight individuals who have become sick, three have been hospitalized, and two of the three have developed kidney failure. From lettuce!
The Mayo Clinic says signs and symptoms of E. coli infection typically begin three or four days after exposure to the bacteria, but it could be as soon as one day after to more than a week later. Signs and symptoms include diarrhea, stomach cramps, nausea and vomiting.


text:
#EDM Articles New Music Trance
Paul van Dyk & Alex M.O.R.P.H. - Breaking Dawn
How To Find a Music Mentor
Paul van Dyk & Alex M.O.R.P.H. – Breaking Dawn
It goes without saying that together, Paul van Dyk & Alex M.O.R.P.H. have proved themselves some of the most potent of studio forces. In 2016 their collab 'We Are' enjoyed a record-busting four-week run at the top of the Beatport trance chart and now the two German legends are back with a second bolt of that collaboratory lightning.
If 'We Are' characterized the pair's cooler, more harmonic sunset sound, there can be few prizes for guessing what time and tone 'Breaking Dawn's encapsulating.
The track first gleamed into existence as part of Van Dyk's masterful 'From Then On' album last year, where it quickly established itself as a front-runner in the fan-favorite stakes. Paul and Alex sound scripted 'Breaking Dawn' with but one purpose in mind: to create the ultimate six minutes of outta-da-club, into-the-sun encapsulating music.
The outcome is every bit as optimistic and high-on-life as you'd imagine, with each production flourish master-crafted for maximum energy and sunshine embrace. Shimmering synths, diffused piano, temperate chords and every bit as thermal pads each strike, one ray after another.
In this article:Alex M.O.R.P.H., New Trance, Paul van Dyk, Trance, Trance Collab, Uplifting Trance, Vandit Records
Ciaran McAuley Provides Trance Euphoria With "Permission To Exhale"
Friday saw Ciaran McAuley poised to release his hotly anticipated debut longplayer … After a dozen years as a recording artist and five since...
NickNov 21, 2022
Album Release
GIUSEPPE OTTAVIANI – 'HORIZONS [PART 2]'
When they take a new stylistic direction, it's rare for the artists themselves to understate it. Giuseppe Ottaviani though sees the sea-change music that...
HALIENE & Markus Schulz Evolve 2 Tracks Into 1 Masterpiece With "Butterfly x Metamorphosis"
The next single from HALIENE's highly acclaimed debut album 'HEAVENLY' began its life as two separate tracks. It was no coincidence though that the...


This one is for the girls! Our WX BOUNCE is available in three color options that are specifically made for young women who are looking for fashionable eyewear. Featuring spring hinges, these ANSI rated and Rx ready frames are extremely durable and functional. If you're looking for prescription glasses that give your child an extra boost of confidence, then the WX BOUNCE is what you need.


So I'm writing this entry from the Vaio that's running Ubuntu Linux now. I'm thoroughly impressed with this distribution. For one thing, I got all the hardware (save for the modem which is a winmodem) working right out of the box. It's insanely easy to setup and use. And kismet and airsnort worked without any trouble!
I'm impressed by this distribution as you can tell. And I'm posting this from Drivel instead of on the site itself.
I used Drivel as a LiveJournal client a while back and I thought it was neat, so I'm using it to update my blog.
OK, so 3 months between posts is fine? I dunno, I really need to start writing in this more. But I can't figure out what to write about, heh.
Oh well. Back to more futzing around with Linux.