text:
\section{Introduction}
Understanding how the plasticity dynamics in multilayer biological neural networks are organized for efficient data-driven learning is a long-standing question in computational neuroscience \cite{Gerstner_etal14_neurdyna}, and elucidating it can open the door to scalable brain-inspired computers for continual ``life-long'' learning.
Machine learning and artificial neural networks provide important hints for answering this question.
Recent work has demonstrated that many ingredients of deep learning are compatible with biological neural networks and neuromorphic hardware \cite{Neftci18_datapowe,Neftci_etal19_surrgrad}.
This compatibility paves the road towards neuromorphic learning machines with performances similar to deep learning, while being able to learn online, with input streams, and using a fraction of the energy.

However, neural network training is especially time-consuming in neuromorphic hardware since they generally operate in real-time and on a single stream of data (i.e. in deep learning terms, using a batchsize of 1).
Furthermore, the training samples must be independently and identically distributed (iid).
The failure to meet the iid constraint often results in catastrophic forgetting \cite{McClelland_etal95_whyther}.
Methods such as transfer learning \cite{Yosinski_etal14_howtran} and meta-learning \cite{Finn_etal17_modemeta} can mitigate these two problems by pre-training a network in an iid fashion on a known task domain, followed by a small number of ``shots'' to learn the task-specific output.
Catastrophic forgetting is mitigated, because fewer data samples are needed to achieve a target accuracy compared to training from scratch, which translates into fewer synaptic weight updates.

Here, we leverage recent advances in surrogate gradient learning \cite{Neftci_etal19_surrgrad} and on-chip plasticity in neuromorphic hardware to demonstrate few-shot learning in an event-based gesture recognition task in Intel's neuromorphic research processor, Loihi.
A spiking convolutional neural network is trained offline using backpropagation through time \cite{Shrestha_Orchard18_slayspik} using an accurate behavioral model of the Loihi neuron.
The classification layer is then learned on-line using a variation of a three-factor rule for surrogate gradient learning \cite{Zenke_Ganguli17_supesupe} adapted to overcome limitations in neuromorphic hardware such as locality and bit precision.
We test the network learning performance on a gesture recognition task in a few-shot learning framework, and the performance is compared to that of an equivalent software model trained and executed on a conventional computer.
Our results demonstrate that the Loihi hardware achieves similar results to that of the software simulations, and provided the building blocks for multilayer learning and transfer learning in neuromorphic hardware.

\section{Surrogate Gradient Descent with the Loihi Neuromorphic Research Chip}

\subsection{Neuron and Plasticity Model}
The dynamics of the Loihi neuron follow the current-based leaky integrate-and-fire model.
The neuron uses two internal state variables:
The synaptic response current $u_i[n]$ and the membrane potential $v_i[n]$. The current is computed as the sum of filtered input spike trains added to a constant bias current;
\begin{equation}
    \begin{split}
        u_i[n] &= \sum_j w_{ij}Q_j[n]\\
        Q_j[n+1] &= \alpha_Q Q_j[n] + \frac{1}{\tau_u}S_j[n].
    \end{split}
\end{equation}
The variable $S_j[n]$ is the input spike train, modeled as a sum of boxcar functions of width and height equal to 1, with $n$ the discrete time step.
$Q_j[n]$ here is a first-order low-pass filter that models the unweighted post-synaptic current.
Upon an input spike $S_j$, $u_i$ undergoes a jump of height $w_{ij}$, then decays exponentially with time constant $\tau_u$, where $\alpha_Q=\exp(-\frac{1}{\tau_u})$.
The connection weights $w_{ij}$ are the trainable parameters of the neuron.
This synapse model is commonly used in computational neuroscience modeling \cite{Destexhe_etal98_methneur,Gerstner_etal14_neurdyna}.
In the equations above, inputs neurons are confounded with network neurons for simplicity of notation.
Although recurrent connections can be learned using the same dynamics as described in this work, our experiments focus on training feed-forward weights only.

The membrane potential follows similar dynamics and is the integration of the synaptic current with an exponential decay.
A neuron emits a spike when its membrane potential exceeds the firing threshold $v_{th}$.
\begin{equation}\label{eq:loihi_dynamics}
    \begin{split}
        S_i[n]   &= \Theta(v_i[n]-v_{th}),\\
        v_i[n]   &= \sum_j w_{ij}P_j[n] + R_i[n],\\
    \end{split}
\end{equation}
where,
\begin{equation}\label{eq:loihi_dynamics2}
    \begin{split}
        P_j[n+1] &= \alpha_P P_j[n] + \frac{1}{\tau_v}Q_j[n],\\
        R_i[n+1] &= \alpha_R R_i[n] - S_i v_{th}.
    \end{split}
\end{equation}
The term $\alpha_P = \exp(-\frac{1}{\tau_v})$ captures the leak of state $v$.
Following an input spike $S_j$, $P$ follows an unweighted ``alpha'' post-synaptic potential with fast rise and slow decay.
The term $R_i[n]$ captures the reset of the neuron after firing.
The neuron model above is a discrete-time version of the Spike Response Model (SRM$_0$) \cite{Gerstner_etal14_neurdyna} and is fully compatible with the Loihi neuron model.

The Loihi research processor offers a variety of local information to a programmable synaptic learning process including pre and post synaptic traces and reward traces corresponding to special reward spikes \cite{Davies_etal18_loihneur}.
Synaptic weights can be updated via a learning rule expressed as a finite-difference equation with respect to a synaptic state variable that follows a sum-of-products form as follows \cite{Davies_etal18_loihneur}:
\begin{equation}\label{eq:loihi_rule}
    w_{ij}[n+1] = w_{ij}[n]+\sum_k C_{k}\prod_l F_{kl},
\end{equation}
where $w_{ij}$ is the synaptic weight variable defined for the destination-source neuron pair being updated; $C_k$ is a scaling constant; and $F_{kl}$ may represent a synaptic state variable, a pre-synaptic trace, or a post-synaptic trace defined for the neuron pair $i$ and $j$.
The weights are stochastically rounded according to the programmed weight precision. All plastic weights in our work used 8 bit precision.
Currently, the Loihi's learning rules cannot scalably depend on an extrinsic factor such as modulation.
(Although there exists an external reward modulation variable, these are limited to 4 per core but surrogate gradient learning requires one per neuron.)
In the following paragraph, we describe a workaround for this constraint and the implementation of surrogate gradient learning.

\subsection{Surrogate Gradient Learning in Spiking Neurons}
The main contribution of this work is the implementation of a surrogate gradient-based learning rule in the Loihi research processor using three-factor rules.
Three-factor rules are extensions of Hebbian learning and \ac{STDP}, which can be derived from a normative (top-down) approach \cite{Urbanczik_Senn14_learby}.
Such rules are compatible with a wide number of unsupervised, supervised, and reinforcement learning paradigms \cite{Urbanczik_Senn14_learby}, and implementations can have scaling properties comparable to that of \ac{STDP} \cite{Detorakis_etal18_neursyna}.

The third factor in three-factor rules is motivated by neuromodulators, such as Dopamine, Acetylcholine, or Noradrenaline in reward-based learning \cite{Schultz02_gettform}.
Generally, the weight update of the three-factor learning rule can be written as follows:
\begin{equation}\label{eq:3f_rule}
  \Delta w_{ij}^{3F} \propto f_{pre} f_{post} M_i
\end{equation}
where $f_{pre}$ and $f_{post}$ correspond to functions over presynaptic and post synaptic variables, respectively (for example, but not restricted to traces $P_i$ and $P_j$), and $M_i$ is the modulating term of the postsynaptic neuron $i$.
Note that, to reduce clutter, time indices will be omitted when there is no ambiguity (all terms in the same time step $n$).
The modulating term is a task-dependent function, which can, for example, represent error, surprise, reward, or another variable relevant to the task at hand.

Three-factor rules can be derived from gradient descent on the spiking neural network \cite{Pfister_etal06_optispik,Neftci_etal19_surrgrad}.
The significance of this compatibility is far-reaching because the techniques and tools of deep learning can be made compatible with training spiking neural networks.
Such rules are often ``local'' in the sense that all the information necessary for computing the gradient is available at the post-synaptic neuron \cite{Neftci18_datapowe}.
For this reason, three-factor rules are a candidate for implementation in neuromorphic hardware.

In our contribution, we start with a three-factor synaptic plasticity rule derived from surrogate gradient descent for classification or regression tasks \cite{Zenke_Ganguli17_supesupe}.
For the output layer:
\begin{equation}\label{eq:learning_rule}
\begin{split}
\Delta w_{ij} &\propto Error_i~\sigma^\prime(v_i-v_{th}) P_j,\\
\end{split}
\end{equation}
where the $Error_i$ is the instantaneous error
$(\text{target}_i - \text{output}_i)$,
$P_j$ is the pre-synaptic trace at the membrane potential, and $\sigma^\prime(v_i[n]-v_{th})$ is the derivative of the smoothed output function with $v_{th}$ the firing threshold.
For the output layer of a classification or regression neural network, this learning rule is equivalent to the Delta rule in artificial neural networks.
It is derived from the gradient of a \ac{MSE} loss with respect to the neuron parameters, ignoring the refractory variable $R$ and replacing derivatives of $\Theta$ with those of the sigmoid function \cite{Neftci_etal19_surrgrad}.
This rule is the building block of the backpropagation algorithm in multilayer networks, in which case $Error_i$ becomes the backpropagated errors (i.e. the ``deltas'').
Because this rule is derived from gradient descent on the spiking dynamics (i.e. there is no rate-based approximation), it naturally leverages spike timing dynamics.
As a result, this rule and its variations have been shown to perform particularly well on spike-based classification tasks and outperform traditional synaptic plasticity rules such as \ac{STDP} and reward/error modulated \ac{STDP} \cite{Zenke_Ganguli17_supesupe,Kaiser_etal18_synaplas} in equivalent networks.

\subsection{Implementation of Surrogate Gradient Learning in the Loihi Research Processor}\label{sec:loihi3frule}

\begin{figure*}[!t]
\centering
\includegraphics[width=\textwidth]{Data/multi-compartment_new.png}
\caption{
Setup and multi-compartment neuron used in our work. The distal compartment receives spikes from the spiking ConvNet with synaptic weights adjusted by the surrogate gradient rule.
The distal compartment pushes its current to the proximal compartment for integration.
During training, label spikes with weights of opposite signs are received by the distal compartment and proximal compartment.
Error is calculated in the distal compartment as a subtraction of the label input and input from the previous layer.}
\label{fig_sim}
\end{figure*}

Here, we map the Loihi learning dynamics to Eq. (\ref{eq:learning_rule}).
By definition, the factor $\sigma'$ is constrained to the range $[0,1]$.
It is non-zero when the membrane potential is close to $0$.
Removing this term will cause synaptic weights to endlessly grow, but does not prevent learning in the early stages of training.
This mode of operation is compatible with the few-shot learning scenario experimented here.
The two other terms $f_{pre}$ and $M_i$, however, are critical for learning.
Thus, we drop the $\sigma'$ term in (\ref{eq:learning_rule}) and obtain provisionally:
\begin{equation}\label{eq:superspike}
\Delta w_{ij} \propto P_j P^{err}_i.
\end{equation}
where $P^{err}_i$ is an error trace as described below.
To represent the error, we use dynamics:
\begin{equation}
    \begin{split}
        S_i^{err} &= \Theta(v_i^{err} - v_{th}),\\
        v^{err}_i &= \sum_j w_{ij} P_j - w_{tgt} \hat{P}_i + R^{err}_i + b^{err},
    \end{split}
\end{equation}
where $P$, $\hat{P}$ and $R^{err}_i$ follow the same dynamics as in (\ref{eq:loihi_dynamics}).
$\hat{P}$ is the input due to the target spikes, and $w_{tgt}>0$ is its weight.
The constant $b^{err}$ is a bias term used to offset the firing rate of the neuron, as explained in the following paragraphs.

The synaptic plasticity processor operates on neural traces computed with pre-synaptic and post-synaptic spike times.
In Loihi, traces are first-order linear filters.
However, as discussed earlier $P$ is a second-order linear filter.
Second-order kernels can be implemented as a subtraction of two first-order kernels \cite{Gerstner_etal14_neurdyna}.
This subtraction is enabled by the sum-of-products formulation of the plasticity rule (\ref{eq:loihi_rule}).
The error can be implemented with the post-synaptic compartment using the following post-traces:
\[
\begin{split}
    P^{err}_i[n+1] &= \alpha_v P^{err}_i[n] + Q^{err}_i[n],\\
    Q_i^{err}[n+1] &= \alpha_u Q_i^{err}[n] + S^{err}_i[n].
\end{split}
\]
Post-traces can only be positive but errors can be both positive and negative.
This problem can be solved by offsetting the weight updates with a constant term $b$:
\begin{equation}\label{eq:superspike}
\Delta w_{ij} \propto P_j (P^{err}_i - b).
\end{equation}
To enforce the constraint of zero error when output matches target, a constant firing rate is imposed on the error neurons via $b^{err}$.
In the absence of inputs, this constant firing will create a repeating $P^{err}_i$ trace with average $\langle P^{err}_i \rangle$.
The bias $b$ is then adjusted such that it is equal to the average of this trace:
$
\langle P^{err}_i \rangle = b.
$

Two potential problems remain with this workaround:
a) bounds on the error magnitude,
b) Fluctuations in the weight updates even when the error is zero, since only the average update is zero with the baseline firing rate.
Previously work suggest that a) does not prevent convergence in spiking neural network classification tasks \cite{Neftci_etal17_evenranda}.
While (b) is currently unsolved, we observe that it does not prevent few-shot learning.
The learning rule is implemented in Loihi as follows:
\begin{equation}
    \Delta w_{ij} \propto C(Y_1(X_2 - X_1) + X_1 - X_2)
\end{equation}
where $C$ is a constant that captures the learning rate, $X_1$ and $X_2$ are two first-order pre-synaptic traces, $Y_1$ is a first-order post-synaptic trace.
The $(X_2 - X_1)$ term corresponds to $P_j$ in (\ref{eq:superspike}), and $Y_1$ corresponds to $P^{err}_i$ in (\ref{eq:superspike}).
Note that to simplify the rule, we approximated $P^{err}$ using a single first-order filter.

\subsection{Multi-compartment Neuron and Readout}
In order to read out the class and to build multilayer learning in future work, we use a multi-compartment neuron.
The neurons consist of two compartments, made of a distal (error) compartment that receives input from a pre-trained network, and a proximal (output) compartment whose voltage integrates the state $u^{err}$ copied from the distal compartment, and does not directly receive spiking input from the convnet:
\begin{equation}
    \begin{split}
        S_i^{out} &= \Theta(v_i^{out}-v_{th})\\
        P^{out}_i &= \alpha_v P^{out}_i + u^{err}\\
        v^{out}_i &=  P^{out}_i + R^{out}_i + w_{tgt} \hat{P}_i.
    \end{split}
\end{equation}
During training, target spike signals are sent to both the distal compartment and the proximal compartment.
The distal compartment receives positively weighted target spikes to adjust the weight of attached synaptic connections towards a desired class, while the proximal compartment receives equally negative weighted target spikes to cancel out the effect of the label spikes have on the current integrated from the attached distal compartment.
Targets are not provided during the test phase.
Error encoding and propagation to the proximal compartment takes place in the distal compartment without the need for separate phases.
Classification accuracy is measured using the spike count in the proximal compartments of the output layer neurons.

\section{Experimental Evaluation}
\subsection{Setup}

The IBM DvsGesture\cite{Amir_etal17_lowpowe} dataset consists of recordings of 29 different individuals performing 10 different actions such as clapping and an unspecified gesture for a total of 11 classes. The actions are recorded  using a DVS camera, an event-based neuromorphic sensor, under three different lighting conditions. The problem is to classify an action sequence video. Samples from the first 23 subjects were used for training and the last 6 subjects were used for testing. The test set contains 264 samples and will be used for the few-shot learning task. Each sample consists of the first 1.45 seconds of the gesture performed. The SNN model trained on the Loihi for DvsGesture classification is described in table \ref{table:arch}.

\begin{table}[!ht]
\caption{Network architecture}
\label{table:arch}
\centering
\begin{tabular}{|c|c|c||c|} \hline
Layer & Kernel & Output    & Training Method\\ \hline
input & 1a     & 128x128x2 & DVS128 (Sensor)\\\cline{4-4}
1     & 4a     & 32x32x2   & SLAYER (BPTT)\\
2     & 16c5z   & 32x32x16  &\\
3     & 2a     & 16x16x16  &\\
4     & 32c3z   & 16x16x32  &\\
5     & 2a     & 8x8x32    &\\
6     & -      & 512       &\\ \cline{4-4}
out   & -      & 11        & Loihi Plasticity Rule\\ \hline
\end{tabular}
\end{table}

The hidden layers 1 through 6 were trained offline using SLAYER \cite{Shrestha_Orchard18_slayspik} on the Loihi neuron model.
The output layer synapse weights are trained using the three-factor surrogate gradient plasticity rule described in Sec. \ref{sec:loihi3frule}.

We compare our model to the one used in \cite{Shrestha_Orchard18_slayspik}.
To assess \cite{Shrestha_Orchard18_slayspik}, the output layer weights are reset and retrained in few-shot learning conditions.
Due to the limited bit precision of the synaptic weights in Loihi (256 levels), the effective learning rate is typically higher than that used in GPUs.
To emulate this, we trained the output layer of the SLAYER model using a higher learning rate than the original for a better comparison.
In our few-shot learning experiments, using a higher learning rate achieves a higher accuracy because the training data is small and presented only once.
We also compare our results to a model trained using SLAYER with hidden layers pre-trained SLAYER network but with the output layer replaced with a fully connected linear layer trained using the \ac{MSE} of the membrane potentials of the neurons instead of classification with spike counts.
\par Because the hidden layers of each model are pre-trained on the DvsGesture training data,
we train and test the models on the DvsGesture test dataset.
Using the test dataset we set up three N-way classification tasks with 1, 5, and 14 shots.
N-way classification involves selecting N unseen classes, provide the model with K different instances, also known as shots, of each of the N classes, and evaluate the model's ability to classify new instances within the N classes.
The test data is split into separate training and testing sets.
The training set consists of N$\cdot$K samples taken from the first 154 samples of the DvsGesture Test dataset.
During training, we present the data of the K shots for a single learning epoch.
The N-way classification models are then tested on the last 110 samples of the DvsGesture Test dataset not used during training.
\par Additionally, we set up three M+N-way classification tasks with 1, 5, and 20 shots.
For M+N-way classification, we pre-trained the SLAYER network offline using only M classes of the DvsGesture Training dataset.
We then reset the output layer weights and retrain them using the surrogate gradient plasticity rule on Loihi on N unseen classes, provide the model with K shots of each of the N classes, and evaluate the model's ability to classify new instances within the N classes.
The M+N-way classification models are trained using the DvsGesture Training dataset, and tested using the DvsGesture Test dataset.

\subsection{Results}
We present the $N$-way classification results in Table \ref{table:dvs_table}, and the $M+N$-way classification results in Table \ref{table:dvs_table5-way}.
Each model is trained with K shots presented a single time, and then tested on samples of each class held out from training.
We use $N=11$ for the number of classes for the $N$-way classification experiments, which is the number of classes in DvsGesture.
For the $M+N$-way classification experiment, we use $M=6$ for the number of classes pre-trained offline using SLAYER, and $N=5$ for the number of classes trained on the network implemented on Loihi using the surrogate gradient plasticity rule.
``Train'' refers to classification accuracy on training samples using saved weights with plasticity disabled.
``Test'' is the classification accuracy on the samples held out of the training procedure.
For each type of model, the same training and testing data samples were used.
The SLAYER+Linear section of Table \ref{table:dvs_table} shows the results of the model consisting of a pre-trained SLAYER hidden layer connected to an ANN Linear output layer that uses \ac{MSE} loss, measuring the error of target versus output membrane potential quantities rather than a classification accuracy using the number of spikes over the presentation time.

The surrogate gradient plasticity rule implemented on Loihi outperforms the purely SLAYER model on few-shot learning tasks in both the 11-way classification experiments, and the 6+5-way classification experiments.
In the 11-way few-shot classification experiments, the plasticity rule achieved $32.1\%$ better accuracy at test time than the SLAYER rule of the SLAYER+Spiking model for one-shot learning, with the plasticity rule achieving better accuracy on the 5 and 14 shot learning tasks as well.
Interestingly, the SLAYER+Linear model achieved $21.7\%$ better test accuracy than the SLAYER+Spiking model on one-shot learning, but performed poorer on the 5 and 14 shot learning tasks than the SLAYER+Spiking model.
These results indicate that the plasticity rule augmented with the pre-trained features does not need large amounts of training data to generalize.
The performance of the plasticity rule in the $6+5$-way experiments was not as high as the 11-way experiments because the 5 unseen classes were unseen by the entire network and not just unseen by the output layer, but did outperform the $6+5$-way SLAYER models.
The plasticity rule achieved $24.5\%$ better accuracy at test time than the SLAYER rule of the SLAYER+Spiking model and $23.2\%$ better accuracy than the SLAYER+Linear model for 20 shot learning, with the plasticity rule achieving better accuracy on the 1 and 5 shot learning tasks as well.
These results indicate that the plasticity rule augmented with features pre-trained on some classes but not all can generalize to completely new classes of data.

\begin{table}[!t]
\centering
\caption{\label{table:dvs_table}11-way Few-shot classification on the DvsGesture dataset}
\begin{tabular}{|c|c|c|c|c|}
\hline
Dataset                         & Learning Method                                   & Shots       & Train           & Test            \\ \hline
\multirow{9}{*}{DVSGesture    } & \multirow{3}{*}{Loihi Plasticity Rule}            & \textbf{1}  & \textbf{100\%}  & \textbf{52.2\%} \\ \cline{3-5}
                                &                                                   & \textbf{5}  & \textbf{86.6\%} & \textbf{56.8\%} \\ \cline{3-5}
                                &                                                   & \textbf{14} & \textbf{72.2\%} & \textbf{64.7\%} \\ \cline{2-5}
                                & \multirow{3}{*}{SLAYER+Spiking}                   & 1           & 9.1\%           & 20.1\%          \\ \cline{3-5}
                                &                                                   & 5           & 40\%            & 50.1\%          \\ \cline{3-5}
                                &                                                   & 14          & 56.5\%          & 61.8\%          \\ \cline{2-5}
                                & \multirow{3}{*}{SLAYER+Linear }                   & 1           & $<$1\%             & 41.8\%          \\ \cline{3-5}
                                &                                                   & 5           & 38.2\%          & 42.7\%          \\ \cline{3-5}
                                &                                                   & 14          & 53.9\%          & 51.8\%          \\ \hline
\end{tabular}
\end{table}

\begin{table}[!t]
\centering
\caption{\label{table:dvs_table5-way}6+5-way few-shot classification on the DvsGesture dataset
}
\begin{tabular}{|c|c|c|c|c|}
\hline
Dataset                         & Learning Method                                   & Shots       & Train           & Test            \\ \hline
\multirow{9}{*}{DVSGesture    } & \multirow{3}{*}{Loihi Plasticity Rule}            & \textbf{1}  & \textbf{40\%}   & \textbf{40\%}   \\ \cline{3-5}
                                &                                                   & \textbf{5}  & \textbf{60\%}   & \textbf{43.3\%} \\ \cline{3-5}
                                &                                                   & \textbf{20} & \textbf{73.5\%} & \textbf{56.2\%} \\ \cline{2-5}
                                & \multirow{3}{*}{SLAYER+Spiking}                   & 1           & 40\%            & 35\%            \\ \cline{3-5}
                                &                                                   & 5           & 20\%            & 41.7\%          \\ \cline{3-5}
                                &                                                   & 20          & 37\%            & 31.7\%          \\ \cline{2-5}
                                & \multirow{3}{*}{SLAYER+Linear }                   & 1           & 40\%            & 33\%            \\ \cline{3-5}
                                &                                                   & 5           & 36\%            & 27.5\%          \\ \cline{3-5}
                                &                                                   & 20          & 35\%            & 33\%            \\ \hline
\end{tabular}
\end{table}

\section{Conclusion}
 The results achieved in the few-shot learning experiment demonstrate the building blocks for online multi-layer learning and transfer learning in neuromorphic hardware.
Neuromorphic hardware that can achieve high accuracy on only a few observations is a long-sought feature in applications where large datasets are nonexistent, cannot be accessed or where energy is limited, such as in robotic and embedded IoT systems.
However, there are still challenges for achieving highly accurate continual ``life-long'' learning in neuromorphic hardware such as catastrophic forgetting \cite{McClelland_etal95_whyther}.
Future work will address these challenges by exploring synaptic consolidation dynamics \cite{Kirkpatrick_etal17_overcata,Benna_Fusi15_compprin} and reducing the variance of the learning when no error is made (problem (b) in the text).
The solution described here trains the final layer only and thus foregoes the deep credit assignment problem.
Our ongoing and future work is addressing the deep credit assignment using the technique of local losses \cite{Kaiser_etal18_synaplas}, thus allowing to train multiple layers simultaneously.
As the plasticity rule is improved, the applicability is likely to extend beyond classification, namely unsupervised learning and reinforcement learning tasks.

\section{Acknowledgments}
This work was supported by Intel Corporation (KMS); the National Science Foundation under grant 1652159 (EON); the National Science Foundation under grant 1640081 (EON), and the Nanoelectronics Research Corporation (NERC), a wholly-owned subsidiary of the Semiconductor Research Corporation (SRC), through Extremely Energy Efficient Collective Electronics (EXCEL), an SRC-NRI Nanoelectronics Research Initiative under Research Task ID 2698.003 (EON, KMS).

\bibliographystyle{IEEEtran}

redpajama_set_name: RedPajamaArXiv


text:
CORONAVIRUS UPDATE: What We Are Doing to Protect Our Clients
Sacramento Injury Attorneys Blog
Published by Edward A Smith Law Offices
Vehicular Accidents
Mesothelioma and Asbestos
Drug Products Liability
Contact Us Now 916.921.6400
East Bay Auto Accident Reports
September 2, 2016 | Edward Smith
Car Accident Reports in East Bay
There were two scary auto accidents that happened in Antioch on Wednesday, August 31, 2016.
First East Bay Auto Accident Report
The first auto accident occurred where a man drove his vehicle into a power pole in Antioch. The accident took place at approximately 2:29 am nearby the downtown area at the intersection of Second Street and L Street. The power pole sustained damage from the impact of the vehicle which caused more than 400 customers to lose power in the area. According to the website for PG&E, the power outage was still affecting 418 customers at 12:00 pm, roughly 10 hours after the crash. The crash also affected power to the bus and shuttle system for the city causing the westbound 387 bus stop at West Third Street to be out of service at 12:00 pm. The driver was identified as 23-year-old Carlos Hernandez from Antioch by officers from the Antioch Police Department. Hernandez was found fleeing the scene by officers that were nearby when the accident first took place. Authorities arrested Hernandez for the suspicion of driving under the influence and also charging him with a hit-and-run violation.
Second East Bay Auto Accident Report
A pedestrian was struck by a minivan at the corner of Cavallo Road and East 18th Street in Antioch. The Contra Costa Fire Protection District dispatcher stated that the accident occurred at approximately 10:20 am. It was reported that the minivan struck the pedestrian and caused collision damage the Romi's Liquor & Food's store wall. The minivan appeared to have splatters of blood on the front bumper and a possible handprint on the hood of the vehicle. According to authorities, the impact of the minivan to the pedestrian caused the man to be sent to the hospital. The details pertaining to the condition of the man that was hit by the vehicle have not been released yet by the Antioch Police Department.
Pittsburg Auto Accident Attorney
I'm Ed Smith, a Pittsburg Auto Accident Attorney. If you or a member of your family have contracted serious injuries due to an automobile accident, please call me today at (916) 921-6400 for free and friendly advice. If you are calling from outside the areas of Pittsburg or Sacramento, I can be contacted free of toll at (800) 404-5400 for free, friendly advice.
I have been helping residents of the Pittsburg region with their wrongful death and personal injury cases since 1982.
Meet my friendly staff.
My law office strives to provide our clients with outstanding customer service. Learn more about us here.
Our client's opinions about their experiences with us can be read on Yelp, Avvo (the attorney rating site), and Google.
Browse through my Past Verdicts and Settlements webpage.
I am also the founder of Northern California's extensive and informative personal injury website, AutoAccident.com
Information Source for East Bay Auto Accident Reports: http://www.eastbaytimes.com/
Photo Source: Wiki Media Commons –
header3.jpg
:ds
Edward Smith
Tagged: Pittsburg Auto Accident Attorney and Pittsburg Auto Accident Lawyer
Updated: July 30, 2020 1:54 pm
Top Auto Accident Articles
Solo Vehicle Crash Fatality Discovered at Sacramento on-Ramp
A solo vehicle crash that killed a 19-year-old driver was discovered on Jan 18 in Sacramento, however, it is believed it occurred earlier.
Traffic Fatality Reported in Rio Vista Six-Vehicle Accident
A traffic fatality was reported in Rio Vista along Highway 12 close to Highway 160 on January 15 as a result of a six-vehicle accident.
Pedestrian Fatality Occurs in Afternoon Collision In East Sacramento
A pedestrian fatality occurred in East Sacramento along Folsom Boulevard at 60th Street on January 13, which is being investigated by police
Solo Vehicle Accident in Sacramento Results in Two Fatalities
A solo vehicle accident in Sacramento along I-80 on January 12 killed both people inside after they were ejected.
Edward A Smith Law Offices
1900 Point W Way #200
Phone: 916.921.6400Fax: 916.921.5276
Copyright © 2022, Edward A Smith Law Offices

redpajama_set_name: RedPajamaCommonCrawl


This is a Hide IP software which will change your real Internet address while browsing the World Wide Web. The software will deliver you fresh anonymous proxy servers every time you activate the program. The main benefit of this software is that you can't be traced while browsing Web sites. If a Web site is restricted for users from specified country the program can bypass that protection. By hiding your IP, you will be invisible for marketers, thus, you will prevent any spam mails. You can use web based e-mail to send anonymous e-mail. Post on bulletin boards without displaying your real IP address. Version 2.2.1.1 may include unspecified updates, enhancements, or bug fixes.
This is a Hide IP software which will change your real Internet address while browsing the World Wide Web.
The main benefit of this software is that you can't be traced while browsing Web sites.
You can use web based e-mail to send anonymous e-mail.


p53 protein expression is knocked down by RNAi expression. The expression of p53 was examined by Western blot analysis of extracts from MCF-7, ZR-75-1, HME-CC, and ME16C cell line parents and the same cell lines stably transduced with p53-targeted RNAi vector or p53 mismatch (MM) RNAi vector. Treatment with doxorubicin (24 h, 1μM) induced p53 expression in all cell lines and transductants, but induced levels were markedly lower in the p53-RNAi cells.


Insolvency is defined in the Insolvency Act 1986, but broadly it means when a company does not have sufficient assets to discharge its liabilities as they fall due.
If this occurs, there are options open to the company owners and other stakeholders, one of which is administration. Administration is an insolvency process where an insolvent company is placed under the control of an insolvency practitioner (IP) to enable the IP to achieve objectives laid down in legislation.
By court order – an application for a court order can be made by creditors i.e. those owed money by the company, the company itself, its directors, a liquidator, a supervisor of a CVA or pursuant to legislation.
By an out of court process by lodging certain documents with the court – this process is only available to the company or its directors or a party with a qualifying floating charge (usually a bank or commercial lender).
Why would a company or its directors put it into administration?
From the date that an application is made to court or a notice of intention to appoint administrators is filed, a moratorium in respect of claims will apply to protect the company against actions from creditors. In general terms this means that creditors will not be able to issue proceedings, HMRC will not be able to distrain or issue a winding up petition against the company and the landlord will not be able to forfeit its lease. If the company is concerned that creditors may issue proceedings then administration can provide some short term protection, allowing the company to restructure.
Often companies that enter administration end up being sold or at least their businesses and assets do. Sometimes a sale is agreed prior to the company going into administration and it may be a term of completing the sale that the company is put into administration first. Such sales are known as pre-packs. Pre-packs can be a relatively quick and smooth way to continue the business with as little disruption as possible.
What are the objectives of the administration?
The first objective of an administrator is to rescue the company so it can carry on as a going concern.
If this isn't possible then the aim is to achieve a better result for the company's creditors than would be likely if the company was put into liquidation. If such a better result cannot be achieved, then the objective is to realise the property of the company and distribute the proceeds to the company's secured and preferential creditors in the first instance.
If your company is experiencing financial difficulties and you are considering administration please get in touch. We can provide initial advice about your restructuring options and introduce you to an IP.
Simon qualified as a Solicitor in 1980 and joined Bermans in October 2018 as a partner and head of our Sport & Entertainment team.
Simon has over 30 years' experience and specialises in representing clients in the motorsport and music festival industries providing a full range of legal services.
He has an international reputation within motorsport acting for national governing bodies & their insurers, circuits, clubs, teams, drivers and motorcycle riders. Since joining Bermans, Simon has negotiated contracts for the 2019 season for F1 drivers and team personnel. He also has unrivalled experience of representing clients at hearings before the FIA International Court of Appeal and National Motorsport Courts worldwide.
Simon is also a nationally recognised expert in the entertainment industry and pre-eminent figure in the licensing and organisation of outdoor festivals, events and concert tours. He acts for and is retained by the majority of the country's largest promoters and organisers.
Our conveyancers are experts in guiding you through the legal process and you can be safe in the knowledge that they are supported by our larger commercial property team.
Whether you are buying or selling or refinancing we can provide you with cost certainty and confidence that you are in safe hands.
We provide a list of our headline rates below but we like to provide a specific quote to suit your needs so do get in touch and we will provide a fixed fee quotation.
Our pricing for bringing and defending claims for unfair or wrongful dismissal (excluding disbursements and Counsel's fees).
High complexity case: £20,000 to £75,000 (excluding VAT).
Disbursements are costs related to your matter that are payable to third parties, such as medical experts. We handle the payment of the disbursements on your behalf to ensure a smoother process.
We would generally instruct a barrister to represent you at the Employment Tribunal hearing. Barristers' fees are broken down into two areas: i.) a Brief fee, which covers their preparation for the hearing and the first day of the hearing and ii.) a Refresher, which covers each additional day after the first day of the hearing. Brief fees are estimated to be between £850 to £5000 plus VAT (depending on the level of experience of the Barrister, the complexity of the case and the length of the hearing). Refreshers are estimated to be between £700 to £1250 plus VAT (depending on the level of experience of the Barrister).
The time that it takes from taking your initial instructions to the final resolution of your matter depends largely on the stage at which your case is resolved. If a settlement is reached during pre-claim conciliation, your case is likely to take four to six weeks. If your claim proceeds to a Final Hearing, your case is likely to take between six and twelve months. This is just an estimate and we will of course be able to give you a more accurate timescale once we have more information and as the matter progresses.
Contact us to speak to a member of the employment team.
Hannah joined Bermans in November 2018 and is currently working in Bermans Employment team as a solicitor.
Before joining Bermans, Hannah was a trainee solicitor in high street practice dealing with all aspects of Civil Litigation and Respondent Employment work.
Hannah studied Law at University of Chester, graduating in 2012. She then went on to study at the University of Law in Manchester where she completed the LPC in July 2014.
She then worked as a paralegal for a number of years before obtaining her training contract and qualifying in August 2018.
Hannah is an avid Everton fan, she enjoys watching and playing live music and getting out and about enjoying time with her young family.
These costs apply where for a basic template based claim for an unpaid invoice which is not disputed and enforcement action is not needed. If the other party disputes your claim at any point, we will discuss any further work required and provide you with revised advice about costs if necessary, which could be on a fixed fee (e.g. if a one off letter is required), or an hourly rate if more extensive work is needed.


text:
Q: DatabaseError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings I am trying to setup a database for a django application.
So when i attempt to create database everything works fine except one thing. At the end, this message comes up:

You just installed Django's auth system, which means you don't have any superusers defined.
          Would you like to create one now? (yes/no):

If i type "yes" and hit the enter key then it gives me this error:
D:\xampp\htdocs\Django>cd myapps

D:\xampp\htdocs\Django\myapps>python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log

You just installed Django's auth system, which means you don't have any superuse
rs defined.
Would you like to create one now? (yes/no): yes
Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
438, in execute_manager
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 191,
 in run_from_argv
    self.execute(*args, **options.__dict__)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 220,
 in execute
    output = self.handle(*args, **options)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 351,
 in handle
    return self.handle_noargs(**options)
  File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py"
, line 109, in handle_noargs
    emit_post_sync_signal(created_models, verbosity, interactive, db)
  File "C:\Python27\lib\site-packages\django\core\management\sql.py", line 190,
in emit_post_sync_signal
    interactive=interactive, db=db)
  File "C:\Python27\lib\site-packages\django\dispatch\dispatcher.py", line 172,
in send
    response = receiver(signal=self, sender=sender, **named)
  File "C:\Python27\lib\site-packages\django\contrib\auth\management\__init__.py
", line 70, in create_superuser
    call_command("createsuperuser", interactive=True)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
166, in call_command
    return klass.execute(*args, **defaults)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 220,
 in execute
    output = self.handle(*args, **options)
  File "C:\Python27\lib\site-packages\django\contrib\auth\management\commands\cr
eatesuperuser.py", line 72, in handle
    User.objects.get(username=default_username)
  File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 132, in
 get
    return self.get_query_set().get(*args, **kwargs)
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 344, in g
et
    num = len(clone)
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 82, in __
len__
    self._result_cache = list(self.iterator())
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 273, in i
terator
    for row in compiler.results_iter():
  File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 68
0, in results_iter
    for rows in self.execute_sql(MULTI):
  File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 73
5, in execute_sql
    cursor.execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\backends\util.py", line 34, in e
xecute
    return self.cursor.execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py", line
234, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.DatabaseError: You must not use 8-bit bytestrings unless you use
 a text_factory that can interpret 8-bit bytestrings (like text_factory = str).
It is highly recommended that you instead just switch your application to Unicod
e strings.

D:\xampp\htdocs\Django\myapps>

I believe it is supposed to prompt me to enter a username and password if i choose "yes" but it doesn't prompt me anyhting and give me this error.
Any suggestion?

A: It looks like this is due to a bug in Django related to system usernames that contain non-8-bit characters.
As a workaround, you can say "no" when asked to create a superuser and use the createsuperuser command to create a new superuser with a different name:
$ python manage.py syncdb
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): no
Installing index for auth.Permission model
Installing index for auth.Group_permissions model
Installing index for auth.User_user_permissions model
Installing index for auth.User_groups model
Installing index for auth.Message model
No fixtures found.
$ python manage.py createsuperuser --username yourname
E-mail address: email@example.com
Password:
Password (again):
Superuser created successfully.

redpajama_set_name: RedPajamaStackExchange


text:
Eventide H9 Control App Update Now Supports PitchFactor, ModFactor and Space
By Guitar World Staff
Today, Eventide announced the release of a new version its H9 Control app for Windows, Mac and iOS (via the Camera Kit USB adaptor). The app now supports all Eventide stompboxes except TimeFactor (which is forthcoming), pending the release of its updated Looper in July.
"The H9 Control App is expanding to include all Eventide stompboxes creating a robust environment to update, edit, organize, store presets and system settings for all your Eventide stompboxes from one powerful application." said Ray Maxwell, vice president/sales and marketing at Eventide. "We are making every effort to make using our stompboxes so easy that all you have to think about is making music."
The new H9 Control v1.5.2 can be downloaded HERE
Check out the videos below. One is on how to update an Eventide stompbox using H9 Control; the other is a tutorial demonstrating the use of H9 Control with PitchFactor, ModFactor and Space:
Guitar World Staff
Since 1980, Guitar World has been the ultimate resource for guitarists. Whether you want to learn the techniques employed by your guitar heroes, read about their latest projects or simply need to know which guitar is the right one to buy, Guitar World is the place to look.


text:
1623 results arranged by date
In Swaziland, two held on contempt of court charges
Cape Town, March 19, 2014--Authorities in Swaziland should immediately release Bheki Makhubu, editor of the independent newsmagazine The Nation, and Thulani Maseko, a human rights lawyer, who were imprisoned earlier this week in connection with articles published in The Nation,...
Amid clampdown, another blogger sentenced in Vietnam
Bangkok, March 19, 2014--In a mounting clampdown on Internet freedom in Vietnam, blogger Pham Viet Dao was sentenced to prison today for online posts critical of the Communist Party-led government, according to news reports. The Committee to Protect Journalists condemns...
Egypt hands jail term to journalist, holds others in custody
New York, March 17, 2014--The Committee to Protect Journalists condemns the one-year prison sentence given today to Samah Ibrahim, a reporter for the Muslim Brotherhood's Freedom and Justice newspaper. Ibrahim is one of at least 10 journalists imprisoned in the...
Passage of Burma media bill would reverse free press gains
Dear President Thein Sein: We are writing to express our concern about shrinking press freedom in Burma and urge you to veto media legislation that was passed this month by your country's parliament. The bill, which awaits your signature, maintains a censorship role for state authorities and threatens to reverse several of the gains achieved to date under your democratic reform program.
CPJ condemns journalist's conviction in Azerbaijan
New York, March 17, 2014--The Committee to Protect Journalists condemns a five-year jail term given today to Tofiq Yaqublu, an Azerbaijani journalist with the opposition daily Yeni Musavat, and calls on authorities to overturn the verdict on appeal. Yaqublu, who...
FCCC survey finds China abuses press card, visa process
The Foreign Correspondents' Club of China (Beijing) published the findings of its annual visa survey last week. The findings are grim but come as no surprise following the Chinese government's showdown late last year with members of the foreign press. ...
Burma clampdown gathers pace as legislation passed
In a clear step backwards for press freedom in Burma, new legislation will give the government censorship powers and the sole authority to issue and revoke news publication licenses. While the legislation enshrines into law broad press freedom guarantees, specific...
South Sudan government warning: Don't interview rebels
Last week, South Sudanese Information Minister Michael Makuei warned reporters in the capital, Juba, not to interview the opposition or face possible arrest or expulsion from the country. According to the minister, a lawyer by profession, broadcast interviews with...
CPJ condemns blocking of news websites in Russia
New York, March 13, 2014--The Committee to Protect Journalists is alarmed by the blocking today of independent and pro-opposition news websites in Russia, including Ezhednevny Zhurnal, Grani, Kasparov, and the website of the liberal radio station Ekho Moskvy. The popular...
Rouhani has yet to deliver on press reforms in Iran
CPJ joined 26 other human rights and civil society groups on Wednesday in an open letter calling on the member states of the U.N. Human Rights Council to renew the mandate of Ahmed Shaheed, the special rapporteur on the situation...


The new Watauga County Veterans Memorial. The memorial was errected this Summer to commemorate those native to Watauga County who have laid down their lives in the name of "duty," "honor" and "country," as the memorial reads.
The High Country chapter of the Military Officers Association of America (HCCMOAA), which includes Avery, Mitchell and Watauga counties, helped create the "Time and Honor" veterans memorial that was unveiled on King Street on Independence Day.
The HCCMOAA is a non-profit organization for more than 390,000 former and retired military officers, who are dedicated to the defense and preservation of the earned benefits, as well as the recognition of service members and their families, according to a press release from the Military Officers Association of America.
Plaques from the new Watauga County Veteran's memorial on King Street. One plaque serves as a placeholder who those who might lay down their lives in future wars or conflict.
Schmitt said that the creation of the memorial was possible through a great partnership with the County Commissioners and the Town of Boone.
Of the 19 artist proposals submitted, Suzie Hallier's, a Banner Elk native, ellipse design was chosen. "Duty. Honor. Country." is engraved next to five pillars for the five different military branches: Army, Marine Corps, Navy, Air Force and Coast Guard, according to the HCCMOAA website.
"We hope the memorial will visually communicate to current, past and future members of the Armed Forces the high level of respect in which they are held by the community. ASU has done a great job reaching out to veterans and supporting them while enrolled at the university," Schmitt said.
Many veterans involved in the App State community have praised the creation of this memorial since its unveiling.
"Just like us, it is not super flashy, but there is something different," Jimmy Arnett, former Marine Corps and a volunteer for Student Veteran Services, said.
The "Time and Honor" sculpture encompasses the veteran community, according to Arnett.
Featured photo caption: The new Watauga County Veterans Memorial. The memorial was erected this summer to commemorate those native to Watauga County who have laid down their lives in the name of "duty," "honor" and "country," as the memorial reads.


"Cheri Huber" is an American independent Soto Zen teacher.
If you enjoy these quotes, be sure to check out other famous philosophers! More Cheri Huber on Wikipedia.
All you must do is accept all that is unacceptable to you.
That love of the practice of ending suffering will probably be all of the awakening that you would ever desire.


text:
As More Veterans Start Businesses, States And Universities Lend A Hand
Bobbie O'Brien/American Homefront
Credit: Bobbie O'Brien/American Homefront
Above: Alex Hill, who was in the Army Airborne, is pictured in this undated photo.
Bobbie O'Brien reports that government agencies are promoting veteran entrepreneurship.
As he transitions out of the military this fall, Justin Duhe is going into business for himself. The 28-year-old Army linguist and cyber specialist bought a five acre coconut grove in Homestead, Fla. last year - sight unseen. He knew nothing about coconuts at the time.
"I farmed before in Texas, but it was all vegetable farming, nothing like this," Duhe said. "But I saw the potential of money, you know, that they were growing fruit and it was an investment."
But while his new career running Coco Rico Farms will be vastly different from what he did in the Army, Duhe said his military experience will still be an asset.
Noting that he learned Farsi in 47 weeks in the Army, Duhe said he's not afraid of challenges. And his time in the military has helped him build a business network. He wasn't in Florida long before crossing paths with a veteran in the food business who was looking for a fresh coconut supplier. The two Army men bonded instantly.
"That's part of the military mindset," Duhe said. "You see each other and you pick up your battle buddy and they pick you up and you both have a vision, a goal and you keep on moving forward."
Duhe and Alex Hill, owner of Florida Coconuts, became "business" battle buddies - not partners, but supplier and vendor.
Hill, who was in the Army Airborne, sells fresh coconut water to tourists along the beach. He said it's not the first time he's done business with other people who've been in the military.
"They have a similar work ethic as you and also uphold those similar values that you have. It's hard to find people that have the same values outside the military," Hill said.
Agencies Target "Vetrepreneurs"
About 2.5 million veterans own businesses. According to the Syracuse University Institute for Veterans and Military Families, veterans own 13 to 15 percent of small businesses, though they're only eight percent of the population.
Women veterans are driving the trend, according to Misty Stutsman, the director of entrepreneurship and small business at the institute.
"Women veteran entrepreneurship has grown over 300 percent since 2007, which is insane," Stutsman said. "If you look at these entrepreneurs, not only is the start-ups great, but they're out earning their civilian counterparts."
To offer veterans the option of self-employment, the Institute developed several entrepreneurship programs including some that are specifically for women veterans, active-duty, and military spouses.
"Communities are investing in these programs to make sure that the next generation of entrepreneurs is supported," Stutsman said.
Veteran-owned startups have attracted the attention of states, universities, and other agencies.
Veterans Florida - a non-profit corporation created by the state of Florida - offers free classes, mentors, and an annual "Battle of the Pitches" where "vetrepreneurs" compete for cash prizes.
Florida Coconuts, Hill's company, won second prize - $7500 - at the 2018 competition. The first prize was awarded to Axon Motor Company in Clearwater, Fla.
Hill's prize came at a good time. A drop in the coconut supply and a seasonal dip in tourism hurt his business, so he's pursuing a new entrepreneurial idea. He is working to design a better coconut opener.
This story is part of our American Homefront Project, a public media collaboration on in-depth military coverage with funding from the Corporation for Public Broadcasting and The Patriots Connection.
VA Issues Long Awaited Veteran ID Card, But It Comes With Ad On Back
After Leaving The Service, Veterans Find A New Mission Fighting Wildfires
Two Years After Congress Required It, The VA Now Is Offering Veterans An ID Card
Retired From the Military? States And Cities Are Fighting To Attract You


text:
Mahogany exterior
Restive spot on the upper floor
Plenty of greenery in the living room
Sunlit terrace by the master bedroom
Cosy corner
Crafts from around the world
Garden-level sitting room
Window placement has been meticulously calculated
apan-inspired wooden louvres at the front of the house
Airy interior
Once an outlier for the wrong reasons, this home takes pride of place on a leafy street thanks to a couple's tasteful renovation.
Architecture, Design, Residence
p.190 - 193
Junichi Toyofuku
Jan Sondergaard
"It was the ugly duckling of the street," says Jan Gleie of his family's 1970s Copenhagen home. "The house was dark in the middle and really not appealing from the outside." Located in the leafy neighbourhood of Frederiksberg, in an area dominated by classic 1920s Danish homes, the building remains an outlier. But today, thanks to a smart renovation and extension, its differences are now handsome defining features.
Designed and built in 1976 by Danish architect Johan Christensen, the house was originally a detached, one-storey, Japanese-inspired structure. After living in London, husband and wife Danes Gleie and Barbara Hvidt snapped it up in 2006 when the idea of a Copenhagen home with a garden five minutes from the city became, as Gleie says, "suddenly appealing". "We fell in love with the wooden sliding doors, the garden-level living and the simplicity of the structure," he adds of the couple's first encounter with the building. Even in its previous guise, unmistakably Japanese features such as well-crafted sliding timber doors and a unique sloped roof gave the building a pleasing character.
When passing an entrance of slatted timber Japanese koshi screens that leads into the spacious, high-ceilinged two-storey home, it's clear why the place appealed to a couple retreating from space-starved London. The renovation was made easier by keeping it a family affair: Barbara Hvidt's sister, Malene, is the architect behind the project. She worked closely with her clients on the revamp and every detail was meticulously planned. "I first built a two-level house in Lego, copying the downstairs from an original drawing," says Gleie. "On top of it I built an imaginary upstairs."
For this new level Gleie and the architect found inspiration in modern Japanese residential design and the sun-drenched homes of 1950s California. Skylights were added and walls painted white to maximise the incoming sunlight. Old timber support systems were reused and the brick construction was supported by iron beams strong enough to prop up the upstairs unit without taking up too much space.
Retaining the character of the original architecture was also a key factor in amplifying the homeliness of the extension. "We did not use any nails or screws to build the windows and sliding doors," says Gleie, who matched the width and style of the new doors and frames with the originals to ensure cohesion with the existing design. The fittings themselves were crafted by a skilful Danish carpenter using traditional tongue-and-groove joinery – but the Danish architectural touches stop there. For the timber trimmings that define the house, the residents worked with a rich honey-coloured mahogany, rather than the lighter timber favoured by the Scandis. "We love the warmth of the wood," says Gleie.
He credits the renovation's success to the fastidious approach of his sister-in-law's architecture in echoing the character of the original building, while opening the house to nature. He adds that it's the family ties that have enabled the place to feel like home so quickly. "What I absolutely love about the house is that we and Malene built it with our hearts in the right place," he says taking us through the beautiful heirlooms that decorate the home. "This is called 'X chair' and designed by my wife's grandfather [Peter Hvidt]," says Gleie affectionately, showing off the delicate leather-and-timber mid-century classic in the sitting room. At the centre of the home office lives an aged timber desk. The handsome piece was a gift from Barbara's father, also an architect. As we admire the lush garden, Gleie's son Siggi serves us oven-fresh croissants while Gleie pours water into a glass hand-blown by Malene's partner. "We almost don't have anything that doesn't have some kind of story behind it," says Gleie. "Memories live with our surroundings."
If you go down to the woods today, you're in for a big surprise: a cluster of modernist masterpieces that will transport you to Cape Cod's creative past.
From a French-influences Montréal studio to a green building in the heart of Taipei, we highlight some of the design industry's best new works.
Time and many thoughtless refurbishments have diminished French architect and designer Maxime Old's legacy. But, thankfully, two of his most glorious interiors have been preserved in Rouen.
Different class
Recognising the impact that a school's design can have on a child's education, Swiss architects are leading the field in creating more accommodating institutions. We visit three that make the grade.
Design / Education
We report from an idiosyncratic nation that has won us over with its quirky kerbside totems, drinks-filled vending machines, mascots and of course, shower toilets.
From fantastical anime to upbeat electronica and art shows that interrogate the relationship between man and machine, Japan has much to offer those looking to jump-start their imaginations.
Culture / Urbanism
Impressive mileage
The diminutive but hardy Suzuki Jimny, a nippy SUV, has maintained cult status for years. We find out what's driving the owners' obsession.
Design / Transport
On its game?
As preparations for the Tokyo Olympics enter the home straight, we assess whether the city has the infrastructure in place to deliver a world-class tournament.
She's just our type
The experimental book designer who isn't afraid to push boundaries – and crack some spines along the way.
Forget dull hotel rooms and fusty apartments: a group of architects-turned-entrepreneurs are cornering the market in well-designed rentals in South Korea – and beyond.
Business / Hospitality
Holding the stage
Though they are the product of a director's vision, even the most iconic film scenes are mediated by a set designer. Kris Moran is one of the industy's best and it's her eagle eye that helps her find the perfect props.
Culture / Film
It's a small world
Even in the digital age, texture and tactility still matter in architectural design. Little wonder then that smart firms put their faith in expert modellers to give clients a tiny taste of their big ideas.


text:
Help about any command

#### delete
Delete Vorteil kernels

#### download
Download Vorteil kernels

#### list
List Vorteil kernels

redpajama_set_name: RedPajamaGithub


A lot of people, when they are trying to give new life to their furniture, decide to do foam replacement rather than buying a whole new piece of furniture. This is a really good way to save some money and not to have to pay a lot of money for a whole new piece of furniture. it also allows the person to keep a piece of furniture that they love but that is losing its firmness. Below is the information on the common kinds of foam when it comes to replacing foam.
The first thing that you have to do when you are replacing foam in something is to figure out what kind of foam you want. Common kinds of foam are Polyfoam, or polyurethane, and the polyurethane-rubber mix that's known as Nimbus. Nimbus blends rubber and polyester and it's also used in some of the mattresses. It's thought to be a really great kind of foam and it's highly regarded in auto upholstery because it's soft and durable. The Polyfoam's more common in all of the applications because it's more affordable. For someone who is looking for a high quality project, a good choice is Nimbus.
There are many sites that you can go in order to find custom foam cushions and dry fast foam. When you are looking for a dryfast foam supplier, look at their reviews and see what others have said about it. Then you can base your decision on what they have said about the company.
People who spend their whole day sitting, whether it's behind a desk or steering wheel, or those who utilize a wheelchair for mobility, can all have problems with pressure caused by their seats. Pressure is a serious issue and not something to be dismissed, as it can cause circulation problems or even sores in serious instances. If you experience any pressure related issues during your day, they are a signal that your seat lacks necessary cushioning.
Pressure reducing cushions are often made of polyurethane foam, memory foam, or latex foam, sometimes with an extra polyester covering, and help distribute body pressure evenly while adding comfort to surfaces that don't offer enough. This is one reason why we're able to enjoy a movie or TV show on a sofa cushion for hours, while sitting on a wooden stool can be uncomfortable after only a few minutes. Weight gets distributed across the couch cushion's form, while it's targeted to particular areas on a stool. Certain designs of a wedge foam pillow can help improve body alignment as well. For people with back issues, a seating wedge can provide cushion while helping the user sit straighter, improving spinal alignment, and relieving back pain. Special, fast-drying foam patio cushions exist as well, allowing you to have the same comfort on the porch you get in the living room.
Pressure relief cushions have a place in an active, healthy lifestyle as well. Exercise mats for Pilates and yoga help provide a soft cushion between the individual and the hard floor that still allows them to hold poses and maintain their balance. No matter the situation you find yourself in, a pressure relieving pad can make your life more comfortable.
If you have a swimming pool in your back yard, one of the things that you should have also is a swimming pool fence. Below you will find some information about fences to put around swimming pools.
Types of pool fencing – There are a lot of designs for pool fencing which could provide the correct look for any kind of home. They can also provide some great security. The one that a lot of people like is made of aluminum because it works for any environment and it's good for saltwater pools. Another favorite kind of pool fencing is the glass fencing for pools. This is because people are able to see around them and it's also good for security. They are able to see if anyone is breaking into their pool to steal a swim.
A lot of fences also are designed to have a low amount of impact visually. These kinds of fences don't interfere at all with the look or view of landscaping. They offer a natural look and they're usually colored with colors such as dark green and black. They look nice up close but they are also discreet. Sometimes they are also clear, like in the case of glass fences.
For someone who is looking for a fence for their swimming pool, one place to go to. They have fences and they also have frameless glass balustrades that you can purchase there. From fences to frameless glass balustrades, the website has a lot to offer.
The testing of any performance product is necessary to ensure that it performs exactly the way it is advertised, and that it will offer performance that matches its claims. For some products, proving they work is incredibly easy. Something like a water bottle not leaking is assessed quickly and conclusively. Less-tactile items require more effort to quantify their performance. Sound treatment is one such product, as sound waves aren't something we can see or hold. For this reason, we need to rely on technical performance values rooted in science as a basis for reference when comparing products.
Acoustical testing, performed by qualified, independent laboratories, is necessary to validate the performance of a foam deadening material. When assessed in a laboratory testing setting, a foam test generates comparable factors like noise reduction and sound transmission that can be applied across a field of products. This provides a structured way of identifying what products address what frequencies and how well. A test sound of varying frequency is played in rooms with and without the treatment materials, and levels of sound are recorded before and after to create the performance values consumers rely on.
It's also important to perform testing periodically, as changes in the raw material that sound treatment is manufactured from may impact performance results. Fabrics used in covering panels also have an influence on a product's performance. As sound is non-tactile, products may make claims stating that they can perform in ways they are incapable of, solely because the average person has no way to prove they will or won't until after purchase and installation. Acoustical testing is the best way to identify performance values in sound deadening products, so you can make a decision that's right for you and your space.


text:
The number-three House Republican, Liz Cheney, said she will vote to impeach President Donald Trump over the Capitol riot, becoming…
The US Congress has voted to advance a resolution calling on Vice President Mike Pence to initiate a process under…
Champions of "anti-racism" in the media, academia and Hollywood have gone silent on Joe Biden's pick for the chief US…
The FBI is warning of plans for armed protests at all 50 state capitals and in Washington leading up to…
Pompeo trumpets Trump, razzes critics in speech to VOA
Secretary of State Mike Pompeo has taken to U.S. government-funded airwaves to deliver a full-throated defense of the Trump administration's…
Melania Trump makes first comments about attack on the Capitol
WASHINGTON — First lady Melania Trump made her first comments Monday about the violence at the Capitol when pro-Trump rioters…
Colin Powell Abandons GOP: 'I Can No Longer Call Myself a Republican'
Sunday on CNN's "Fareed Zakaria GPS," former Secretary of State Colin Powell said he no longer considers himself a Republican in…
Muriel Bowser, the Democrat mayor of Washington, DC, wants increased security to lock down the inauguration of U.S. President-elect Joe…
The European Commissioner for the internal market described the storming the U.S. Congress as the "9/11 moment of social media"…
Giant tech conglomerates and multinational corporations are lining up as donors to fund President-elect Joe Biden's inauguration this month.…


text:
using System.Globalization;
using System.Linq;
using System;
using System.Net.Sockets;
using System.Net;
using Renci.SshNet.Common;
using System.Threading;
using Renci.SshNet.Messages.Transport;
using System.Diagnostics;
using System.Collections.Generic;

namespace Renci.SshNet
{
    public partial class Session
    {
        private const byte Null = 0x00;
        private const byte CarriageReturn = 0x0d;
        private const byte LineFeed = 0x0a;

        private readonly TraceSource _log =
#if DEBUG
            new TraceSource("SshNet.Logging", SourceLevels.All);
#else
            new TraceSource("SshNet.Logging");
#endif

        /// <summary>
        /// Holds the lock object to ensure read access to the socket is synchronized.
        /// </summary>
        private readonly object _socketReadLock = new object();

        /// <summary>
        /// Gets a value indicating whether the socket is connected.
        /// </summary>
        /// <param name="isConnected"><c>true</c> if the socket is connected; otherwise, <c>false</c></param>
        /// <remarks>
        /// <para>
        /// As a first check we verify whether <see cref="Socket.Connected"/> is
        /// <c>true</c>. However, this only returns the state of the socket as of
        /// the last I/O operation. Therefore we use the combination of Socket.Poll
        /// with mode SelectRead and Socket.Available to verify if the socket is
        /// still connected.
        /// </para>
        /// <para>
        /// The MSDN doc mention the following on the return value of <see cref="Socket.Poll(int, SelectMode)"/>
        /// with mode <see cref="SelectMode.SelectRead"/>:
        /// <list type="bullet">
        ///     <item>
        ///         <description><c>true</c> if data is available for reading;</description>
        ///     </item>
        ///     <item>
        ///         <description><c>true</c> if the connection has been closed, reset, or terminated; otherwise, returns <c>false</c>.</description>
        ///     </item>
        /// </list>
        /// </para>
        /// <para>
        /// <c>Conclusion:</c> when the return value is <c>true</c> - but no data is available for reading - then
        /// the socket is no longer connected.
        /// </para>
        /// <para>
        /// When a <see cref="Socket"/> is used from multiple threads, there's a race condition
        /// between the invocation of <see cref="Socket.Poll(int, SelectMode)"/> and the moment
        /// when the value of <see cref="Socket.Available"/> is obtained. As a workaround, we signal
        /// when bytes are read from the <see cref="Socket"/>.
        /// </para>
        /// </remarks>
        partial void IsSocketConnected(ref bool isConnected)
        {
            isConnected = (_socket != null && _socket.Connected);
            if (isConnected)
            {
                // synchronize this to ensure thread B does not reset the wait handle before
                // thread A was able to check whether "bytes read from socket" signal was
                // actually received
                lock (_socketReadLock)
                {
                    _bytesReadFromSocket.Reset();
                    var connectionClosedOrDataAvailable = _socket.Poll(1000, SelectMode.SelectRead);
                    isConnected = !(connectionClosedOrDataAvailable && _socket.Available == 0);
                    if (!isConnected)
                    {
                        // the race condition is between the Socket.Poll call and
                        // Socket.Available, but the event handler - where we signal that
                        // bytes have been received from the socket - is sometimes invoked
                        // shortly after
                        isConnected = _bytesReadFromSocket.WaitOne(500);
                    }
                }
            }
        }

        /// <summary>
        /// Establishes a socket connection to the specified host and port.
        /// </summary>
        /// <param name="host">The host name of the server to connect to.</param>
        /// <param name="port">The port to connect to.</param>
        /// <exception cref="SshOperationTimeoutException">The connection failed to establish within the configured <see cref="Renci.SshNet.ConnectionInfo.Timeout"/>.</exception>
        /// <exception cref="SocketException">An error occurred trying to establish the connection.</exception>
        partial void SocketConnect(string host, int port)
        {
            const int socketBufferSize = 2 * MaximumSshPacketSize;

            var ipAddress = host.GetIPAddress();
            var timeout = ConnectionInfo.Timeout;
            var ep = new IPEndPoint(ipAddress, port);

            _socket = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            _socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);
            _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer, socketBufferSize);
            _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, socketBufferSize);

            Log(string.Format("Initiating connect to '{0}:{1}'.", ConnectionInfo.Host, ConnectionInfo.Port));

            var connectResult = _socket.BeginConnect(ep, null, null);
            if (!connectResult.AsyncWaitHandle.WaitOne(timeout, false))
                throw new SshOperationTimeoutException(string.Format(CultureInfo.InvariantCulture,
                    "Connection failed to establish within {0:F0} milliseconds.", timeout.TotalMilliseconds));

            _socket.EndConnect(connectResult);
        }

        /// <summary>
        /// Closes the socket and allows the socket to be reused after the current connection is closed.
        /// </summary>
        /// <exception cref="SocketException">An error occurred when trying to access the socket.</exception>
        partial void SocketDisconnect()
        {
            _socket.Disconnect(true);
        }

        /// <summary>
        /// Performs a blocking read on the socket until a line is read.
        /// </summary>
        /// <param name="response">The line read from the socket, or <c>null</c> when the remote server has shutdown and all data has been received.</param>
        /// <param name="timeout">A <see cref="TimeSpan"/> that represents the time to wait until a line is read.</param>
        /// <exception cref="SshOperationTimeoutException">The read has timed-out.</exception>
        /// <exception cref="SocketException">An error occurred when trying to access the socket.</exception>
        partial void SocketReadLine(ref string response, TimeSpan timeout)
        {
            var encoding = new ASCIIEncoding();
            var buffer = new List<byte>();
            var data = new byte[1];

            // read data one byte at a time to find end of line and leave any unhandled information in the buffer
            // to be processed by subsequent invocations
            do
            {
                var asyncResult = _socket.BeginReceive(data, 0, data.Length, SocketFlags.None, null, null);
                if (!asyncResult.AsyncWaitHandle.WaitOne(timeout))
                    throw new SshOperationTimeoutException(string.Format(CultureInfo.InvariantCulture,
                        "Socket read operation has timed out after {0:F0} milliseconds.", timeout.TotalMilliseconds));

                var received = _socket.EndReceive(asyncResult);

                if (received == 0)
                    // the remote server shut down the socket
                    break;

                buffer.Add(data[0]);
            }
            while (!(buffer.Count > 0 && (buffer[buffer.Count - 1] == LineFeed || buffer[buffer.Count - 1] == Null)));

            if (buffer.Count == 0)
                response = null;
            else if (buffer.Count == 1 && buffer[buffer.Count - 1] == 0x00)
                // return an empty version string if the buffer consists of only a 0x00 character
                response = string.Empty;
            else if (buffer.Count > 1 && buffer[buffer.Count - 2] == CarriageReturn)
                // strip trailing CRLF
                response = encoding.GetString(buffer.Take(buffer.Count - 2).ToArray());
            else if (buffer.Count > 1 && buffer[buffer.Count - 1] == LineFeed)
                // strip trailing LF
                response = encoding.GetString(buffer.Take(buffer.Count - 1).ToArray());
            else
                response = encoding.GetString(buffer.ToArray());
        }

        /// <summary>
        /// Performs a blocking read on the socket until <paramref name="length"/> bytes are received.
        /// </summary>
        /// <param name="length">The number of bytes to read.</param>
        /// <param name="buffer">The buffer to read to.</param>
        /// <exception cref="SshConnectionException">The socket is closed.</exception>
        /// <exception cref="SocketException">The read failed.</exception>
        partial void SocketRead(int length, ref byte[] buffer)
        {
            var receivedTotal = 0;  // how many bytes is already received

            do
            {
                try
                {
                    var receivedBytes = _socket.Receive(buffer, receivedTotal, length - receivedTotal, SocketFlags.None);
                    if (receivedBytes > 0)
                    {
                        // signal that bytes have been read from the socket
                        // this is used to improve accuracy of Session.IsSocketConnected
                        _bytesReadFromSocket.Set();
                        receivedTotal += receivedBytes;
                        continue;
                    }

                    // 2012-09-11: Kenneth_aa
                    // When Disconnect or Dispose is called, this throws SshConnectionException(), which...
                    // 1 - goes up to ReceiveMessage()
                    // 2 - up again to MessageListener()
                    // which is where there is a catch-all exception block so it can notify event listeners.
                    // 3 - MessageListener then again calls RaiseError().
                    // There the exception is checked for the exception thrown here (ConnectionLost), and if it matches it will not call Session.SendDisconnect().
                    //
                    // Adding a check for _isDisconnecting causes ReceiveMessage() to throw SshConnectionException: "Bad packet length {0}".
                    //

                    if (_isDisconnecting)
                        throw new SshConnectionException("An established connection was aborted by the software in your host machine.", DisconnectReason.ConnectionLost);
                    throw new SshConnectionException("An established connection was aborted by the server.", DisconnectReason.ConnectionLost);
                }
                catch (SocketException exp)
                {
                    if (exp.SocketErrorCode == SocketError.WouldBlock ||
                        exp.SocketErrorCode == SocketError.IOPending ||
                        exp.SocketErrorCode == SocketError.NoBufferSpaceAvailable)
                    {
                        // socket buffer is probably empty, wait and try again
                        Thread.Sleep(30);
                    }
                    else
                    {
                        throw new SshConnectionException(exp.Message, DisconnectReason.ConnectionLost, exp);
                    }
                }
            } while (receivedTotal < length);
        }

        /// <summary>
        /// Writes the specified data to the server.
        /// </summary>
        /// <param name="data">The data to write to the server.</param>
        /// <param name="offset">The zero-based offset in <paramref name="data"/> at which to begin taking data from.</param>
        /// <param name="length">The number of bytes of <paramref name="data"/> to write.</param>
        /// <exception cref="SshOperationTimeoutException">The write has timed-out.</exception>
        /// <exception cref="SocketException">The write failed.</exception>
        private void SocketWrite(byte[] data, int offset, int length)
        {
            var totalBytesSent = 0;  // how many bytes are already sent
            var totalBytesToSend = length;

            do
            {
                try
                {
                    totalBytesSent += _socket.Send(data, offset + totalBytesSent, totalBytesToSend - totalBytesSent,
                        SocketFlags.None);
                }
                catch (SocketException ex)
                {
                    if (ex.SocketErrorCode == SocketError.WouldBlock ||
                        ex.SocketErrorCode == SocketError.IOPending ||
                        ex.SocketErrorCode == SocketError.NoBufferSpaceAvailable)
                    {
                        // socket buffer is probably full, wait and try again
                        Thread.Sleep(30);
                    }
                    else
                        throw;  // any serious error occurr
                }
            } while (totalBytesSent < totalBytesToSend);
        }

        [Conditional("DEBUG")]
        partial void Log(string text)
        {
            _log.TraceEvent(TraceEventType.Verbose, 1, text);
        }

#if ASYNC_SOCKET_READ
        private void SocketRead(int length, ref byte[] buffer)
        {
            var state = new SocketReadState(_socket, length, ref buffer);

            _socket.BeginReceive(buffer, 0, length, SocketFlags.None, SocketReceiveCallback, state);

            var readResult = state.Wait();
            switch (readResult)
            {
                case SocketReadResult.Complete:
                    break;
                case SocketReadResult.ConnectionLost:
                    if (_isDisconnecting)
                        throw new SshConnectionException(
                            "An established connection was aborted by the software in your host machine.",
                            DisconnectReason.ConnectionLost);
                    throw new SshConnectionException("An established connection was aborted by the server.",
                        DisconnectReason.ConnectionLost);
                case SocketReadResult.Failed:
                    var socketException = state.Exception as SocketException;
                    if (socketException != null)
                    {
                        if (socketException.SocketErrorCode == SocketError.ConnectionAborted)
                        {
                            buffer = new byte[length];
                            Disconnect();
                            return;
                        }
                    }
                    throw state.Exception;
            }
        }

        private void SocketReceiveCallback(IAsyncResult ar)
        {
            var state = ar.AsyncState as SocketReadState;
            var socket = state.Socket;

            try
            {
                var bytesReceived = socket.EndReceive(ar);
                if (bytesReceived > 0)
                {
                    _bytesReadFromSocket.Set();
                    state.BytesRead += bytesReceived;
                    if (state.BytesRead < state.TotalBytesToRead)
                    {
                        socket.BeginReceive(state.Buffer, state.BytesRead, state.TotalBytesToRead - state.BytesRead,
                            SocketFlags.None, SocketReceiveCallback, state);
                    }
                    else
                    {
                        // we received all bytes that we wanted, so lets mark the read
                        // complete
                        state.Complete();
                    }
                }
                else
                {
                    // the remote host shut down the connection; this could also have been
                    // triggered by a SSH_MSG_DISCONNECT sent by the client
                    state.ConnectionLost();
                }
            }
            catch (SocketException ex)
            {
                if (ex.SocketErrorCode != SocketError.ConnectionAborted)
                {
                    if (ex.SocketErrorCode == SocketError.WouldBlock ||
                        ex.SocketErrorCode == SocketError.IOPending ||
                        ex.SocketErrorCode == SocketError.NoBufferSpaceAvailable)
                    {
                        // socket buffer is probably empty, wait and try again
                        Thread.Sleep(30);

                        socket.BeginReceive(state.Buffer, state.BytesRead, state.TotalBytesToRead - state.BytesRead,
                            SocketFlags.None, SocketReceiveCallback, state);
                        return;
                    }
                }

                state.Fail(ex);
            }
            catch (Exception ex)
            {
                state.Fail(ex);
            }
        }

        private class SocketReadState
        {
            private SocketReadResult _result;

            /// <summary>
            /// WaitHandle to signal that read from socket has completed (either successfully
            /// or with failure)
            /// </summary>
            private EventWaitHandle _socketReadComplete;

            public SocketReadState(Socket socket, int totalBytesToRead, ref byte[] buffer)
            {
                Socket = socket;
                TotalBytesToRead = totalBytesToRead;
                Buffer = buffer;
                _socketReadComplete = new ManualResetEvent(false);
            }

            /// <summary>
            /// Gets the <see cref="Socket"/> to read from.
            /// </summary>
            /// <value>
            /// The <see cref="Socket"/> to read from.
            /// </value>
            public Socket Socket { get; private set; }

            /// <summary>
            /// Gets or sets the number of bytes that have been read from the <see cref="Socket"/>.
            /// </summary>
            /// <value>
            /// The number of bytes that have been read from the <see cref="Socket"/>.
            /// </value>
            public int BytesRead { get; set; }

            /// <summary>
            /// Gets the total number of bytes to read from the <see cref="Socket"/>.
            /// </summary>
            /// <value>
            /// The total number of bytes to read from the <see cref="Socket"/>.
            /// </value>
            public int TotalBytesToRead { get; private set; }

            /// <summary>
            /// Gets or sets the buffer to hold the bytes that have been read.
            /// </summary>
            /// <value>
            /// The buffer to hold the bytes that have been read.
            /// </value>
            public byte[] Buffer { get; private set; }

            /// <summary>
            /// Gets or sets the exception that was thrown while reading from the
            /// <see cref="Socket"/>.
            /// </summary>
            /// <value>
            /// The exception that was thrown while reading from the <see cref="Socket"/>,
            /// or <c>null</c> if no exception was thrown.
            /// </value>
            public Exception Exception { get; private set; }

            /// <summary>
            /// Signals that the total number of bytes has been read successfully.
            /// </summary>
            public void Complete()
            {
                _result = SocketReadResult.Complete;
                _socketReadComplete.Set();
            }

            /// <summary>
            /// Signals that the socket read failed.
            /// </summary>
            /// <param name="cause">The <see cref="Exception"/> that caused the read to fail.</param>
            public void Fail(Exception cause)
            {
                Exception = cause;
                _result = SocketReadResult.Failed;
                _socketReadComplete.Set();
            }

            /// <summary>
            /// Signals that the connection to the server was lost.
            /// </summary>
            public void ConnectionLost()
            {
                _result = SocketReadResult.ConnectionLost;
                _socketReadComplete.Set();
            }

            public SocketReadResult Wait()
            {
                _socketReadComplete.WaitOne();
                _socketReadComplete.Dispose();
                _socketReadComplete = null;
                return _result;
            }
        }

        private enum SocketReadResult
        {
            Complete,
            ConnectionLost,
            Failed
        }
#endif
    }
}


text:
Q: Why can't a browser display a local ASP.NET file? I wanted to build a web application that kids could view 4-H Record Book forms, criteria, and examples from a CD. I wanted it to be in a web page format so that it was platform-independent (compatible with Windows, Mac, and Linux). I wanted to write the application in ASP.NET, so that I could reuse pieces of my site (e.g. Master Pages, databound controls). It worked fine while in Debug mode running on my simulator server, but when I attempted to open the files without the server simulator, they simply displayed as blank pages.
I've learned thus far that ASP.NET requires a server to run, but my question is: why does it require a server when so much of ASP.NET is just HTML tags? Also, is there any way I can use ASP.NET features such as Master Pages and Databound controls on a local website?

A: Output of ASP.NET is html, css and other stuff, but ASP.NET itself is a very complex system that consists of many components, for instance code-behind classes, asp.net controls, event system, routing system, various libraries etc. The server has to somehow (I won't go into details, because it's a way too broad topic to explain like this) assemble the output and it will spit out the generated html, css etc. to the client who requested the file (typically a browser).
Browser itself can only work with final html, css, javascript and so on, but it can't do processing that needs to take place on the server-side.


Our partner in Japan Rikei invited us to show and demonstrate our latest products.
Small, compact and easy to handle, EdgeProbe Nano ISDB-T/Tb is the ideal tool for field technicians to validate and monitor 24/7 all points of a DTV network.
RF-Catcher spectrum analyzer/recorder/player with complete Application Suite. Bundled with EdgeProbe, it triggers RF recordings on reception and stream errors!
Our APAC Sales Manager Simon will welcome you on the stand.


Nanny State is a study of the conflict between political responsibility and familial love.
When Bernard dies, his wife discovers he's been writing a political blog that has galvanised the country. She steps into his shoes, fights the election campaign and becomes Prime Minister. But the cost is high for saving the country.


My husband and I raised three kids in Alaska.
It was a great place to live, but it was a long way from our families in the Midwest and on the East Coast. So when Christmas rolled around, we started out attempting the "I'll be home for Christmas" thing.
The airports were — and still are — at their most frenzied then. Santa had to find us as we spanned the United States. One child inevitably came down with a Christmas illness. We had to juggle Christmas programs, the greater cost of seasonal travel, the potential for blizzards thwarting us in at least one of the airports we had to negotiate.
It didn't take long to decide that we needed to establish our own Christmas traditions in our own house and save those long journeys to relatives for the summer months.
This was practical and made sense. But emotionally, it was tougher.
It had to be Bing Crosby — a favorite of my mother's — and on cue, at those words, "you can count on me," I would puddle up and cry from the produce aisle to the deli to the bakery. I would try to compose myself in case I saw friends, but my coat sleeve would be soaked by the time I made it through the checkout.
Is there such a thing as "Catholic guilt"? Or is a feeling of family nostalgia built into this crazy season? I could not be counted on. Bing knew.
Christmas is a wonderful time, but it's definitely stressful. We want to carve out time for reflection while the culture pulls us the other direction entirely. Parties, gift exchanges, cookies, checkbook shock, fatigue, to-do lists — it can be overwhelming.
And then there are the memories. My mom is gone now, and I look back and am proud that we made great effort and financial commitment to seeing our families. Friends would be heading to Hawaii or Mexico — favorite Alaskan destinations — while we'd be saving to visit family. We spent our vacation time seeing East Coast sights or sitting with Mom at her small-town pool while the kids splashed.
But sometimes at Christmas I hear those words, "you can count on me," and I get a little pang. It is, after all, Christmas. And I wish I had one more with Mom.
Occasionally, I'll hear from a friend or relative that they are "estranged" from a family member. I hate to be too inquisitive so I don't ask why. But we all know families where somebody's angry at somebody. Or maybe someone's just drifted away.
If you are one of those families — if there is a sibling, a cousin, a parent, a child, a former best friend — with whom you no longer communicate, make an effort this year, if it seems prudent or possible. Take some of that promised quiet time, be completely silent before God and let him love you for a while with no other thoughts rattling around in your head.
Then, ask God if maybe it's time to reach out. The older you get, the more you know that life is incredibly short, our time on this earth so limited. Maybe just a card, maybe a quick call. Just the basics, an "I love you" with no strings and no conditions and no accusations or expectations.


Need to improve the look and fix some issues.
I need some changes to an existing website. I need you to design my online store.
I have an eye for e-commerce websites and have worked on some which are running effectively.


Up to 3 hours before your start your booking you can change the end time to shorten your trip. If you are on a trip and you would like to bring back the vehicle earlier, please open the app and chat to the Support Team who will be able to help you. Please note that our drivers work on a tight schedule and booking changes are subject to availability.