text:
\section{Introduction}

The famous \emph{traveling salesman problem} is, given a finite list of cities and the distances between them, to determine if there is a route that visits each city exactly once and whose total distance is below some given bound.   A related problem is the \emph{Hamiltonian circuit problem}: given a finite graph, determine if it has a Hamiltonian circuit.  Both problems iare NP-complete \cite{Garey.Johnson.1979}.

In 1990, P. Jones proposed and solved the \emph{analyst's traveling salesman problem} \cite{Jones.1990}.  Namely, which subsets of the plane are contained in a rectifiable curve?  In 1992, K. Okikiolu solved the $n$-dimensional version of this problem \cite{Okikiolu.1992}.  Such curves have finite length, but may backtrack.

Recently, X. Gu, J. Lutz, and E. Mayordomo considered and solved a computable version of this problem \cite{Gu.Lutz.Mayordomo.2006}.  Namely, which \emph{points} in $n$-dimensional Euclidean space belong to \emph{computable} rectifiable curves?  The results uncovered deep connections with topics in algorithmic randomness and effective Hausdorff dimension \cite{Downey.Hirschfeldt.2010}, \cite{Lutz.2005}.

 Here, we consider yet another effective version of the analyst's traveling salesman problem: which points belong to computable \emph{arcs}.  By an arc, we mean a homeomorphic image of $[0,1]$.  By a computable arc we mean one for which there is a computable homeomorphism.  Thus, an arc can not backtrack, but may have infinite length.  This problem is thus a computable and continuous variation on the Hamiltonian circuit problem.  It is well-known that there are computable arcs with infinite length.  In fact, many fractal curves have this property \cite{Falconer.2003}.

 Interestingly, the continuous version of the Hamiltonian circuit problem was solved in 1917 by R.L. Moore and J.R. Kline \cite{Moore.Kline.1919}.  Whereas the work of Jones and Okikiolu seems to translate more or less directly into the framework of computability, the methods of Kline and Moore so not appear to do so.

As suggested in \cite{Gu.Lutz.Mayordomo.2006}, these results can be interpreted in terms of the possible planar motion of a nanobot.  The effective version of the traveling salesman problem asks which points could be reached if the nanobot is allowed to backtrack but must follow a path of finite length.  In this case, since backtracking is allowed, the finite length requirement seems to be a reasonable way of excluding space-filling curves \cite{Hocking.Young.1988}.  The effective version of the Hamiltonian circuit problem asks which points could be reached if backtracking is prohibited but paths of infinite length are allowed.

 Here, we compare these two classes of points.  Our conclusion is that neither is contained in the other.  Accordingly, our first main result is that there is a point on a computable arc that does not belong to any computable rectifiable curve.
 Thus, if backtracking is prohibited but the traverse of an infinite length is allowed, there are points which could be reached by the nanobot that it could not reach even with backtracking once its path is required to have finite length.
 We give two proofs which reveal connections with algorithmic randomness as well as effective Hausdorff dimension.

  Our second main result is that there is a $\Delta^0_2$ point that belongs to a computable rectifiable curve \emph{with computable length} but that does not belong to any computable arc.  That is, if backtracking is allowed, then there are points that can be reached by a nanobot that could not be reached when backtracking is prohibited even if it must traverse a path whose length is a computable real.  The proof is a finite-injury priority argument \cite{Soare.1987} which also uses recent results on effective local connectivity and the computation of space-filling curves \cite{Daniel.McNicholl.2009}, \cite{Couch.Daniel.McNicholl.2010}.  We note that
Ko has shown there is a computable rectifiable curve whose length is not computable \cite{Ko.1995}.  Thus, the point we construct here belongs to a smaller class than that considered by Lutz \emph{et. al.}.

\section{Background and preliminaries from computability and computable analysis}

Our approach to computable analysis is more or less that which appears in \cite{Weihrauch.2000}.  We assume familiarity with the fundamental concepts of computability \cite{Boolos.Burgess.2002}, \cite{Cooper.2004}.

A \emph{rational interval} is an open interval whose endpoints are rational.
A \emph{rational rectangle} is a Cartesian product of two rational intervals.

A \emph{name} of a real number $x$ is a list of all rational intervals to which $x$ belongs.  A real is \emph{computable} if it has a computable name.

A \emph{name} of a point $p \in \mathbb{R}^2$ is a list of all rational rectangles to which $x$ belongs.

A  \emph{name} of an open set $U \subseteq \mathbb{R}^2$ is a list of all rational rectangles $R$ such that
$\overline{R} \subseteq U$.

A set $X \subseteq \mathbb{R}^2$ is \emph{computably compact} if it is possible to uniformly compute from a number $k \in \mathbb{N}$ a finite covering of $X$ by rational rectangles each of which contains a point of $X$ and has diameter less than $2^{-k}$.

A function $f : \subseteq \mathbb{R} \rightarrow \mathbb{R}^2$ is \emph{computable} if there is a Turing machine with a one-way output tape and with the property that whenever a name of an $x \in \mathbb{R}$ is written on its input tape and the machine is allowed to run indefinitely, a name of $f(x)$ is written on the output tape.  Equivalently, there is an \emph{$e$-reduction} (\cite{Cooper.2004}) that maps each name of any $x \in \operatorname{dom}(f)$ to a name of $f(x)$.

A subset of the plane is a \emph{curve} if it is the range of a continuous function whose domain is $[0,1]$.
If at least one such function is computable, then the curve is also said to be computable.
A subset of the plane is an \emph{arc} if it is a homeomorphic image of $[0,1]$.
An arc is computable if at least one such homeomorphism is computable.

Every arc is a curve.  Thus, there is a clash of terminology here since there are arcs which are computable \emph{as curves} but for which there is no computable homeomorphism with $[0,1]$ \cite{Gu.Lutz.Mayordomo.2009}.  However, context will always make clear which sense of `computable' is intended.  That is, whenever we are considering a curve, if the curve is also an arc, it will be called computable just in case it is the image of $[0,1]$ under a computable homeomorphism.  Otherwise, it will be called computable just in case it is the image of $[0,1]$ under a computable map.

A curve is \emph{computably rectifiable} if it has finite length and its length is a computable real.

Since $[0,1]$ is compact, a function $f : [0,1] \rightarrow \mathbb{R}^2$ is a homeomorphism if and only if it is continuous and injective.  See, \emph{e.g.} Theorem 2-103 of \cite{Hocking.Young.1988}.

A set $X \subseteq \mathbb{R}^2$ is \emph{effectively locally connected} if there is a Turing machine with a one-way output tape and two input tapes and with the property that whenever a name of a point $p \in X$ is written on the  first input tape and a name of an open set $U \subseteq \mathbb{R}^2$ that contains $p$ is written on the second input tape and the machine is allowed to run indefinitely, a name of an open set $V \subseteq \mathbb{R}^2$ for which $p \in V$ and $V \cap X$ is connected is written on the output tape.  See \cite{Miller.2004}, \cite{Brattka.2008}, \cite{Daniel.McNicholl.2009}, \cite{Couch.Daniel.McNicholl.2010}.  The following is a consequence of the main theorem of \cite{Couch.Daniel.McNicholl.2010} and is an effective version of the Hahn-Mazurkiewicz Theorem \cite{Hocking.Young.1988}.

\begin{theorem}\label{thm:PEANO}
If $X \subseteq \mathbb{R}^2$ is computably compact and effectively locally connected, then there is a computable surjection of $[0,1]$ onto $X$.
\end{theorem}

We will use a number of concepts from \cite{Daniel.McNicholl.2009}.  However, as we will only work in $\mathbb{R}^2$, we specialize their definitions as follows.  To begin, a sequence of sets $(U_1, \ldots, U_n)$ is a \emph{chain} if $U_i \cap U_{i+1} \neq \emptyset$ whenever $1 \leq i <n$ and is a \emph{simple chain} if $U_i \cap U_j \neq \emptyset$ precisely when $|i - j| = 1$.

A simple chain $(V_1, \ldots, V_l)$ in a topological space \emph{refines} a simple chain $(U_1, \ldots, U_k)$ if there are numbers $s_1, \ldots, s_k$ such that $\sum s_j = l$, $s_j \geq 2$,
\begin{eqnarray*}
\overline{V_1}, \ldots, \overline{V_{s_1}} & \subseteq & U_1\mbox{, and}\\
\overline{V_{s_1 + \ldots + s_{i-1} + 1}}, \ldots, \overline{V_{s_1 + \ldots + s_i}} & \subseteq & U_i\ \mbox{whenever $1 < i \leq k$.}\\
\end{eqnarray*}
We say that this refinement \emph{has type $(s_1, \ldots, s_k)$}.

A \emph{witnessing chain} is a chain of rational rectangles.  We denote witnessing chains by $\omega$ and its accented and subscripted variants.  If $\omega = (R_1, \ldots, R_k)$ is a witnessing chain, then we let:
\begin{eqnarray*}
k_\omega & = & k\\
R_{\omega, i} & = & R_i\\
V_\omega & = & \bigcup_i R_i
\end{eqnarray*}

An \emph{arc chain} is a sequence of witnessing chains $(\omega_1, \ldots, \omega_l)$ such that
$(V_{\omega_1}, \ldots, V_{\omega_l})$ is a simple chain.  We denote arc chains by $\mathfrak{p}$ and its accented and subscripted variants.  If $\mathfrak{p} = (\omega_1, \ldots, \omega_l)$ is an arc chain, then we let:
\begin{eqnarray*}
l_\mathfrak{p} & = & l\\
\omega_{\mathfrak{p}, i} & = & \omega_i\\
V_{\mathfrak{p}, i} & = & V_{\omega_i}\\
V_\mathfrak{p} & = & \bigcup_i V_{\omega_i}
\end{eqnarray*}
We also define the \emph{diameter of $\mathfrak{p}$} to be
\[
\max_j \operatorname{diam}(V_{\omega_j}).
\]
We denote this quantity by $\operatorname{diam}(\mathfrak{p})$.

We say that an arc chain $\mathfrak{p}_0$ \emph{refines} an arc chain $\mathfrak{p}_1$ if
$(V_{\mathfrak{p}_0, 1}, \ldots, V_{\mathfrak{p}_0, l_{\mathfrak{p}_0}})$
refines $(V_{\mathfrak{p}_1, 1}, \ldots, V_{\mathfrak{p}_1, l_{\mathfrak{p}_1}})$.
We say this refinement has type $(s_1, \ldots, s_{l_{\mathfrak{p}_1}})$ if the refinement of
$(V_{\mathfrak{p}_1, 1}, \ldots, V_{\mathfrak{p}_1, l_{\mathfrak{p}_1}})$ by
$(V_{\mathfrak{p}_0, 1}, \ldots, V_{\mathfrak{p}_0, l_{\mathfrak{p}_0}})$ has this type.

A sequence of arc chains (possibly finite) $\mathfrak{p}_0, \mathfrak{p}_1, \ldots$ is \emph{descending} if
$\mathfrak{p}_{i+1}$ refines $\mathfrak{p}_i$.

We will need the following.

\begin{theorem}\label{thm:COMPUTABLE.ARC}
If an arc $A \subseteq \mathbb{R}^2$ is computable, then there is an infinite, computable, and descending sequence of arc chains $\mathfrak{p}_0, \mathfrak{p}_1, \ldots$ such that $A = \bigcap_i V_{\mathfrak{p}_i}$ and $\operatorname{diam}(\mathfrak{p}_i) < 2^{-i}$.  Furthermore, if
$\mathfrak{p}_0, \mathfrak{p}_1, \ldots$ is such a sequence of arc chains, then
$\bigcap_i V_{\mathfrak{p}_i}$ is a computable arc.
\end{theorem}

Theorem \ref{thm:COMPUTABLE.ARC} is an immediate consequence of the results in \cite{Daniel.McNicholl.2009}.  As these results have not yet appeared in print, we include a proof here for which we will need some additional notions.

\begin{definition}\label{def:LABELLED}
A \emph{labelled arc chain} consists of a finite sequence of pairs \\
$((\omega_1, I_1), \ldots, (\omega_l, I_l))$ such that
$(\omega_1, \ldots, \omega_l)$ is an arc chain, $(I_1, \ldots, I_l)$ is a simple chain of closed
subintervals of $[0,1]$ whose endpoints are rational, and $[0,1] = \bigcup_j I_j$.
\end{definition}

If $\Lambda = ((\omega_1, I_1), \ldots, (\omega_l, I_l))$ is a labelled arc chain, we let:
\begin{eqnarray*}
\mathfrak{p}_\Lambda & = & (\omega_1, \ldots, \omega_l)\\
I_{\Lambda,j } & = & I_j\\
\omega_{\Lambda, j} & = & \omega_j\\
l_\Lambda & = & l
\end{eqnarray*}

\begin{definition}\label{def:LABELLED.REFINES}
Let $\Lambda_0$, $\Lambda_1$ be labelled arc chains.  We say that $\Lambda_0$ \emph{refines} $\Lambda_1$ if there are numbers $s_1, \ldots, s_{l_{\Lambda_1}}$ such that $\mathfrak{p}_{\Lambda_0}$ is a refinement of
$\mathfrak{p}_{\Lambda_1}$ of type $(s_1, \ldots, s_{l_{\Lambda_1}})$ and
$(I_{\Lambda_0, 1}, \ldots, I_{\Lambda_0, l_{\Lambda_0}})$ is a refinement of
$(I_{\Lambda_1, 1}, \ldots, I_{\Lambda_1, l_{\Lambda_1}})$ of the same type.  Again, we refer to
$(s_1, \ldots,  s_{l_{\Lambda_1}})$ as the \emph{type} of this refinement.
\end{definition}

\begin{definition}\label{def:DIAM.LABELLED}
If $\Lambda$ is a labelled arc chain, then the \emph{diameter} of $\Lambda$ is
\[
\max\{\operatorname{diam}(\mathfrak{p}_\Lambda), \operatorname{diam}(I_{\Lambda, 1}), \ldots, \operatorname{diam}(I_{\Lambda, l_\Lambda})\}.
\]
We denote this by $\operatorname{diam}(\Lambda)$.
\end{definition}

We say that a sequence of labelled arc chains $\Lambda_0, \Lambda_1, \ldots$ (finite or infinite) is \emph{descending} if $\Lambda_{i+1}$ refines $\Lambda_i$.

The proof of Theorem \ref{thm:COMPUTABLE.ARC} now turns on the following three lemmas.

\begin{lemma}\label{lm:ARC.CHAIN}
Suppose $\{\Lambda_j\}_{j \in \mathbb{N}}$ is an infinite descending sequence of labelled arc chains such that
$\lim_{j \rightarrow \infty} \operatorname{diam}(\Lambda_j) = 0$.
\begin{enumerate}
	\item For each $x \in [0,1]$, the set
	\[
	N_x =_{df} \bigcap_{j=0}^\infty \bigcup \{V_{\omega_{\Lambda_j, i}}\ :\ x \in I_{\Lambda_{j,i}}\}
	\]
	contains exactly one point.

	\item If $\{\Lambda_j\}_{j \in \mathbb{N}}$ is computable, and if for each $x \in [0,1]$ we define $f(x)$ to be the unique point of $N_x$, then $f$ is a computable injective map.
\end{enumerate}
\end{lemma}

\begin{proof}
For each $j$, there are at most two values of $i$ for which $x \in I_{\Lambda_j, i}$.  Furthermore, if there are two such values of $i$, then they differ by $1$.  Abbreviate $V_{\omega_{\Lambda_j, i}}$ by $V_{j,i}$, $I_{\Lambda_j, i}$ by $I_{j,i}$, and $l_{\Lambda_j}$ by $l_j$.

Let $j_0 < j_1$.
We show that
\[
\overline{\bigcup\{V_{j_1, i}\ :\ x \in I_{j_1, i}\}} \subseteq \bigcup\{V_{j_0, i}\ :\ x \in I_{j_0, i}\}.
\]

Let $i_k$ be the smallest number such that $x \in I_{j_k, i_k}$.
$\Lambda_{j_1}$ refines $\Lambda_{j_0}$;  let $(s_1, \ldots, s_{l_{j_0}})$ be the type of this refinement.
Let $S_0 = \{1, \ldots, s_1\}$, and let $S_i = \{s_1 + \ldots s_{i-1}+1, \ldots, s_1 + \ldots s_i \}$ whenever $1 < i \leq l_{j_0}$.
There is a unique $u$ such that $i_1 \in S_u$.  Hence,
$I_{j_1, i_1} \subseteq I_{j_0, u}$ and $\overline{V_{j_1, i_1}} \subseteq V_{j_0, u}$.  Furthermore, $x \in I_{j_0, u} \cap I_{j_0, i_0}$.
If $x \not \in V_{j_1, i_1 + 1}$, then we are done.  Suppose $x \in V_{j_1, i_1 + 1}$.
If $i_1 + 1 \in S_u$, then we are done.  Otherwise, it must be that $i_1 + 1 \in S_{u+1}$ and we are done.

It now follows that $N_x$ is non-empty.  Since $\lim_{j \rightarrow \infty} \operatorname{diam}(\mathfrak{p}_{\Lambda_j}) = 0$,
it follows that $N_x$ contains exactly one point.

Now, suppose $\{\Lambda_j\}_j$ is computable.  Given a name of an $x \in [0,1]$, we list a rational rectangle $R$ if and only if there exist $I, j,i$ such that $x \in I$ and
\[
R \supseteq \bigcup\{V_{j,i}\ :\ I \cap I_{j,i} \neq \emptyset\}.
\]
It follows that all and only those rational rectangles containing $f(x)$ are listed.
Hence, $f$ is computable.

Suppose $0 \leq x_1 < x_2 \leq 1$.  Thus, there is a $j_0$ such that
$|i_1 - i_2| \geq 2$ whenever $j \geq j_0$, $x_1 \in I_{j, i_1}$, and $x_2 \in I_{j, i_2}$.
Let
\[
S_{x,j} = \bigcup\{V_{j,i}\ :\ x \in I_{j,i}\}.
\]
By definition, $f(x) \in S_{x,j}$.  However, whenever $j \geq j_0$, $S_{x_1, j} \cap S_{x_2, j} = \emptyset$.  So, $f(x_1) \neq f(x_2)$.
\end{proof}

\begin{lemma}\label{lm:LABEL}
If $\{\mathfrak{p}_j\}_{j \in \mathbb{N}}$ is a computable and descending sequence of arc chains for which
$\lim_{j \rightarrow \infty} \operatorname{diam}(\mathfrak{p}_j) = 0$, then there is a computable and descending sequence of
arc chains $\{\Lambda_j\}_{j \in \mathbb{N}}$ for which $\mathfrak{p}_{\Lambda_j} = \mathfrak{p}_j$ and such that
$\lim_{j \rightarrow \infty} \operatorname{diam}(\Lambda_j) = 0$.
\end{lemma}

\begin{proof}
Let $I_{\Lambda_0, 1}, \ldots, I_{\Lambda_0, l_{\Lambda_0}}$ be the uniform partition
of $[0,1]$ into $l_{\Lambda_0}$ subintervals.

Suppose $I_{\Lambda_j, 1}, \ldots, I_{\Lambda_j, l_{\Lambda_j}}$ have been defined.
Suppose $\mathfrak{p}_{j+1}$ is a refinement of $\mathfrak{p}_j$ of type
$(s_1, \ldots, s_k)$.  Let $I_{\Lambda_{j+1}, 1}, \ldots, I_{\Lambda_{j+1}, s_1}$ be the uniform
partition of $I_{\Lambda_j, 1}$ into $s_1$ subintervals.  Let
$I_{\Lambda_{j+1}, (s_1 + \ldots + s_{i-1} + 1)}, \ldots, I_{\Lambda_{j+1}, (s_1 + \ldots + s_i)}$
be the uniform partition of $I_{\Lambda_j, i}$ into $s_i$ subintervals when $1 < i \leq k$.
Since each $s_i$ is at least $2$, the conclusion follows.
\end{proof}

\begin{lemma}\label{lm:CHAIN}
Suppose $A$ is an arc and $\epsilon > 0$.  Then, there is a witnessing chain
$\omega = (R_1, \ldots, R_k)$ such that $A \subseteq V_\omega$, $R_j \cap A \neq \emptyset$, and $\operatorname{diam}(R_j) < \epsilon$.
\end{lemma}

\begin{proof}
Since $A$ is compact, there are rational rectangles $S_1, \ldots, S_l$ that cover $A$, whose diameters are smaller than $\epsilon$, and each of which contains a point of $A$.  By Theorem 3-4 of \cite{Hocking.Young.1988}, there exist $R_1, \ldots, R_k \in \{S_1, \ldots, S_l\}$ such that
$(R_1 \cap A, \ldots, R_k \cap A)$ is a simple chain that covers $A$.  Hence,
$(R_1, \ldots, R_k)$ is a chain that covers $A$.
\end{proof}

\noindent\it Proof of Theorem \ref{thm:COMPUTABLE.ARC}:\rm\ Suppose $A \subseteq \mathbb{R}^2$ is a computable arc.  Let $f$ be a computable injective map of $[0,1]$ onto $A$.

For each $j \in \mathbb{N}$, let $I_{j,1}, \ldots, I_{j,2^j}$ be the uniform partition of $[0,1]$ into subintervals of
length $2^{-j}$.  Since $f$ is injective, $f[I_{j, i_1}] \cap f[I_{j, i_2}] = \emptyset$ whenever $i_1 - i_2| \geq 2$.  It follows from Lemma \ref{lm:CHAIN} that for each $j,i$ we can choose a witnessing chain $\omega_{j,i}$ such that $f[I_{j,i}]$ is contained in $V_{\omega_{j,i}}$ and
$V_{\omega_{j, i_1}} \cap V_{\omega_{j, i_2}} = \emptyset$ whenever $|i_1 - i_2| \geq 2$.
Furthermore, we can choose each $\omega_{j,i}$ so that $\operatorname{diam}(\omega_{j,i}) < 2^{-j}$.  Furthermore, we can ensure that
\[
I_{j+1, i_1} \subseteq I_{j, i_2}\ \Rightarrow\ \overline{V_{\omega_{j+1, i_1}}} \subseteq V_{\omega_{j, i_2}}.
\]
We can then set
\[
\mathfrak{p}_j = (\omega_{j,1}, \ldots, \omega_{j, 2^j}).
\]

The other direction follows from Lemmas \ref{lm:ARC.CHAIN} and \ref{lm:LABEL}.

\section{The confinement of length}

In this section, we give two proofs of the following.

\begin{theorem}\label{thm:NOT.ON.RECT}
There is a point on a computable arc that does not belong to any computable rectifiable curve.
\end{theorem}

For the first proof, we employ some concepts from algorithmic randomness.
Call an open set $U \subseteq \mathbb{R}^2$ \emph{computably enumerable} (\emph{c.e.}) if there is a computable sequence of rational rectangles $\{R_n\}_{n \in \mathbb{N}}$ such that $U = \bigcup_n R_n$.  An infinite sequence $\{U_n\}_{n \in \mathbb{N}}$ of open sets is \emph{uniformly c.e.} if there is a computable double sequence of rational rectangles $\{R_{n,k}\}_{n,k \in \mathbb{N}}$ such that
$U_n = \bigcup_k R_{n,k}$ for each $n$.   A set $X \subseteq \mathbb{R}^2$ is said to have \emph{effective measure zero} if there is a descending uniformly \emph{c.e.} sequence of open sets $\{U_n\}_{n \in \mathbb{N}}$ such that
the Lebesgue measure of each $U_n$ is at most $2^{-n}$.  Such a sequence of open sets is said to be a \emph{Martin-L\"of test}.  A point $p \in \mathbb{R}^2$ is \emph{Martin-L\"of random} if
$\{p\}$ does not have effective measure zero.

It follows from the constructions of Osgood (see \cite{Sagan.1994}) that for each $k \geq 1$, there is a computable arc $A \subseteq [0,1] \times [0,1]$ with measure $1 - 2^{-k}$.  The complements of these arcs then yield a Martin-L\"of test (after taking intersections with $(0,1) \times (0,1)$).  Thus, every Martin-L\"of random point in $(0,1) \times (0,1)$ lies on a computable arc.  However, by the results in \cite{Gu.Lutz.Mayordomo.2006}, no Martin-L\"of random point lies on a computable rectifiable curve.

A pleasant side-effect of this proof is that \it every Martin-L\"of random point lies on a computable arc\rm.

For our second proof of Theorem \ref{thm:NOT.ON.RECT}, we use effective Hausdorff dimension.  Let $A$ denote the quadratic von Koch curve of type 2 (see, \emph{e.g.}, \cite{Falconer.2003}).  Then, $A$ is a computable arc.  At the same time, the Hausdorff dimension of $A$ is 3/2.  Hence, there is a point on $A$ whose effective Hausdorff dimension is larger than $1$ (see \cite{Lutz.2003}).  However, as is pointed out in \cite{Gu.Lutz.Mayordomo.2006}, a point on a computable rectifiable curve has effective Hausdorff dimension at most $1$. \footnote{I am very grateful to Jack Lutz for showing me this line of argument.}

An interesting consequence of this proof is that even very natural fractal curves which are easy to visualize contain points which do not lie on any computable rectifiable curve.

\section{The power of backtracking}

Let $\{\mathfrak{p}_i^e\}_{e \in \mathbb{N}, i \leq k_e}$ be an effective enumeration of all computable descending sequences of arc chains.  That is:
\begin{itemize}
	\item $i,e \mapsto \mathfrak{p}_i^e$ is a computable partial function.

	\item $k_e \leq \aleph_0$.

	\item $\mathfrak{p}_i^e$ is defined if and only if $i < k_e$.

	\item $\mathfrak{p}_{i+1}^e$ refines $\mathfrak{p}_i^e$ if $i + 1< k_e$.

	\item $\operatorname{diam}(\mathfrak{p}_i^e) < 2^{-i}$ if $i < k_e$.
\end{itemize}

Let
\[
A_e = \bigcap_{i < k_e} V_{\mathfrak{p}_i^e}.
\]

By Theorem \ref{thm:COMPUTABLE.ARC}, an arc $A \subseteq \mathbb{R}^2$ is computable if and only if there is an $e \in \mathbb{N}$ such that $k_e = \aleph_0$ and $A = A_e$.

Although the proof of the following is a simple exercise, it will be useful enough in the proof of Theorem \ref{thm:POWER.RETRACE} to state it as a proposition.

\begin{proposition}\label{prop:LIMIT.POINTS}
If $S$ is a connected subset of a topological space, and if $X \subseteq \overline{S} - S$, then $S \cup X$ is connected.
\end{proposition}

\begin{theorem}\label{thm:POWER.RETRACE}
There is a computably rectifiable and computable curve $C$ that contains a point $p$ which does not belong to any computable arc.
\end{theorem}

\begin{proof}
We construct $C$ and $p$ by stages.  Let $X[t]$ denote the value of $X$ at stage $t$.
For each $e \in \mathbb{N}$, let $R_e$ be the requirement
\[
k_e = \aleph_0\ \Rightarrow\ p \not \in A_e.
\]

\noindent\bf Stage $0$:\rm\ Let $C_0$ and $S_{0, e}$ be as in Figure \ref{fig:STAGE.0}.
\begin{figure}
\resizebox{3.5in}{3.5in}{\includegraphics{stage0.pdf}}
\caption{}\label{fig:STAGE.0}
\end{figure}
More formally, let:
\begin{eqnarray*}
S_{0,e} & = & [(-2^{-e}, -2^{-(e+1)}) \cup (2^{-(e+1)}, 2^{-e})] \times (2^{-e}, 2^{-(e-1)}).
\end{eqnarray*}
\begin{eqnarray*}
C_0 & = & (\{0\} \times [0, \frac{3}{2}]) \cup \bigcup_{j=1}^\infty ([-2^{-j}, 2^{-j}] \times \{ \frac{3}{2^j})\\
p_0 & = & (0,0)\\
\end{eqnarray*}
Let $h_{e,0}, h_{e,1}, \ldots$ denote in order of decreasing length the horizontal line segments in Figure \ref{fig:STAGE.0} that lie above the $x$-axis.  Let $q_{e,0}$ denote the midpoint of $h_{e,0}$.
Let $v_0$ denote the line segment from $p_0$ to $q_{0,0}$.  \\

\noindent\bf Stage $t+1$:\rm\ If there do not exist $e,i$ and a rational rectangle $R$ such that
\begin{itemize}
	\item there is no $j$ such that $\mathfrak{p}^e_j[t]\downarrow$ and $S_{t, e+1} \cap V_{\mathfrak{p}^e_j} = \emptyset$,
 	\item $\mathfrak{p}_i^e[t]\downarrow$,
 	\item $\overline{R} \subseteq S_{t,e}$,
	\item $R \cap C_t$ is a line segment,
	\item $R \cap \overline{V_{\mathfrak{p}_i^e}} = \emptyset$, and
	\item $\operatorname{diam}(R) < 2^{-t}$,
\end{itemize}
then let $S_{t+1,e} = S_{t,e}$, $p_{t+1} = p_t$, and $C_{t+1} = C_t$.   Otherwise, choose the least such $e,i, R$.  Let $l_t = R \cap C_t$.  For $e' \leq e$, let $S_{t+1, e'} = S_{t, e'}$.  Assume without loss of generality that $l_t$ is horizontal.  Define $D_{t+1}$ and $S_{t+1, e'}$ for $e' > e$ as in Figure \ref{fig:STAGE.t+1}.
\begin{figure}
\resizebox{3.5in}{3.5in}{\includegraphics{stage_t_plus_1.pdf}}
\caption{}\label{fig:STAGE.t+1}
\end{figure}
$S_{t+1, e+1}$ is chosen so that its closure is contained in $R$.
Let $h_{e+1, t+1}, h_{e+2, t_1}, \ldots$ denote in order of decreasing length the line horizontal line segments in Figure \ref{fig:STAGE.t+1} that lie above $l_t$.  $D_{t+1}$ is constructed so that the length of $h_{e', t+1}$ is smaller than
$2^{-t}2^{-(e' - e) -1}$ whenever $e' > e$.  Let $v_{t+1}$ denote the vertical line segment in Figure \ref{fig:STAGE.t+1}, and let $p_{t+1}$ denote the point it has in common with $l_t$.
We let $C_{t+1} = C_t \cup D_{t+1}$.
We say that $R_e$ \emph{acts at stage $t+1$}.

This completes the description of the construction.  We divide its verification into a sequence of lemmas.  For all $e$, let $S_e =_{df} \lim_{t \rightarrow \infty} S_{t,e}$.

\begin{lemma}\label{lm:SAT}
Let $e \in \mathbb{N}$.  Then:
\begin{enumerate}
	\item $R_e$ acts at most finitely often.

	\item $S_e$ exists.

	\item If $k_e = \aleph_0$, then $S_{e+1}$ exists and contains no point of
	$A_e$.
\end{enumerate}
\end{lemma}

\begin{proof}
By way of induction, suppose each $R_e'$ with $e' < e$ acts at most finitely often.
Let $s_0$ be the least stage such that no $R_{e'}$ with $e' < e$ acts at any stage $s \geq s_0$.

Let us say that $S_{e'}$ has \emph{settled at stage $t$} if $S_{t,e'} = S_{t',e'}$ for all $t' \geq t$.
It follows that $s_0$ is the least stage at which $S_e$ has settled.  If $s_0 \geq 1$, then some $R_{e'}$ with $e' < e$ acts at $s_0 - 1$.   It then follows from the construction that $S_e \cap C_{s_0}$ is either a cross or a `T' as in Figure \ref{fig:POSSIBILITIES}.
\begin{figure}
\resizebox{3.5in}{3.5in}{\includegraphics{possibilities.pdf}}
\caption{}\label{fig:POSSIBILITIES}
\end{figure}
We now show that there is at most one stage $t+1 \geq s_0$ at which $R_e$ acts.  For, suppose $t+1$ is the least number such that $t+1 \geq s_0$ and $R_e$ acts at $t+1$.  By construction, in particular by the action performed at $t+1$,  there is a number $i$ such that $\mathfrak{p}_i^e[t]\downarrow$ and $\overline{S_{t+1, e+1}} \cap V_{\mathfrak{p}_i^e} = \emptyset$.  It now follows by induction and the conditions which must be met in order for $R_e$ to act that $S_{t', e+1} = S_{t+1, e+1}$ for all $t' \geq t+1$ and that $R_e$ does not act at any $t' \geq t+1$.  It now also follows that $S_{e+1}$ exists.

Suppose $k_e = \aleph_0$.  We show that $S_{e+1} \cap A_e = \emptyset$.  We first consider the case where there exists $t+1 \geq s_0$ such that $S_{t, e+1} \cap V_{\mathfrak{p}_j^e} = \emptyset$ for some $j$ such that $\mathfrak{p}_j^e[t]\downarrow$.  Hence, $R_e$ does not act at $t+1$.  It then follows by induction that $R_e$ does not act at any $t' \geq t+1$.  Hence, $S_{e+1} = S_{t+1, e+1}$.  Thus, $S_{e+1} \cap A_e = \emptyset$.

So, suppose that for every $t+1 \geq s_0$, $S_{t, e+1} \cap V_{\mathfrak{p}_j^e} \neq \emptyset$ for every $j$ such that $\mathfrak{p}_j^e[t]\downarrow$.  As noted, $C_{s_0}$ is either a cross or a `T'.  In either case, $C_{s_0}$ contains a unique point $q$ with the property that $C_{s_0} - \{q\}$ has at least three connected components.  No connected subset of an arc can have this property.  Hence, $C_{s_0} \not \subseteq A_e$.  Since, $\mathbb{R}^2 - A_e$ is open, there is a point $q_1 \in C_{s_0} - \{q\}$ that does not belong to $A_e$.  Since $q_1 \in S_e$ which is open, it follows that $R_e$ acts at some $t+1 \geq s_0$.  It then follows by what has just been shown that $S_{e+1}$ settles at $t+1$ and contains no point of $A_e$.
\end{proof}

Let
\[
C = \overline{ \bigcup_s C_s}.
\]

Let $d$ denote the Euclidean metric on $\mathbb{R}^2$.  Let $D_r(q)$ denote the open disk of radius $r$ and center $q$.  When $X, Y \subseteq \mathbb{R}^2$, let
$d(X,Y) = \inf_{q_1 \in X, q_2 \in Y} d(q_1, q_2)$.  When $q \in \mathbb{R}^2$ and $X \subseteq \mathbb{R}^2$, let
$d(q, X) = d(\{q\}, X)$.

\begin{lemma}\label{lm:SAT2}
$p =_{df} \lim_{t \rightarrow \infty} p_t$ exists, is $\Delta^0_2$, and does not belong to any computable arc though it does belong to $C$.
\end{lemma}

\begin{proof}
Suppose $R_{e_0}$ acts at $t_0 + 1$ and also that no $R_{e'}$ with $e' \leq e_0$ acts at any $t+1$ with $t > t_0$.  It follows from the construction that $d(p_{t+1}, p_{t_0 + 1}) < 2^{-t_0}$.
There are infinitely many such $t_0$.  Hence, $\{p_t\}_t$ is a Cauchy sequence.
It also follows from the Limit Lemma that $p$ is $\Delta^0_2$.  Since $p_t \in C_t$ for all $t$, it follows that
$p \in C$.

It also follows that $S_{e_0 + 1}$ settles at $t_0 + 1$.  It then follows from Lemma \ref{lm:SAT} that $p$ does not belong to any computable arc.
\end{proof}

\begin{lemma}\label{lm:COMP.COMPACT}
$C$ is computably compact.
\end{lemma}

\begin{proof}
By construction, if $q \in C - C_0$, then $q \in S_{e,0}$ for some $e$.  Hence,
$d(q, C_0) < 2$.  Thus, $C$ is bounded.  Hence it is compact.

Let $\mathcal{K}^*$ be the set of all non-empty compact subsets of $\mathbb{R}^2$, and let
$d_H$ be the Hausdorff metric on $\mathcal{K}^*$.  That is,
\[
d_H(A, B) = \max\{\max_{q \in a} d(q, B), \max_{q \in B} d(q, A)\}.
\]
It follows that a non-empty compact set $X \subseteq \mathbb{R}^2$ is computably compact if and only if it is possible to uniformly compute from a number $k \in \mathbb{N}$ a non-empty finite $E \subseteq \mathbb{Q}^2$ such that
$d_H(E, X) < 2^{-k}$.  See, \emph{e.g.}, Section 5.2 of \cite{Weihrauch.2000}.  At the same time, by construction,
\[
d_H(C_t, C_{t+1}) < 2^{-t}.
\]
So, when $t_1 > t$,
\[
d_H(C_t, C_{t_1}) < 2^{-t + 1}.
\]
We now calculate an upper bound on $d_H(C, C_t)$.  By construction, if $q \in C$, then
$d(q, C_t) < 2^{-t}$.
So, $\max_{q \in C}, d(q, C_t) \leq 2^{-t}$.  Since $C_t \subseteq C$, $\max_{q \in C_t} d(q, C) = 0$.
Hence, $d_H(C, C_t) \leq 2^{-t}$.

Each $C_t$ is computably compact uniformly in $t$.  That is, from $t,k \in \mathbb{N}$ it is possible to uniformly compute a finite $E_{t,k} \subseteq \mathbb{Q}^2$ such that $d_H(E_{t,k}, C_t) < 2^{-k}$.  So,
\begin{eqnarray*}
d_H(E_{t+1, t+1}, C) & \leq & d_H(E_{t+1, t+1}, C_{t+1}) + d_H(C_{t+1}, C)\\
&< & 2^{-(t+1)} + 2^{-(t+1)} = 2^{-t}
\end{eqnarray*}
So, $C$ is computably compact.
\end{proof}

\begin{lemma}\label{lm:ELC}
$C$ is effectively locally connected.
\end{lemma}

\begin{proof}
Suppose we are given as input a name of an open $U \subseteq \mathbb{R}^2$ and a name of a point $q \in U \cap C$.  We show that from these data it is possible to uniformly compute a name of an open set $V \subseteq U$ such that $q \in V$ and $V \cap C$ is connected.

We first introduce some notation.  Namely, if $R_e$ acts at stage $t+1$, then let
\[
B_{e, t+1} = \bigcup_{e' >e} S_{e', t+1}.
\]
If $R_e$ does not act at $t+1$, then let $B_{e, t+1} = \emptyset$.  Also, let $B_{e, 0} = \emptyset$.  By construction, $B_{e,t+1} \cap C$ is connected.

From the given data, it is possible to compute a positive rational number $\epsilon$ such that $D_\epsilon(q) \subseteq U$.

We now read the name of $q$ and cycle through all natural numbers until we find $e, t_0 \in \mathbb{N}$ and a rational rectangle $F_0$ such that $q \in F_0$, $2^{-t_0 + 1} + \operatorname{diam}(F_0) < \epsilon$, and one of the following holds.
\begin{enumerate}
	\item $F_0 \cap C_{t_0} \subseteq h_{e,t_0} - v_{t_0}$, $\overline{F_0} \subseteq S_{t_0,e}$, and
	$d(\overline{F_0}, v_{t_0}) > 2^{-t_0}$.\label{itm:A}

	\item $F_0 \cap C_{t_0} \subseteq v_{t_0} - h_{e,t_0}$, $\overline{F_0} \subseteq S_{t_0,e}$, and
	$d(\overline{F_0}, h_{e,t_0}) > 2^{-t_0}$.\label{itm:B}

	\item $q_{e,t_0} \in F_0$ and $\overline{F_0} \subseteq S_{t_0,e}$.\label{itm:C}

	\item $F_0 \cap S_{t_0,e} \cap S_{t_0, e+1} \cap C_{t_0} \neq \emptyset$,
	$F_0 \cap C_{t_0} \subseteq v_{t_0}$,
	$\overline{F_0} \subseteq S_{t_0,e} \cup S_{t_0,e+1}$, and
	$d(\overline{F_0}, h_{e,t_0})$, $d(\overline{F_0}, h_{e+1, t_0}) > 2^{-t_0}$.\label{itm:D}

	\item $\overline{F_0} \subseteq S_{e,t_0}$ and $p_{t_1 + 1} \in F_0$ for some $t_1 \leq t_0$.\label{itm:E}
\end{enumerate}
Since $q \in C$, this process must terminate.

If one of (\ref{itm:A}) - (\ref{itm:D}) holds, let
\[
V = \bigcup\{ B_{e_1, t_1 + 1}\ :\ e_1 \in \mathbb{N}\ \wedge\ t_1 \geq t_0\ \wedge\ B_{e_1, t_1 + 1} \cap F_0 \neq \emptyset\}\ \cup F_0.
\]
If (\ref{itm:E}), then let
\[
V = \bigcup\{S_{t_0,e'}\ :\ e' > e\ \wedge \operatorname{diam}(S_{t_0,e'}) < 2^{-t_0}\}\ \cup\ F_0.
\]
Suppose one of (\ref{itm:A}) - (\ref{itm:D}) holds.  Then, $V$ is open and a name of $V$ can be uniformly computed from the given data.  It also follows that
\[
V \cap (\bigcup_s C_s) = \bigcup\{ B_{e_1, t_1 + 1} \cap C_{t_1 +1}\ :\ e_1 \in \mathbb{N}\ \wedge\ t_1 \geq t_0\ \wedge\ B_{e_1, t_1 + 1} \cap F_0 \neq \emptyset\}\ \cup\ (F_0 \cap C_{t_0}).
\]
In each case, $F_0 \cap C_{t_0}$ is connected.  Suppose $e_1 \in \mathbb{N}$, $t_1 \geq t_0$, and
$B_{e_1, t_1 + 1} \cap F_0 \neq \emptyset$.  By inspection of cases, $B_{e_1, t_1 + 1} \cap C_{t_0} \neq \emptyset$.  By Theorem 1-14 of \cite{Hocking.Young.1988}, $V \cap \bigcup_s C_s$ is connected.  It then follows from Proposition \ref{prop:LIMIT.POINTS} that $V \cap C$ is connected.

Finally, it follows that the diameter of $V$ is at most $2^{-t_0 + 1} + \operatorname{diam}(F_0)$.  Hence,
since $q \in V$, $V \subseteq U$.

Suppose (\ref{itm:E}).  Again, $V$ is open and it is possible to uniformly compute a name of $V$ from the given data.
Also, $q \in V$.  The diameter of $V$ is at most $2^{-t_0}$.  Hence, $V \subseteq U$.  By construction,
\[
C \cap \bigcup\{S_{t_0, e'}\ :\ e' > e\ \wedge\ \operatorname{diam}(S_{t_0, e'}) < 2^{-t_0}\}
\]
is connected.  Since (\ref{itm:E}), $R_e$ acts at $t_1 + 1$.  Hence, $F_0 \cap C_{t_1}$ is connected.
By Proposition \ref{prop:LIMIT.POINTS},
\[
\{p_{t_1 +1 }\} \cup C \cap \bigcup\{S_{t_0, e'}\ :\ e' > e\ \wedge\ \operatorname{diam}(S_{t_0,e'}) < 2^{-t_0}\}
\]
is connected.  But, $p_{t_1 + 1} \in R_0 \cap C_{t_1}$. Hence, $V \cap C$ is connected.
\end{proof}

Thus, by Theorem \ref{thm:PEANO}, $C$ is a computable curve.  However, Lemma \ref{lm:ELC} is not merely a roundabout way of reaching this conclusion, but is in fact a stronger conclusion.  See  \cite{Couch.Daniel.McNicholl.2010}.

\begin{lemma}\label{lm:COMP.RECT}
$C$ is rectifiable and its length is computable.
\end{lemma}

\begin{proof}
By construction, for each $t$ for which $C_{t+1} - C_t \neq \emptyset$, $\overline{C_{t+1} - C_t}$ is a curve.  Suppose $R_e$ acts at $t + 1$.  It follows that the length of $h_{e', t+1}$ is smaller than $2^{-t}2^{-(e' - e) - 1}$ whenever $e' > e$ and that the length of $\overline{C_{t+1} - C_t}$ is at most $2^{-t+2}$.  It follows that the length of $C$ is finite and that for each $t$, the length of $C$ differs from the length of $C_t$ by at most $2^{-t + 3}$.  Thus, the length of $C$ is computable.
\end{proof}

The proof is complete.
\end{proof}

\section*{Acknowledgement}

I thank Jack Lutz and the Computer Science Department of Iowa State University for their hospitality.  I also thank Lamar University for generously supporting my visit to Iowa State University during the Fall of 2010.  I also thank Jack for stimulating conversation and for one of the proofs of Theorem \ref{thm:NOT.ON.RECT}.  Finally, I thank my wife Susan for support.

\bibliographystyle{amsplain}

redpajama_set_name: RedPajamaArXiv


View cart "Urban Contemporary History Month by Scott Woods" has been added to your cart.
cessparilla- a brown soft drink brewed from roots grown near a septic tank.
Go ahead, order a copy, you want to read the rest.


text:
Tagelus affinis är en musselart som först beskrevs av C. B. Adams 1852.  Tagelus affinis ingår i släktet Tagelus och familjen Solecurtidae. Inga underarter finns listade i Catalogue of Life.

Källor

Musslor
affinis

redpajama_set_name: RedPajamaWikipedia


During the 12-month period, January-December 2018, the most number of tourists visited the country in December (253,169), followed by January (238,924) and February (235,618) according to Sri Lanka Tourism Development Authority (SLTDA) sources.
However, December 2018 recorded a slower growth compared to December 2017, with an increase of 3.5 per cent in the number of tourist arrivals. March is considered as the best performing month in terms of growth (24.1%).
October posted the lowest growth, 0.5 per cent owing to the political instability in the country which resulted in many countries issuing travel warnings on Sri Lanka. A massive number of cancellation of bookings was also seen during the last two months of last year.
India (424,887), China (265,965) and United Kingdom (254,176) were the top three markets for Sri Lanka tourism last year. One significant observation is the drop of Chinese tourists for the third consecutive year where 271,577 and 268,952 Chinese tourist arrivals were reported in 2016 and 2017. In December 2018, several tourist generating countries (to Sri Lanka) including India, China, South Korea, Australia, and the Maldives logged a negative performance. However, growth in the UK, German, French and Russian markets helped to secure a 3.5 percent growth last December.
Sri Lanka attracted 2.1 million international tourists in 2017.


text:
USA: Comment: Sexual Assault and Trust in the Military
General Women, Peace and Security
Barbara Gove served as a Marine at Parris Island and Cherry Point in the mid-nineteen-fifties. Decades later, she was interviewed for the University of North Carolina-Greensboro's Betty H. Carter Women Veterans Historical Project. "Do you think they were not as tough on the women entering the service?" she was asked. "Oh no, they were tough," Gove said.
They were tough on the women. But when you even lived up to their specifications, they still were inconsiderate. There were two women at Cherry Point who got raped. One girl hung herself.
There was a lot that went on. That's the part that I don't really remember too much about.
There is a lot that isn't remembered—whether out of self-protection, wishful thinking, neglect, or obliviousness—about the service of American women in the military. This is particularly true when it comes to sexual assault perpetrated within the armed forces.
At a press conference on Monday, Secretary of Defense Leon Panetta and General Martin Dempsey, the Chairman of the Joint Chiefs of Staff, announced a new plan for addressing these crimes. The measures include a directive that all complaints be sent to an officer at the level of a colonel or Navy captain; making sure that there is a record of disciplinary proceedings that is not hidden away; attempts at prevention, with early training, and responsiveness, with hotlines and a dedicated officer; and holding commanders accountable. The Pentagon can order some of these steps; Congress needs to approve others, like establishing special-victims units for each service. It should do so as soon as is practical.
Any discussion of what these crimes mean should start with some fixed points. Women have taken part in America's wars from our earliest days, in diverse roles and in all services. ("Marinettes" helped win the First World War.) Women are not optional—they never have been, and they especially aren't now.
Our all-volunteer military would simply be unsustainable without women: close to fifteen per cent of our active-duty forces are women, including fifteen per cent of the National Guard, and almost twenty per cent of the reserves. (Panetta said this explicitly: "The problem is that sexual assault remains a disincentive for many to become a part of the United States military.")
More than three thousand of those women reported last year that other service members had sexually assaulted them. The Pentagon estimates that, since only a fraction of these crimes are reported, that there may actually have been nineteen thousand attacks. "We realize that the crime of sexual assault erodes the very fabric of our profession. Our profession is built on trust and this particular crime erodes that trust." It is not only a matter of trust between soldiers. Civilians send soldiers into these theatres, and rates of assault at this level represent a breach of faith—one that is, in essence, no different from recklessly deploying an Army into an unsustainable fight.
This would be an urgent problem in peacetime; it is worse when women, like all service members, have spent years dealing with multiple deployments. They wear a person down, in the best of circumstances, and can be isolating, or devastating. Battlefield concerns also distract unit commanders, making the shift to higher-ranking officers particularly important.
Women are theoretically barred from combat roles, but that distinction has become increasingly arcane. Women are in combat. And in addition to P.T.S.D., there is M.S.T., or military sexual trauma. The Service Women's Action Network, an advocacy group, notes that the term shouldn't be used as a euphemism—that rape should be called rape, and not, like so much in military life, acronymized into oblivion. But the particular consequences of sexual assault need to be named somehow, and recognized. (Men can also be victims of sexual assault.)
Advocacy groups like SWAN are worth mentioning because, as is often the case, the military did not get to this point on its own. It took pressure from women in the ranks, in politics, and in civilian life. This story is also a reminder of why that's necessary—and why exploring the history of women in the military is, too. For many women, service was a defining, rewarding, even liberating experience, despite any hardship. The majority, thankfully, were never the victims of sexual assault. None of them ever should be.
Historical perspective also helps guard against category confusion. At Panetta's press conference, the first question was not about sexual-assault measures but about just what happened at a hotel in Cartagena, Colombia, with eleven Secret Service agents, nine military men, and about twenty prostitutes.
Prostitution and sexual assault are not the same thing; a seaside hotel is not a U.S. military base. (That said, there has probably been too little discussion of how and whether the sexual commerce that, historically, has often accompanied armies, to corrosive effect, has figured in our latest long wars. There is also the problem of rape as a weapon of war, seen in awful dimensions in Africa's wars today.) What's telling is the sense of inevitability that often accompanies the discussion of both: the notion that this is just what happens when young men—in particular, young men with guns—are sent to strange and dangerous places. Or, with an even lazier sense of defeatism: this is what happens when you send men and women there together.
But why should it be? Nothing in our history warrants that level of fatalism. If women's involvement in our wars—in our common defense—is a constant, so is the way their roles changed. Where there were once Marinettes, there are now Marine woman generals. Last year, Brigadier General Loretta Reynolds took over the command at Parris Island, where Barbara Gove served. The military can be a place where the intractable is overcome—we saw that in the realm of race, and there is every sign that we are seeing it again now that gay and lesbian service members don't have to lie about who they are. "We must send the signal that this is not a problem we are going to ignore," Panetta said—and also that it's a battle we can win.

redpajama_set_name: RedPajamaCommonCrawl


text:
AdvertorialApril issue 20ArchitectureArtArt LineArts & CulAt HomeBlog rowBookmarkBooksBusinessCinemaCover StoryCrimeDesign
Select category Art Arts & Culture Blog Row Bookmark Business Cinema Culture Economy Elections 2018 Film Girl Guide Globetrotting Globetrotting Heritage Historical research History In Memoriam Movies News and Politics News Report Newsbeat National Newsliner Opinion Politics Profile Report Reporter's Diary Society Sport Report Sports Technology The Water Cooler Travel Travel Uncategorized Viewpoint Viewpoint Web Stories
Month December November October September August July June May April March February January Year 2015 2013 2014 2016 2017 2012 2011 2010 2008 2007 2006 2005 2009 2004 2003 2002 1994 2018 2019 1996
March Issue 2016
Reading, Reacting, Writing
Interview: Ustad Rais Khan
Clad in a crisp white kurta pyjama, a jewelled stud winking in one ear,…
"This is a great time for Pakistani cinema." — Mehreen Jabbar
Known for her nuanced characters and intense storylines, Mehreen Jabbar is one of television's most…
Inner City Chronicle
Lyari is today a sad reminder of the past. Infested with criminal gangs, its old…
A Family Recalls
"He left home after having chai and roti. My son was wearing a vibrant turquoise…
The Lyari Story
Ghulam Rasool Kalmati, popularly known as Mulla Kalmati, an author and Balochi language poet, serves…
A Global Conglomerate of Oppression
The pronounced lack of interest in the public health system in Pakistan is not difficult…
Interview: Ayla Raza
How did you get into the act of organising classical music concerts? I have always…
Dying Notes
Opinions on the state of classical music in Pakistan run through an entire spectrum, from…
In her show The Country of Last Things, Huma Mulji has stepped out of the…
Interview: Dr Ghazala Rahman Rafiq
In her highly compact office, Dr. Ghazala Rahman Rafiq, Director of The Sindh Abhyas Academy…
Haunted by the Past
The recent deterioration in Pakistan's relations with Bangladesh — the reciprocal expulsion of diplomats from…
Art in a Fragmented City
Karachi will host its first Art Biennale in 2017. As the buzz builds up, people…
Fifth Province?
On January 7, the spokesperson for the chief minister of Gilgit-Baltistan (GB), Hafiz Hafeez ur…
The Debt Dragon
It took 60 years for Pakistan to accumulate a total of Rs 4.8 trillion in…
"This is not just the story of one Laxmi."
Interview of Laxmi Narayan Tripathi by Deneb Sumbul. At first sight, Laxmi Narayan Tripathi might…
In Memoriam: Naushaba Burney
Naushaba Burney began and ended her career in education and was certainly well-equipped to do…
Governments in poor countries, especially those which are totally dependent on imported fuel, need to…
More than 20 months after the launching of the military operation Zarb-e-Azb against local and…
Movie Review: The Revenant
A Role to be Revered by Deneb Sumbul. The Revenant is as close as it…
Movie Review: Fitoor
The serene beauty of Srinagar, Kashmir, and a beautiful girl galloping in on a horse…
Moving the Goalpost
"Women of Pakistan: Missed the MDGs, Must Achieve the SDGs." That was the theme of…
In Memoriam: Intizar Husain
Few people are fortunate to live a life intertwined with letters, and the great Urdu…
A Chilling Experience
A true soldier does not cry. But in director Dawar Mahmood's stage play Siachen, the…
It is not damning Bachaana with faint praise to say that the best thing about…
In Memoriam: Fatima Surraya Bajia
Diminutive, soft-spoken and multi-dimensional, Fatima Surraya — "Bajia" to all — passed away in Karachi,…
General Concerns
"The image of a mustachioed man with peaked cap and a chest full of medals…
From Global to Local
Like 2015, the 2016 edition of the Lahore Literature Festival (LLF) hovered on the brink…
With little warning, Mumtaz Qadri, Governor Punjab Salmaan Taseer's assassin, was hung in Adiala Jail…
A League of our Own
"Today it's a victory of the people of Pakistan –nobody has lost, it's a victory…
Cover Story: Crime and Politics
According to media reports based on official statements by the concerned authorities, Uzair Jan Baloch,…
Even before it started, the seventh edition of the Karachi Literature Festival (KLF) was beset…
Editor's Note: March 2016
The passage of the Protection of Women Against Domestic Violence Bill 2015 by the Punjab…
Democracy Military Style
The army chief, General Ashfaq Pervaiz Kayani, recently invited a team of journalists for a…
By Newsline Admin | Arts & Culture | Books | Published 4 years ago
Even before it started, the seventh edition of the Karachi Literature Festival (KLF) was beset by bad news. The firebrand actor Anupam Kher was embroiled in a visa controversy, for which he and the Foreign Office took turns blaming each other, and then actor Nandita Das too pulled out, citing illness. Far more tragically, literary giant Intizar Husain, who was scheduled to participate in the event, passed away just three days before it started. Still the show went on.
The opening ceremony appropriately commenced with a one-minute silence for Husain. Organisers Ameena Saiyid and Asif Farrukhi recalled their memories of Intizar Husain and spoke of his support and encouragement of KLF.
One of the keynote speakers, Urdu poet and author, Fahmida Riaz spoke about the environment of intolerance that had engulfed Pakistan and India. She observed that for the past few years, just before the festival begins, it is overshadowed by a tragedy, referring to the Quetta massacre of Shia Hazaras, the APS incident and the attack on Bacha Khan University in Charsadda. She also bemoaned the deaths of Intizar Husain and Nasreen Anjum Bhatti, pointing out that both belonged to beleaguered communities — the former a Shia Muslim and the latter a Christian woman.
The other keynote speaker, Dr Pervez Hoodbhoy, gave a critique on 'The age of unreason' in both India and Pakistan where rational thinking and the scientific approach are under threat from right-wing zealots. He also spoke about his recent visit to India and the prevailing environment there. "It is only through an enlightened society that we can hope for the intellectual advancement of society. Art and literature can bring about human oneness. As long as we have literature festivals, there's hope," said Hoodbhoy.
The third gender and other minorities
One of the topics introduced for the first time at KLF was that of the third gender. For two sessions on the subject, 'The Dilemmas of the Transgender' and 'Transgender Rights: Do They Have Any?' the Indian transgender rights activist and celebrity, Laxmi Narayan Tripathi had been specially invited. Her flamboyant personality and wit kept a packed audience spellbound and narrating episodes from her life, she highlighted the issues and isolation faced by the transgender community in India.
Just as in her book, Me Laxmi, Me Hijra, nothing was taboo during the discussion; be it sexuality or sexual orientation, stigma, life choices, morality and other prickly questions raised by the moderator, Arfa Sayeda Zehra. There was frequent repartee between the two, punctuated with a lot of `I love you' and `I love you too's', whenever the debate turned into an argument. Despite the sensitive nature of the subject, Laxmi made the discourse on her struggles, activism and achievements not just enlightening but enjoyable as well.
'Transgender Rights: Are There Any?' on the second day of KLF, included Reema Abbasi in the panel along with local transgenders, Bindiya Rana and Kim. Moderated by Khawar Mumtaz, more or less the same insights and issues were shared as on the first day. However, Bindiya Rana and Laxmi both pointed out that although Pakistan was the first in giving transgender community their rights and recognition, India not only followed the example, but took it to the next level — by drafting policies for the implementation of those rights. Bindiya Rana also narrated her own struggles, including standing for local elections and surviving attempts on her life.
Unfortunately, during both sessions, some insensitive members of the audience asked a few improper questions — to which Laxmi retorted with equally strong barbs, putting them in their place.
"They [minorities] have a right to be here. They don't need anybody's permission or anybody's meherbani. It is their land and has always been their land," said John O'Brien, a Catholic priest, during a very interesting session titled 'The White Stripe on the National Flag.'
With a packed hall and constant applause when statements were made in favour of minorities, or the faults of the majority were pointed out, this session was possibly the most interactive. Heated discussions took place, and emotional anecdotes were narrated by minority members of the audience.
O'Brien, Shaheen Atiq-ur-Rehman and Sono Khangarani were the three panelists who stole the show and hit all the right notes with every word they spoke. They resonated with the audience, unlike French writer Oliver Truc who spoke about minorities in the West for about two to three minutes and then proceeded to sit in silence for the rest of the session.
"Christians are looking for equality, not protection," O'Brien told the audience. Shaheen added that the majority is to blame for the treatment of minorities. "It is because of people like you and I, who fail to take the initiative and remain silent, that minorities find themselves in so much distress today," she said.
The session took a brave and open route in the discussion of the blasphemy law. Here, O'Brien raised a question that many of us think of, "How many mainstream Sunnis are charged under the blasphemy law?"
"Aasia bibi 'confessed' to defiling the Quran through her thumbprint on a statement she could not read as she is illiterate. After each atrocity there is a noble apology, a promise for compensation and that it will never happen again. Until it does," he concluded.
Society and its problems
KLF's session on 'Tharparkar: Desert Woes' on the second day had the audience thoroughly engaged. One of the panelists commented that Tharparkar makes it to the news only when there is death and drought. But what emerged from the audience of mostly concerned citizens and activists was the uneasy matter of madrassahs proliferating at an alarming rate in Tharparkar. At the moderator, Sadiqa Salahuddin's request, I.A. Rehman, seated in the audience, commented on the seriousness of the situation. Referring to Dr. Sono Khangharani's talk earlier on Tharparkar's changing demographics, Rehman pointed out that the impunity with which religious extremism was being allowed to flourish will destroy the Thari culture — and worse, will turn them into zealots.
One of the main focuses of the session was Tharparkar's infant mortality. Dr. Tanveer Ahmed of HANDS, an NGO, painted a critical picture, saying the data from official sources showed an alarmingly high 481 deaths out of every thousand children under the age of five. These figures came from urban district hospitals, which the media has greater access to, and did not include those from rural health centres, which are far less accessible.
The main causes for the high mortality rate are the distances, lack of transportation, poverty and the unavailability of lady health workers, who only cover 42 per cent of Tharparkar. Dr. Tanveer informed the audience that 72 per cent of Sindh's households were food insecure and the resulting malnourishment was causing 47 per cent of the children to suffer from stunted growth — the highest in the country.
Social activist Dr. Sono Khangharani spoke on the water crisis in Thar, saying 70 per cent of the water is undrinkable while half of Thar's 1.5 million population is jobless. Panelist Masood Lohar, the National Programme Manager of UNDP-Small Grants, spoke on Thar's history, migratory culture and the impact of drought on Thar's indigenous population and their livestock.
The need to read
"Parents should start reading to their children even before the child can read," Ameena Saiyid stated during the session 'Education and Reading: Community and Parental Involvement.' The session discussed the roles of parents and the community in encouraging reading, the urban-rural and male-female divide in curriculums, the role of the government in education, and interestingly, the importance of building libraries to foster growth in the level of reading.
According to Saiyid, "In order to encourage reading in children, it is essential that parents themselves read. If they are seen reading and enjoying books and going out and buying books or giving books as presents, I think children will learn that."
Adding to this discussion was the topic of libraries, where another panelist stated the importance of libraries in the country, which will inevitably lead to a change in habits and encourage people to read.
To this, Shahnaz Wazir Ali forthrightly said, "There is always talk of metro passes and underpasses. But how many libraries have been made?"
In terms of the role of the government, Fazlullah Pechuho defended the government and stated that the private sector must be involved in the process of education and building schools too.
"Politicians are blamed every time! When schools in villages are shut for years, there are several instances when the communities in those villages do not protest," he said, highlighting the general mindset of the population in the country.
Discourses on the national language
Veteran columnists and writers such as Masood Ashar, Zahid Hina, Asghar Nadeem Syed, Wusatullah Khan and Mubashir Ali Zaidi were on hand for the 'Urdu Columns and Blogging' session. It was moderated by the editor of online Urdu site Hum Sub, which has provided space to many new bloggers.
The session started with Ashar reading columns written by the late Intizar Husain. The moderator presented an overview of the traditions of Urdu opinion columns and how it defied censorship from dictators and political governments. Ashar and Asghar Nadeem Syed deplored the tendency of Urdu columnists to act like propagandists of political parties and conservative religious pressure groups.
Wusatullah Khan of BBC Urdu, one of the most widely read columnists, said while writing he imagines himself sitting on the footpath of a road, with a cigarette in his hand, overhearing the conversations of the people around him.
In another session, popular Sindhi and Urdu playwright and short story writer Noorul Huda Shah spoke about the influence of her TV serials, such as Marvi, Jungle on social issues. She also read a short story she had written.
The session on Urdu digests and their contribution to Urdu literature descended into a farce as panelists declared themselves unqualified to speak on the subject, bickered endlessly and did not give enough time to Shakeel Adilzada, the only person on the panel who had actually written stories for digests.
Not without our neighbour
With both Anupam Kher and Nandita Das absent from KLF, it fell to outspoken journalist Barkha Dutt to take up the Indian mantle, something she did with aplomb. Since Dutt rose to fame for her reporting on the Kargil war, it was unsurprising that the disputed region featured during most of her sessions.
The launch of her book, This Unquiet Land: Stories From India's Fault Lines, saw Dutt in both a reflective and combative mood. On Kashmir, she was the very voice of tolerance, saying the two countries needed to work on other issues first before trying to come to a resolution on Kashmir. In fact, according to her, "Kashmir is no longer the theatre of conflict." She was also scathing of both countries for refusing visas, comparing them to spoilt babies who needed to grow up.
If anything raised Dutt's ire, it was how social media had made nuanced discussion impossible. She also lamented the double standards applied to women, saying, "If you are a woman with a brain in either India or Pakistan, a thousand things will be said about you."
Dutt was also present at a panel discussion confusingly titled, 'Words and Images of the Day.' Present with Dutt was moderator Ghazi Salahuddin, Financial Times correspondent Farhan Bokhari and French writer Olivier Truc. Dutt and Bokhari got into a heated discussion about the extent of regulation required in the media, with Dutt arguing for self-regulation, something Bokhari claims will never be practiced. Both did eventually agree that government regulation must be avoided at all cost.
Dutt defended the supposed negativity of the news, saying it is not the job of the media to act as public relations officials and that their duty is to show what ails society. She interestingly also blamed the audience for sensationalism, asking why they keep tuning in if it offends them so much.
India was also at the centre of discussion in a panel titled 'What Keeps Us Apart? India-Pakistan Relations.' The panelists — Salman Khurshid, Jamshed Marker, Hina Rabbani Khar and Khurshid Mahmud Kasuri — all hailed from the political mileu and gave predictably safe answers. All said there needed to be greater understanding, the stakeholders on both sides had to take the initiative and vexing issues had to be diplomatically approached.
The true star of the session was the moderator F.S. Aijazuddin, who abandoned the customary Q&A format to pose questions to the audience. He asked the crowd, numbering in the hundreds, to answer questions about Hindu and Sikh beliefs. The silence, as they say, was deafening and perhaps answered the question posed in the title of the discussion better than any of the panelists.
For a country with an ideologically-blinkered sense of its own history, Pakistan needs Jamshed Marker. The 93-year-old former diplomat launched his book Cover Point: Impressions of Leadership in Pakistan by saying, "Old men forget and I have forgotten quite a lot, but not the things I should not forget."
Marker talked about how no one gave Pakistan much chance of surviving in its early days but there was a spirit of togetherness and defiance — a spirit that has now curdled into something uglier. He was still optimistic for the most part, taking a longer view, and claiming our very existence to this day is grounds for optimism. Ever the diplomat, Marker was even guarded in his criticism of Zia-ul-Haq choosing only to comment on the difficulty in working for the dictator. Still, he was on point in claiming, "The Pakistan we have today is not the concept of Jinnah."
The confident Oscar-winning documentary filmmaker Sharmeen Obaid-Chinoy basically just took the reins during her session at this year's KLF. Sharmeen's boisterous personality shone through as she proudly spoke about her documentary A Girl in the River — The Price of Forgiveness, which is about honour killings in Pakistan and has been nominated for an Oscar.
Filmmaker Chinoy spoke proudly about how Prime Minister Nawaz Sharif gave a statement promising to look into the matter of honour killings ("It should be called pre-meditated murder," she said), after her recent documentary, A Girl in the River.
Sharmeen openly displayed her annoyance and disappointment at the attitudes prevalent in the country, where honour was only associated with women. Further, when she was questioned by the moderator about how her films were accused of putting Pakistan in the limelight, by portraying the country in a negative manner, she was quick to interject before he could even finish the question.
"If you don't like this picture then fix the problem! Don't shoot the messenger!" she said, to a loud round of applause from the audience.
2015 saw the release of several Pakistani films, from Manto and Moor to Dekh Magar Pyaar Se and Jawani Phir Nahin Aani, that were a good mix of typical masala films as well as those with a good storyline and jaw-dropping choreography.
But what gave way to this rise in the production of films in Pakistan? According to Nadeem Mandviwalla, it was the change in the policies of the government in 2001 and 2007. He also rightfully stated that the popular demand for films is mostly Bollywood movies, and this is essential for cinemas to keep running.
"We have learnt a lot from India, of course. Our generation has viewed mostly Bollywood," said actor Nimra Bucha.
The only change in cinema is not just the production of new films, but the fact that there are cinema houses to screen these films. However, as Bucha pointed out, the one thing missing from the Pakistani film industry is well equipped studios.
Another important question that arose was that of audience expectations. Are we just keen on films full of fun and dance and pretty faces? Do we care about the art of good filmmaking? Actor Sania Saeed responded, "I think our audience is ready to see any kind of cinema. It is very important that we tell our stories, related to our culture."
KLF attendees gravitated towards comedy time like ants towards syrup. Aquarius Hall was bursting at the seams to attend the 'Laughter is the Best Medicine' session moderated by Nadeem Paracha — more than half the audience was standing in the aisles. Paracha introduced the topic of humour as a very dangerous weapon and his fellow panelists, Saad Haroon and Sanjay Rajoura as the top guns in delivering it.
Amid all the hilarity, the panelists discussed the attitude Pakistanis and Indians had towards satire, and how tolerant they were of it. Nadeem Paracha gave an example of how many people were angered by his tongue-in-cheek piece on a mullah. Saad Haroon said both cultures struggled with satire and gave the example of a video he made that went viral — a parody called Burqa Woman which made him feel, from all the comments it received, that people wanted to hit him hundreds and thousands of times. Sanjay quipped that most of the time the comments generated from both sides of the border give the impression that a third world war was on.
With his infectious humour, Saad Haroon responded to questions from the audience, saying at times comedy is meant to be dark and ugly, while Sanjay said by definition comedy should offend someone. But at the same time Saad also felt comedians from both sides of the border end up being ambassadors to counter perceptions and stereotypes abroad about their nationalities.
This article was originally published in Newsline's February 2016 issue.
Sanjay Rajoura's jokes were mostly politically sound, but not without jabs about Pakistan and its culture — the Indian bias came through during both his sessions. Perhaps misjudging the mood of the audience, his comedy routines did not evoke the same level of amusement as Saad's. He even had a minor spat with an elderly lady in the audience during his stand-up routine the first day — when he made a dig at the Quaid's dream of a separate homeland for Muslims.
'An Evening with Anwar Masood' also drew a large crowd and was filled with merriment. Despite his advancing years, the Urdu, Punjabi and Persian scholar hadn't lost his touch. A surprising number of fans were from the youth who kept calling out to him to recite some of his popular poems including 'Banyan' and 'Chai-Lassi.'
This article was originally published in Newsline's March 2016 issue.
Copyright © 2020 All Rights reserved by Newsline Magazine.


SAN BERNARDINO--Another incident involving a police officer's 'stun gun' has resulted in a fatality.
A 19-year-old youth collapsed after being hit with an electric jolt. The incident occurred at Orchid Court, a half-way house for mentally-challenged men.
Police said the youth was wearing a gas mask and appeared agitated at the scene of a reported stabbing. Officers tried to subdue him with the Taser weapon. He became unresponsive and could not be revived at St. Bernardine's Medical Center.
Two other men have died over the past four-months when they were subdued with 'stun guns'. Both had been behaving erratically when confronted by police.


text:
/*
 *
 */
package org.apache.harmony.test.func.api.javax.naming.event;

import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.Vector;

import javax.naming.Binding;
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.NameNotFoundException;
import javax.naming.NameParser;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.OperationNotSupportedException;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchControls;
import javax.naming.event.EventDirContext;
import javax.naming.event.NamingEvent;
import javax.naming.event.NamingExceptionEvent;
import javax.naming.event.NamingListener;

/**
 * Simple implementation of javax.naming.event.EventDirCtx
 *
 */
public class EventDirCtx implements EventDirContext {

    /**
     * Event listeners.
     */
    private Map       listeners;

    /**
     * Bindings, associated with this context.
     */
    private Map       bindings;

    /**
     * Binding attributes.
     */
    private Map       attributes;

    /**
     * Context environment.
     */
    private Hashtable env;

    /**
     * Construct new context with specified environment.
     */
    public EventDirCtx(Hashtable env) {
        this.env = (env != null) ? (Hashtable) (env.clone()) : new Hashtable();
        listeners = new Hashtable();
        bindings = new TreeMap();
        attributes = new TreeMap();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventContext#addNamingListener(java.lang.String,
     *      int, javax.naming.event.NamingListener)
     */
    public void addNamingListener(String name, int scope, NamingListener l)
        throws NamingException {
        List list = getListeners(name);
        list.add(l);
        listeners.put(name, list);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventContext#removeNamingListener(javax.naming.event.NamingListener)
     */
    public void removeNamingListener(NamingListener l) throws NamingException {
        Iterator it = listeners.keySet().iterator();
        while (it.hasNext()) {
            String name = (String) it.next();
            getListeners(name).remove(l);
        }
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#bind(java.lang.String,
     *      java.lang.Object, javax.naming.directory.Attributes)
     */
    public void bind(String name, Object obj, Attributes attrs)
        throws NamingException {
        Binding bind = new Binding(name, obj);
        attributes.put(name, attrs);
        fire(name, NamingEvent.OBJECT_ADDED, bind, (Binding) bindings.put(name,
            bind), null);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#bind(java.lang.String, java.lang.Object)
     */
    public void bind(String name, Object obj) throws NamingException {
        bind(name, obj, null);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#rebind(java.lang.String,
     *      java.lang.Object, javax.naming.directory.Attributes)
     */
    public void rebind(String name, Object obj, Attributes attrs)
        throws NamingException {
        Binding bind = new Binding(name, obj);
        attributes.put(name, attrs);
        fire(name, NamingEvent.OBJECT_CHANGED, bind, (Binding) bindings.put(
            name, bind), null);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#rebind(java.lang.String, java.lang.Object)
     */
    public void rebind(String name, Object obj) throws NamingException {
        rebind(name, obj, null);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#unbind(java.lang.String)
     */
    public void unbind(String name) throws NamingException {
        attributes.remove(name);
        fire(name, NamingEvent.OBJECT_REMOVED, null, (Binding) bindings
            .remove(name), null);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#rename(java.lang.String, java.lang.String)
     */
    public void rename(String name1, String name2) throws NamingException {
        Binding old = (Binding) bindings.remove(name1);
        if (old == null) {
            throw new NameNotFoundException(name1);
        }

        Binding newBd = new Binding(name2, old.getObject());
        bindings.put(name2, newBd);
        fire(name1, NamingEvent.OBJECT_RENAMED, newBd, old, null);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#lookup(java.lang.String)
     */
    public Object lookup(String name) throws NamingException {
        if (name.trim().equals("")) {
            return this;
        }

        Binding b = (Binding) bindings.get(name);
        return b != null ? b.getObject() : null;
    }

    /**
     * @param name
     * @param type
     * @param newBd
     * @param oldBd
     * @param changeInfo
     */
    private void fire(String name, int type, Binding newBd, Binding oldBd,
        Object changeInfo) {

        NamingEvent e = new NamingEvent(this, type, newBd, oldBd, changeInfo);
        List l = getListeners(name);
        for (int i = 0; i < l.size(); i++) {
            e.dispatch((NamingListener) l.get(i));
        }
    }

    /**
     * @param name
     * @return
     */
    private List getListeners(String name) {
        List l = (List) listeners.get(name);
        return l != null ? l : new Vector();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#createSubcontext(java.lang.String,
     *      javax.naming.directory.Attributes)
     */
    public DirContext createSubcontext(String name, Attributes attrs)
        throws NamingException {
        DirContext ctx = new EventDirCtx(env);
        bind(name, ctx, attrs);
        return ctx;
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#createSubcontext(javax.naming.Name,
     *      javax.naming.directory.Attributes)
     */
    public DirContext createSubcontext(Name name, Attributes attrs)
        throws NamingException {
        return createSubcontext(name.toString(), attrs);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#destroySubcontext(java.lang.String)
     */
    public void destroySubcontext(String name) throws NamingException {
        unbind(name);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#destroySubcontext(javax.naming.Name)
     */
    public void destroySubcontext(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#rebind(javax.naming.Name,
     *      java.lang.Object, javax.naming.directory.Attributes)
     */
    public void rebind(Name name, Object obj, Attributes attrs)
        throws NamingException {
        rebind(name.toString(), obj, attrs);
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#rebind(javax.naming.Name, java.lang.Object)
     */
    public void rebind(Name arg0, Object arg1) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventDirContext#addNamingListener(java.lang.String,
     *      java.lang.String, javax.naming.directory.SearchControls,
     *      javax.naming.event.NamingListener)
     */
    public void addNamingListener(String arg0, String arg1,
        SearchControls arg2, NamingListener arg3) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventDirContext#addNamingListener(javax.naming.Name,
     *      java.lang.String, javax.naming.directory.SearchControls,
     *      javax.naming.event.NamingListener)
     */
    public void addNamingListener(Name arg0, String arg1, SearchControls arg2,
        NamingListener arg3) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventDirContext#addNamingListener(java.lang.String,
     *      java.lang.String, java.lang.Object[],
     *      javax.naming.directory.SearchControls,
     *      javax.naming.event.NamingListener)
     */
    public void addNamingListener(String arg0, String arg1, Object[] arg2,
        SearchControls arg3, NamingListener arg4) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventDirContext#addNamingListener(javax.naming.Name,
     *      java.lang.String, java.lang.Object[],
     *      javax.naming.directory.SearchControls,
     *      javax.naming.event.NamingListener)
     */
    public void addNamingListener(Name arg0, String arg1, Object[] arg2,
        SearchControls arg3, NamingListener arg4) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventContext#targetMustExist()
     */
    public boolean targetMustExist() throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.event.EventContext#addNamingListener(javax.naming.Name,
     *      int, javax.naming.event.NamingListener)
     */
    public void addNamingListener(Name arg0, int arg1, NamingListener arg2)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getAttributes(java.lang.String)
     */
    public Attributes getAttributes(String arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#modifyAttributes(java.lang.String,
     *      int, javax.naming.directory.Attributes)
     */
    public void modifyAttributes(String arg0, int arg1, Attributes arg2)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getAttributes(javax.naming.Name)
     */
    public Attributes getAttributes(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#modifyAttributes(javax.naming.Name,
     *      int, javax.naming.directory.Attributes)
     */
    public void modifyAttributes(Name arg0, int arg1, Attributes arg2)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getSchema(java.lang.String)
     */
    public DirContext getSchema(String name) throws NamingException {
        List l = getListeners(name);
        NamingExceptionEvent e = new NamingExceptionEvent(this,
            new NamingException("Ok"));
        for (int i = 0; i < l.size(); i++) {
            e.dispatch((NamingListener) l.get(i));
        }
        return null;
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getSchemaClassDefinition(java.lang.String)
     */
    public DirContext getSchemaClassDefinition(String arg0)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getSchema(javax.naming.Name)
     */
    public DirContext getSchema(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getSchemaClassDefinition(javax.naming.Name)
     */
    public DirContext getSchemaClassDefinition(Name arg0)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#modifyAttributes(java.lang.String,
     *      javax.naming.directory.ModificationItem[])
     */
    public void modifyAttributes(String arg0, ModificationItem[] arg1)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#modifyAttributes(javax.naming.Name,
     *      javax.naming.directory.ModificationItem[])
     */
    public void modifyAttributes(Name arg0, ModificationItem[] arg1)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(java.lang.String,
     *      javax.naming.directory.Attributes)
     */
    public NamingEnumeration search(String arg0, Attributes arg1)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(javax.naming.Name,
     *      javax.naming.directory.Attributes)
     */
    public NamingEnumeration search(Name arg0, Attributes arg1)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#bind(javax.naming.Name,
     *      java.lang.Object, javax.naming.directory.Attributes)
     */
    public void bind(Name name, Object obj, Attributes arg2)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getAttributes(java.lang.String,
     *      java.lang.String[])
     */
    public Attributes getAttributes(String arg0, String[] arg1)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#getAttributes(javax.naming.Name,
     *      java.lang.String[])
     */
    public Attributes getAttributes(Name arg0, String[] arg1)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(java.lang.String,
     *      javax.naming.directory.Attributes, java.lang.String[])
     */
    public NamingEnumeration search(String arg0, Attributes arg1, String[] arg2)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(javax.naming.Name,
     *      javax.naming.directory.Attributes, java.lang.String[])
     */
    public NamingEnumeration search(Name arg0, Attributes arg1, String[] arg2)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(java.lang.String,
     *      java.lang.String, javax.naming.directory.SearchControls)
     */
    public NamingEnumeration search(String arg0, String arg1,
        SearchControls arg2) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(javax.naming.Name,
     *      java.lang.String, javax.naming.directory.SearchControls)
     */
    public NamingEnumeration search(Name arg0, String arg1, SearchControls arg2)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(java.lang.String,
     *      java.lang.String, java.lang.Object[],
     *      javax.naming.directory.SearchControls)
     */
    public NamingEnumeration search(String arg0, String arg1, Object[] arg2,
        SearchControls arg3) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.directory.DirContext#search(javax.naming.Name,
     *      java.lang.String, java.lang.Object[],
     *      javax.naming.directory.SearchControls)
     */
    public NamingEnumeration search(Name arg0, String arg1, Object[] arg2,
        SearchControls arg3) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#close()
     */
    public void close() throws NamingException {
        listeners.clear();
        attributes.clear();
        bindings.clear();
        env.clear();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#getNameInNamespace()
     */
    public String getNameInNamespace() throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#getEnvironment()
     */
    public Hashtable getEnvironment() throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#unbind(javax.naming.Name)
     */
    public void unbind(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#lookupLink(java.lang.String)
     */
    public Object lookupLink(String arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#removeFromEnvironment(java.lang.String)
     */
    public Object removeFromEnvironment(String arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#lookup(javax.naming.Name)
     */
    public Object lookup(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#lookupLink(javax.naming.Name)
     */
    public Object lookupLink(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#bind(javax.naming.Name, java.lang.Object)
     */
    public void bind(Name arg0, Object arg1) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#createSubcontext(java.lang.String)
     */
    public Context createSubcontext(String arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#createSubcontext(javax.naming.Name)
     */
    public Context createSubcontext(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#rename(javax.naming.Name, javax.naming.Name)
     */
    public void rename(Name arg0, Name arg1) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#getNameParser(java.lang.String)
     */
    public NameParser getNameParser(String arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#getNameParser(javax.naming.Name)
     */
    public NameParser getNameParser(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#list(java.lang.String)
     */
    public NamingEnumeration list(String arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#listBindings(java.lang.String)
     */
    public NamingEnumeration listBindings(String arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#list(javax.naming.Name)
     */
    public NamingEnumeration list(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#listBindings(javax.naming.Name)
     */
    public NamingEnumeration listBindings(Name arg0) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#addToEnvironment(java.lang.String,
     *      java.lang.Object)
     */
    public Object addToEnvironment(String arg0, Object arg1)
        throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#composeName(java.lang.String, java.lang.String)
     */
    public String composeName(String arg0, String arg1) throws NamingException {
        throw new OperationNotSupportedException();
    }

    /*
     * (non-Javadoc)
     *
     * @see javax.naming.Context#composeName(javax.naming.Name,
     *      javax.naming.Name)
     */
    public Name composeName(Name arg0, Name arg1) throws NamingException {
        throw new OperationNotSupportedException();
    }
}

redpajama_set_name: RedPajamaGithub


Discussion in 'Time for Tea' started by tirial, 9 May 2018.
Please don't shoulder barge the window open in the upstairs bedroom in pursuit of a bird and fall out 15 feet onto the patio.
Since she's trying to climb out of the window again, I think so... Daft moggy!
Yikes! Poor Sophie. (And doubly poor owners) - though I'm glad she's all right.
I know I'm normally on the other side of the bed so you can use this side as your own personal springboard, but it's hot this side of the bed was cool.
Thank you for not actually using my face as a springboard instead. That was a spectacular mid-air change of direction and I do appreciate it!
Maybe hop on the bed from further down next time, just to be on the safe side?
Mine all mine and Kindler like this.
I know it is hot, but when a thunderstorm results in you both lying unmoving by a windowsill unmoved by the thunder that's right overhead, I know it is too hot.
It is not so nice to be kneaded at three a.m.with claws out. I know this is the time you think It is cool enough to be fed, but injuring me so I have to plaster up scratches first will slow down your acquisition of food.
While we were minding our own business, there was a sound like the largest ever balloon slowly expiring in the house as the wind whistled through a puncture hole.
It's was only after a dash round we realised you had decided to knead on a vacuum packed set of fabrics and caused the problem.
This would also account for why you were dashing round the house as if the world was ending.
We now have to decide what to do with the re-inflated vacuum pack, which has now lost it's airtight seal, while comforting you at the same time.
Confused as heck at the noise.
She's stopped hunting USB drives:whistle:? Moved onto larger prey, then ?
I'm sorry you're feeling poorly, and yes, your activities did make it really easy to spot that there was a problem.
Dude. Peeing on the bed? Twice?!
Next time, choose the bathtub. We'll still notice (trust me!) and it's a lot easier to clean up.
Poor Loki, living up to his namesake no doubt.
Since when did you learn to Hypo-purr on a wavelength that will put me to sleep.
It's difficult to read a book in bed, when you sneak up and purr, leaving me to wake up 20 minutes later wondering what happened.
Peeing in the bath is the good option ? K.
Yup - much easier to clean than a mattress. I mean, you can use water and disinfectant on a bath!
Did I mention it was a double bed and the little sod peed right in the middle. through two layers of duvet, fleece, sheets, mattress topper and into the mattress?!
A week on, he seems to be back on form so I think he's healing up nicely. Fingers crossed that we don't get a repeat performance - if nothing else, my spine won't cope with another night on the couch!
Please stop taking lumps out of us because you keep catching yourself in our glasses.
We promise that the other cat you're seeing in the reflection is you - not some interloper who needs to be put in his place.
Seriously, there isn't enough antiseptic for your antics.
I have always found that cat owners have two things in common.
2. Bottles and bottles of antiseptic.
@athersgeo - so how is little Loki doing this side of the New Year?
How are Sophie and Matilda doing?
It's winter. Matilda just wants somewhere warm with access to food.
You notice that there is no third option on that list.
That was my breakfast, you know.
And yet, you finally achieved a goal, although it may have been unintentional, in that the washing machine has finally succumbed to you.
Slowly taking action over seven years until finally, one day, it can take no more and dies a death in mid wash, spilling water all over the floor. The post mortem showing the pump has been clogged completely, totally and utterly by your fur.
A new one has now taken it's place and I'm sure you have gone back to waiting and plotting.
Do the words obligate carnivore mean anything to you?
First it was the gluten free bread. Now it's the left over broccoli. Seriously, dude, what is it with the late night kitchen raids on food stuffs you do not like or eat?!
Don't worry, our food giver forgot to cover up the ice cream tub between servings.
Then they complained when I gave it back to them on the bed.
I am master food thief.
Substitute food give left bacon and egg under the netty thing. I figured out how to get the netty thing off and got bacon and egg while she was out.
I always go looking on their plate to see if they have good gooshie that should belong to me. If I am lucky I can see the plate before they notice me.