text:
\section{Introduction}
\label{sec:intro}
\setlength{\abovecaptionskip}{1.5pt
\setlength{\belowcaptionskip}{1.5pt}%
\begin{figure}[t!]
	\centering
    \small
	\begin{overpic}[width=1.\linewidth]{Imgs/s3.pdf}
    \end{overpic}

	\caption{\textit{Left:} Computational complexity under different input scales. Segformer~\cite{xie2021segformer} significantly reduces the computational complexity compared to traditional methods, such as PSPNet~\cite{zhao2017pyramid} and DeepLabV3+~\cite{chen2018encoder} which have mobilenetV2~\cite{sandler2018mobilenetv2} as backbone. However, Segformer still has a huge computational burden for higher resolutions. \textit{Right:} AFFormer~achieves better accuracy on ADE20K and Cityscapes datasets with significantly lower FLOPs.}
    \label{figure: flops}
\end{figure}

Semantic segmentation aims to partition an image into sub-regions (collections of pixels) and is defined as a pixel-level classification task~\cite{long2015fully,xie2021segformer,zhao2017pyramid,chen2018encoder,strudel2021segmenter,cheng2021maskformer} since Fully Convolutional Networks (FCN)~\cite{long2015fully}.
It has two unique characteristics compared to image classification: pixel-wise dense prediction and multi-class representation, which is usually built upon high-resolution features and requires a global inductive capability of image semantics, respectively.
Previous semantic segmentation methods~\cite{zhao2017pyramid, chen2018encoder,strudel2021segmenter,xie2021segformer,cheng2021maskformer,yuan2021ocnet} focus on using the classification network as backbone to extract multi-scale features, and designing a complicated decoder head to establish the relationship between multi-scale features.
However, these improvements come at the expense of large model size and high computational cost.
For instance, the well-known PSPNet~\cite{zhao2017pyramid} using light-weight MobilenetV2~\cite{sandler2018mobilenetv2} as backbone contains 13.7M parameters and 52.2 GFLOPs with the input scale of $512 \times 512$.
The widely-used DeepLabV3+~\cite{chen2018encoder} with the same backbone requires 15.4M parameters and 25.8 GFLOPs.
The inherent design manner limits the development of this field and hinders many real-world applications. Thus, we raise the following question: \textit{can semantic segmentation be as simple as image classification?}

Recently vision Transformers (ViTs)~\cite{liu2021swin,lee2022mpvit, xie2021segformer,strudel2021segmenter,cheng2021maskformer,Xu_2021_ICCV,lee2022mpvit} have shown great potential in semantic segmentation, however, they face the challenges of balancing performance and memory usage when deployed on ultra-low computing power devices.
Standard Transformers has computational complexity of $O(n^{2})$ in the spatial domain, where $n$ is the input resolution.
Existing methods alleviate this situation by reducing the number of tokens~\cite{xie2021segformer,wang2021pvt,liang2022evit,ren2022shunted} or sliding windows~\cite{liu2021swin,yuan2021hrformer}, but they introduce limited  reduction on computational complexity and even compromise global or local semantics for the segmentation task.
Meanwhile, semantic segmentation as a fundamental research field, has extensive application scenarios and needs to process images with various resolutions.
As shown in Figure~\ref{figure: flops}, although the well-known efficient Segformer~\cite{xie2021segformer} achieves a great breakthrough compared to PSPNet and DeepLabV3+, it still faces a huge computational burden for higher resolutions.
At the scale of $512 \times 512$, although Segformer is very light compared to PSPNet and DeepLabV3+, it is almost twice as expensive as ours (8.4 GFLOPs \textit{vs} 4.6 GFLOPs); at the scale of $2048 \times 2048$, even 5x GFLOPs is required (384.3 GFLOPs \textit{vs} 73.2 GFLOPs).
Thus, we raise another question: \textit{can we design an efficient and lightweight Transformer network for semantic segmentation in ultra-low computational scenarios?}

The answers to above two questions are affirmative. To this end, we propose a head-free lightweight semantic segmentation specific architecture, named Adaptive Frequency Transformer~(AFFormer).
Inspired by the properties that ViT maintains a single high-resolution feature map to keep details~\cite{dosovitskiy2020vit} and the pyramid structure reduces the resolution to explore semantics and reduce computational cost~\cite{he2016resnet,wang2021pvt,liu2021swin}, AFFormer~adopts a parallel architecture to leverage the prototype representations as specific learnable local descriptions which replace the decoder and preserves the rich image semantics on high-resolution features.
The parallel structure compresses the majority of the computation by removing the decoder, but it is still not enough for ultra-low computational resources. Moreover, we employ heterogeneous operators for pixel embedding features and local description features to save more computational costs.
A Transformer-based module named \textit{prototype learning} (PL) is used to learn the prototype representations, while a convolution-based module called \textit{pixel descriptor} (PD) takes pixel embedding features and the learned prototype representations as inputs, transforming them back into the full pixel embedding space to preserve high-resolution semantics.

However, it is still very difficult to linearize the complexity of the vision Transformer from the perspective of spatial domain.
Inspired by the effects of frequency on classification tasks~\cite{rao2021global,wang2020high}, we find that semantic segmentation is also very sensitive to frequency information.
Thus, we construct a lightweight adaptive frequency filter of complexity $O(n)$ as prototype learning to replace the standard self attention with $O(n^{2})$.
The core of this module is composed of frequency similarity kernel, dynamic low-pass and high-pass filters, which capture frequency information that is beneficial to semantic segmentation from the perspectives of emphasizing important frequency components and dynamically filtering frequency, respectively.
Finally, the computational cost is further reduced by sharing weights in high and low frequency extraction and enhancement modules.
We also embed a simplified depthwise convolutional layer in the feed-forward network (FFN) layer to enhance the fusion effect, reducing the size of the two matrix transformations.

With the help of parallel heterogeneous architecture and adaptive frequency filter, we use only one convolutional layer as classification layer (CLS) for single-scale feature, achieving the best performance and making semantic segmentation as simple as image classification.
We demonstrate the advantages of the proposed AFFormer~on three widely-used datasets: ADE20K, Cityscapes and COCO-stuff.
With only 3M parameters, AFFormer~significantly outperforms the state-of-the-art lightweight methods.
On ADE20K, AFFormer~achieves 41.8 mIoU with 4.6 GFLOPs, outperforming Segformer by 4.4 mIoU, while reducing GFLOPs by 45\%.
On Cityscapes, AFFormer~achieves 78.7 mIoU and 34.4 GFLOPs, which is 2.5 mIoU higher than Segformer, with 72.5\% less GFLOPs.
Extensive experimental results demonstrate that it is possible to apply our model in computationally constrained scenarios, which still maintaining the high performance and robustness across different datasets.

\begin{figure*}[t!]
	\centering
    \small
	\begin{overpic}[width=1.\linewidth]{Imgs/3.pdf}
    \end{overpic}

\caption{An Overview of Adaptive Frequency Transformer~(AFFormer). We first displays the overall structure of parallel heterogeneous network.
Specifically, the feature $\boldsymbol{F}$ after patch embedding is first clustered to obtain the prototype feature $\boldsymbol{G}$, so as to construct a parallel network structure, which includes two heterogeneous operators.
A Transformer-based module as prototype learning to capture favorable frequency components in $\boldsymbol{G}$, resulting prototype representation $\boldsymbol{G}^{\prime}$.
Finally $\boldsymbol{G}^{\prime}$ is restored by a CNN-based pixel descriptor, resulting $\boldsymbol{F}^{\prime}$ for the next stage.}
    \label{figure: parallel}
\end{figure*}

\section{Related Work}
\label{sec:Related Work}

\subsection{Semantic Segmentation}
Semantic segmentation is regarded as a pixel classification task~\cite{strudel2021segmenter,xu2017deep,xie2021segformer}.
In the last two years, new paradigms based on visual Transformers have emerged, which enable mask classification via queries or dynamic kernels~\cite{zhang2021knet,li2022maskdino,cheng2021maskformer,cheng2022mask2former}.
For instance, Maskformer~\cite{cheng2021maskformer} learns an object query and converts it into an embedding of masks.
Mask2former~\cite{cheng2022mask2former} enhances the query learning with a powerful multi-scale masked Transformer~\cite{zhu2020deformable}.
K-Net~\cite{zhang2021knet} adopts dynamic kernels for masks generation.
MaskDINO~\cite{li2022maskdino} brings object detection to semantic segmentation, further improving query capabilities.
However, all above methods are not suitable for low computing power scene due to the high computational cost of learning efficient queries and dynamic kernels.
We argue that the essence of these paradigms is to update pixel semantics by replacing the whole with individual representations.
Therefore, we leverage pixel embeddings as a specific learnable local description that extracts image and pixel semantics and allows semantic interaction.

\subsection{Efficient Vision Transformers}
The lightweight solution of vision Transformer mainly focuses on the optimization of self attention, including following ways: reducing the token length~\cite{wang2021pvt, xie2021segformer,wang2022pvtv2} and using local windows~\cite{liu2021swin,yuan2021hrformer}.
PVT~\cite{wang2021pvt} performs spatial compression on keys and values through spatial reduction, and PVTv2~\cite{wang2022pvtv2} further replaces the spatial reduction by pooling operation, but many details are lost in this way.
Swin~\cite{liu2021swin,yuan2021hrformer} significantly reduce the length of the token by restricting self attention to local windows, while these against the global nature of Transformer and restrict the global receptive field.
At the same time, many lightweight designs~\cite{chen2022mobileformer,mehta2022mobilevit} introduce Transformers in MobileNet to obtain more global semantics, but these methods still suffer from the square-level computational complexity of conventional Transformers.
Mobile-Former~\cite{chen2022mobileformer} combines the parallel design of MobileNet~\cite{sandler2018mobilenetv2} and Transformer~\cite{dosovitskiy2020vit}, which can achieve bidirectional fusion performance of local and global features far beyond lightweight networks such as MobileNetV3. However, it only uses a very small number of tokens, which is not conducive to semantic segmentation tasks.

\section{Method}\label{sec:Method_Analysis}

In this section, we introduce the lightweight parallel heterogeneous network for semantic segmentation.
The basic information is first provivided on the replacement of semantic decoder by parallel heterogeneous network.
Then, we introduce the modeling of pixel descriptions and semantic frequencies. Finally, the specific details and the computational overhead of parallel architectures are discussed.

\subsection{Parallel Heterogeneous Architecture}
\label{subsec:HPA}

The semantic decoder propagates the image semantics obtained by the encoder to each pixel and restores the lost details in downsampling.
A straightforward alternative is to extract image semantics in high resolution features, but it introduces a huge amount of computation, especially for vision Transformers. In contrast, we propose a novel strategy to describe pixel semantic information with prototype semantics. For each stage, given a feature $\boldsymbol{F} \in \mathbb{R}^{H \times W \times C} $, we first initial a grid $\boldsymbol{G} \in \mathbb{R}^{h \times w \times C} $ as a prototype of the image, where each point in $\boldsymbol{G}$ acts as a local cluster center, and the initial state simply contains information about the surrounding area. Here we use a $1 \times C$ vector to represent the local semantic information of each point. For each specific pixel, because the semantics of the surrounding pixels are not consistent, there are overlap semantics between each cluster centers. The cluster centers are weighted initialized in its corresponding area $\alpha^{2}$, and the initialization of each cluster center is expressed as:
\begin{equation}
\boldsymbol{G}(s) = \sum_{i=0}^{n}w_{i}x_{i}
\end{equation}
where $n=\alpha \times \alpha$, $w_{i}$ denotes the weight of $x_{i}$, and $\alpha$ is set to 3. Our purpose is to update each cluster center $s$ in the grid $G$ instead of updating the feature $\boldsymbol{F}$ directly. As $h \times w \ll H\times W$, it greatly simplifies the computation.

Here, we use a Transformer-based module as prototype learning to update each cluster center, which contains $L$ layers in total, and the updated center is denoted as $\boldsymbol{G}^{\prime}(s)$. For each updated cluster center, we recover it by a pixel descriptor. Let $F_{i}^{\prime}$ denote the recovered feature, which contains not only the rich pixel semantics from $F$, but also the prototype semantics collected by the cluster centers $\boldsymbol{G}^{\prime}(s)$.
Since the cluster centers aggregate the semantics of surrounding pixels, resulting in the loss of local details, PD first models local details in $F$ with pixel semantics.
Specifically, $F$ is projected to a low-dimensional space, establishing local relationships between pixels such that each local patch keeps a distinct boundary.
Then $\boldsymbol{G}^{\prime}(s)$ is embedded into $F$ to restore to the original space feature $F^{\prime}$ through bilinear interpolation.
Finally, they are integrated through a linear projection layer.

\begin{figure}[t!]
	\centering
    \small
	\begin{overpic}[width=.9\linewidth]{Imgs/2.pdf}
    \end{overpic}

	\caption{The effect of different frequency components on semantic segmentation. We use the cut-edge method Segformer~\cite{xie2021segformer} to evaluate the impact of frequency components on semantic segmentation on the widely used ADE20K dataset~\cite{zhou2017scene}.
The image is transformed into the frequency domain by a fast Fourier transform ~\cite{heideman1984gauss}, and high-frequency information is filtered out using a low-pass operator with a radius.
Removing high-frequency components at different levels results the prediction performance drops significantly.}
    \label{figure: filter}
\end{figure}

\subsection{Prototype Learning by Adaptive Frequency Filter}\label{subsec:Frequency Aware Statistics}
\subsubsection{Motivation}
Semantic segmentation is an extremely complex pixel-level classification task that is prone to category confusion.
The frequency representation can be used as a new paradigm of learning difference between categories, which can excavate the information ignored by human vision~\cite{zhong2022detecting,qian2020thinking}.
As shown in Figure~\ref{figure: filter}, humans are robust to frequency information removal unless the vast majority of frequency components are filtered out.
However, the model is extremely sensitive to frequency information removal, and even removing a small amount would result in significant performance degradation.
It shows that for the model, mining more frequency information can enhance the difference between categories and make the boundary between each category more clear, thereby improving the effect of semantic segmentation.

\begin{figure}[t!]
	\centering
    \small
	\begin{overpic}[width=.9\linewidth]{Imgs/s4.pdf}
    \end{overpic}

	\caption{Structure of the adaptive frequency filter in prototype learning. The prototype as learnable local description utilizes frequency component similarity kernel to enhance different components while combining efficient and dynamic low-pass and high-pass filters to capture more frequency information.}
    \label{figure: AFF}
\end{figure}

Since feature $\boldsymbol{F}$ contains rich frequency features, each cluster center in the grid $\boldsymbol{G}$ also collects these frequency information.
Motivated by the above analysis, extracting more beneficial frequencies in grid $\boldsymbol{G}$ helps to discriminate the attributes of each cluster.
To extract different frequency features, the straightforward way is to transform the spatial domain features into spectral features through Fourier transform, and use a simple mask filter in the frequency domain to enhance or attenuate the intensity of each frequency component of the spectrum.
Then the extracted frequency features are converted to the spatial domain by inverse Fourier transform.
However, Fourier transform and inverse transform bring in additional computational expenses, and such operators are not supported on many hardwares.
Thus, we design an adaptive frequency filter block based on the vanilla vision Transformer from the perspective of spectral correlation to capture important high frequency and low frequency features directly in the spatial domain.
The core components are shown in Figure~\ref{figure: AFF} and the formula is defined as:
\setlength{\abovedisplayskip}{10pt}
\begin{equation}
  \boldsymbol{AFF}(X) = \underbrace{||\boldsymbol{D}_{h}^{fc}(X)||_{H}}%
    _{corr.} + \underbrace{||\boldsymbol{D}_{m}^{lf}(X)||_{M} + ||\boldsymbol{D}_{n}^{hf}(X)||_{N}}
    _{dynamic~filters},
\end{equation}
\setlength{\belowdisplayskip}{10pt}
where $\boldsymbol{D}_{h}^{fc}$, $\boldsymbol{D}_{m}^{lf}(X)$ and $\boldsymbol{D}_{n}^{hf}(X)$ denote the frequency similarity kernel with ${H}$ groups to achieve frequency component correlation enhancement, dynamical low-pass filters with ${M}$ groups and dynamical high-pass filters with ${N}$ groups, respectively. $||\cdot||$ denotes concatenation.
It is worth noting that these operators adopt a parallel structure to further reduce the computational cost by sharing weights.

\subsubsection{Frequency Similarity Kernel (FSK)}
Different frequency components distribute over in $\boldsymbol{G}$, and our purpose is to select and enhance the important components that helps semantic parsing.
To this end, we design a frequency similarity kernel module. Generally, this module is implemented by the vision Transformer.
Given a feature $\boldsymbol{X}\in \mathbb{R}^{ (hw)\times C }$, with relative position encoding on $\boldsymbol{G}$ through a convolution layer~\cite{Wu2021RPE}.
We first use a fixed-size similarity kernel $\boldsymbol{A} \in \mathbb{R}^{C/H \times C/H }$ to represent the correspondence between different frequency components, and select the important frequency components by querying the similarity kernel.
We treat it as a function transfer that computes the keys $\boldsymbol{K}$ and values $\boldsymbol{V}$ of frequency components through a linear layer, and normalizes the keys across frequency components by a Softmax operation. Each component integrates a similarity kernel $\boldsymbol{A}_{i,j}$, which is computed as:

\begin{equation}
\boldsymbol{A}_{i,j} = { e^{\boldsymbol{k}_i\boldsymbol{v}_j^{\top}}}/{\sum\limits_{j=1}^n e^{\boldsymbol{k}_i}},
\label{eq:std-att-2}
\end{equation}
where $\boldsymbol{k}_i$ represents the $i$-th frequency component in $\boldsymbol{{K}}$, $\boldsymbol{v}_j$ represents the $j$-th frequency component in $\boldsymbol{V}$. We also transform the input $\boldsymbol{X}$ into the query $\boldsymbol{Q}$ through a linear layer, and obtain the component-enhanced output through interactions on the fixed-size similarity kernel.

\subsubsection{Dynamic Low-Pass Filters (DLF)}
Low-frequency components occupy most of the energy in the absolute image and represent most of the semantic information.
A low-pass filter allows signals below the cutoff frequency to pass, while signals above the cutoff frequency are obstructed.
Thus, we employ typical average pooling as a low-pass filter. However, the cutoff frequencies of different images are different.
To this end, we control different kernels and strides in multi-groups to generate dynamic low-pass filters. For $m$-th group, we have:
\setlength{\abovedisplayskip}{10pt}
\begin{equation}
\boldsymbol{D}_{m}^{lf}(\boldsymbol{\boldsymbol{v}}^{m}))= \boldsymbol{B}(\Gamma_{s\times s}(\boldsymbol{\boldsymbol{v}}^{m})),
\label{eqn: low-pass}
\end{equation}
where $\boldsymbol{B}(\cdot)$ represents bilinear interpolation and $\Gamma_{s\times s} $ denotes the adaptive average pooling with the output size  of $s \times s$.

\subsubsection{Dynamic High-Pass Filters (DHF)}
High-frequency information is crucial to preserve details in segmentation. As a typical high-pass operator, convolution can filter out irrelevant low-frequency redundant components to retain favorable high-frequency components.
The high-frequency components determine the image quality and the cutoff frequency of the high-pass for each image is different. Thus, we divide the value $\boldsymbol{V}$ into $\boldsymbol{N}$ groups, resulting $\boldsymbol{\boldsymbol{v}}^{n}$. For each group, we use a convolution layer with different kernels to simulate the cutoff frequencies in different high-pass filters. For the $n$-th group, we have:
\setlength{\abovedisplayskip}{10pt}
\begin{equation}
\boldsymbol{D}_{n}^{hf}(\boldsymbol{\boldsymbol{v}}^{n}))=\Lambda_{k\times k}(\boldsymbol{v}^{n}),
\label{eqn: high-pass}
\end{equation}
where $\Lambda_{k\times k}$ denotes the depthwise convolution layer with kernel size of $k\times k$. In addition, we use the Hadamard product of query and high-frequency features to suppress high frequencies inside objects, which are noise for segmentation.

FFN helps to fuse the captured frequency information, but owns a large amount of calculation, which is often ignored in lightweight designs. Here we reduce the dimension of the hidden layer by introducing a convolution layer to make up for the missing capability due to dimension compression.

\subsubsection{Discuss}
For the frequency similarity kernel, the computational complexity is $\mathcal{O}(hwC^{2})$.
The computational complexity of each dynamic high-pass filter is $ \mathcal{O}(hwCk^{2})$, which is much smaller than that of frequency similarity kernel.
Since the dynamic low-pass filter is implemented by adaptive mean pooling of each group, its computational complexity is about $\mathcal{O}(hwC)$.
Therefore, the computational complexity of a module is linear with the resolution, which is advantageous for high resolution in semantic segmentation.

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

\subsection{Implementation Details}\label{subsection: Implementation Details}
We validate the proposed AFFormer~on three publicly datasets: ADE20K~\cite{zhou2017scene}, Cityscapes~\cite{cordts2016cityscapes} and COCO-stuff~\cite{caesar2018coco}.
We implement our AFFormer~with the PyTorch framework base on MMSegmentation toolbox~\cite{mmseg2020}.
Follow previous works~\cite{cheng2021maskformer,zhao2017pyramid}, we use ImageNet-1k to pretrain our model.
During semantic segmentation training, we employ the widely used AdamW optimizer for all datasets to update the model parameters.
For fair comparisons, our training parameters mainly follow the previous work~\cite{xie2021segformer}.
For the ADE20K and Cityscapes datasets, we adopt the default training iterations 160K in Segformer, where mini-batchsize is set to 16 and 8, respectively.
For the COCO-stuff dataset, we set the training iterations to 80K and the minibatch to 16.
In addition, we implement data augmentation during training for ADE20K, Cityscapes, COCO-stuff by random horizontal flipping, random resizing with a ratio of 0.5-2.0, and random cropping to $512\times 512$, $1024\times 1024$, $512\times 512$, respectively.
We evaluate the results with mean Intersection over Union (mIoU) metric.

\begin{table}[t!]
\footnotesize
  \centering
  \caption{Comparison to state of the art methods on ADE20K with resolution at $512 \times 512$. Here we use the Segformer as the baseline and report the percentage growth. MV2=MobileNetV2, EN=EfficientNet, SV2=ShuffleNetV2.}

   {
	\setlength\tabcolsep{4.0pt}
    \begin{tabular}{l|cc|c}
    \hline
    Model & \#Param. & FLOPs & mIoU   \\
    \hline
    FCN-8s &  9.8M     & 39.6G   & 19.7    \\
    PSPNet (MV2) &  13.7M     & 52.2G   & 29.6    \\
    DeepLabV3+ (MV2) &  15.4M     & 25.8G   & 38.1    \\
    DeepLabV3+ (EN) &  17.1M     & 26.9G   & 36.2    \\
    DeepLabV3+ (SV2) &  16.9M     & 15.3G   & 37.6    \\
    Lite-ASPP &  2.9M     & 4.4G   & 36.6    \\
    R-ASPP &  2.2M     & 2.8G   & 32.0    \\
    LR-ASPP &  3.2M     & 2.0G   & 33.1    \\
    HRNet-W18-Small &  4.0M     & 10.2G   & 33.4    \\
    HR-NAS-A &  2.5M     & 1.4G   & 33.2    \\
    HR-NAS-B &  3.9M     & 2.2G   & 34.9    \\
    \hline
    PVT-v2-B0 &  7.6M     & 25.0G   & 37.2    \\
    TopFormer &  5.1M    & 1.8G   & 37.8    \\
    EdgeViT-XXS &  7.9M     & 24.4G   & 39.7    \\

    Segformer (LVT) &  3.9M     & 10.6G   & 39.3    \\

    Swin-tiny &  31.9M     & 46G   & 41.5   \\
    Xcit-T12/16 &  8.4M     & 21.5G   & 38.1    \\
    ViT &  10.2M     & 24.6G   & 37.4   \\
    PVT-tiny &  17.0M     & 33G   & 36.6    \\

    Segformer &  3.8M     & 8.4G   & 37.4   \\
     \hline

    AFFormer-tiny &  1.6M\footnotesize{\blue{(-58\%)}}     & 2.8G\footnotesize{\blue{(-67\%)}}  & 38.7\footnotesize{\blue{(+1.3)}}  \\
    AFFormer-small &  2.3M\footnotesize{\blue{(-41\%)}}     & 3.6G\footnotesize{\blue{(-61\%)}}  & 40.2\footnotesize{\blue{(+2.8)}}  \\
    AFFormer-base &  3.0M\footnotesize{\blue{(-21\%)}}     & 4.6G\footnotesize{\blue{(-45\%)}}  & 41.8\footnotesize{\blue{(+4.4)}}   \\
    \hline
    \end{tabular}%
  \label{tab: ADE20K}}
\end{table}%

\begin{table}[t!]
\footnotesize
  \centering
  \caption{Comparison to state of the art methods on Cityscapes \textit{val} set. The FLOPs are test on the resolution of $1024 \times 2048$. Meanwhile, we also report the percentage increase compared to Segformer.}
   \renewcommand{\arraystretch}{1.0}
   {
	\setlength\tabcolsep{3.5pt}
    \begin{tabular}{l|cc|c}
    \hline
    Model & \#Param. & FLOPs & mIoU     \\
    \hline
    FCN  & 9.8M     & 317G   & 61.5   \\
    PSPNet (MV2)  & 13.7M     & 423G   & 70.2    \\
    DeepLabV3+ (MV2)  & 15.4M     & 555G   & 75.2   \\

    SwiftNetRN  & 11.8M     & 104G   & 75.5   \\
    EncNet  & 55.1M     & 1748G   & 76.9   \\
    Segformer  & 3.8M     & 125G   & 76.2   \\
    \hline
    AFFormer-tiny  & 1.6M\footnotesize{\blue{(-58\%)}}     & 23.0G\footnotesize{\blue{(-82\%)}}  & 76.5\footnotesize{\blue{(+0.3)}}   \\
    AFFormer-small  & 2.3M\footnotesize{\blue{(-41\%)}}     & 26.2G\footnotesize{\blue{(-79\%)}}  & 77.6\footnotesize{\blue{(+1.4)}}    \\
    AFFormer-base  & 3.0M\footnotesize{\blue{(-21\%)}}     & 34.4G\footnotesize{\blue{(-73\%)}}  & 78.7\footnotesize{\blue{(+2.5)}}   \\
    \hline
    \end{tabular}%
  \label{tab: Cityscapes}}%
\end{table}%

\begin{table*}
\footnotesize

	\begin{minipage}{0.56\linewidth}
		\caption{Speed-accuracy tradeoffs at different scales on Cityscapes.}

        \begin{tabular}{l|cc|c}

    \hline
    Model & size  & FLOPs & mIoU   \\
    \hline

    Segformer (3.8M) & $512 \times 1024$     & 17.7G   & 71.9   \\
    AFFormer-base (3.0M) & $512 \times 1024$     & 8.6G\footnotesize{\blue{(-51.4\%)}}  & 73.5\footnotesize{\blue{(+1.6)}}  \\
    \hline
    Segformer (3.8M) & $640 \times 1280$     &  31.5G   & 73.7  \\

    AFFormer-base (3.0M) & $640 \times 1280$ & 13.4G\footnotesize{\blue{(-57.5\%)}}  & 75.6\footnotesize{\blue{(+1.9)}}   \\
    \hline
    Segformer (3.8M) & $768 \times 1536$     & 51.7G   & 75.3   \\
    AFFormer-base (3.0M) & $768 \times 1536$     & 19.4G\footnotesize{\blue{(-62.5\%)}}  & 76.5\footnotesize{\blue{(+1.2)}}   \\
    \hline
    Segformer (3.8M) & $1024 \times 2048$     & 125G   & 76.2 \\
    AFFormer-base (3.0M) & $1024 \times 2048$      & 34.4G\footnotesize{\blue{(-72.5\%)}}  & 78.7\footnotesize{\blue{(+2.5)}}   \\
    \hline
    \end{tabular}%
    \label{tab: scale cityscapes}
	    \end{minipage}
	\begin{minipage}{0.35\linewidth}

		  \caption{Comparison to state of the art methods on COCO-stuff. We use a single-scale results at the input resolution of $512 \times 512$. MV3=MobileNetV3}
    \begin{tabular}{l|cc|c}
    \hline
    Model & \#Param. & FLOPs & mIoU    \\
    \hline

    PSPNet (MV2)  & 13.7M     & 52.9G   & 30.1   \\
    DeepLabV3+ (MV2)  & 15.4M     & 25.9G   & 29.9    \\
    DeepLabV3+ (EN)  & 17.1M     & 27.1G   & 31.5   \\
    LR-ASPP (MV3)  & --     & 2.37G   & 25.2  \\
    \hline
    AFFormer-base & 3.0M     & 4.6G  & 35.1  \\
    \hline
    \end{tabular}%
    \label{tab: COCO-stuff}
	\end{minipage}
\end{table*}

\subsection{Comparisons with Existing Works}

\subsubsection{Results on ADE20K Dataset.}
We compare our AFFormer~with top-ranking semantic segmentation methods, including CNN-based and vision Transformer-based models.
Following the inference settings in~\cite{xie2021segformer}, we test FLOPs at $512 \times 512$ resolution and show the single scale results in Table~\ref{tab: ADE20K}.
Our model AFFormer-base improves by 5.2 mIoU under the same computing power consumption as Lite-ASPP, reaching 41.8 mIoU.
At the same time, by reducing the number of layers and channels, we obtain AFFormer-tiny and AFFormer-small versions to adapt to different computing power scenarios.
For the lightweight and efficient Segformer (8.4 GFLOPs),our base version (4.6 GFLOPs) also gain 4.4 mIoU using half the computing power and the tiny version (2.4 GFLOPs) with only 1/4 the computing power improving 1.3 mIoU.
Only 1.8 GFLOPs are needed for the lighter topformer, but our base version has 2.1M less parameters (5.1M vs 3M) with 4.0 higher mIoU.

\begin{table}[t!]
\small
  \centering

  \caption{Ablation studies on the parallel structure.}
   \renewcommand{\arraystretch}{1.0}
   {
	\setlength\tabcolsep{6pt}
    \begin{tabular}{cccc}
    \hline
    Setting   & \#Param. & FLOPs &  mIoU\\
    \hline
    w/o PD & 2.78G & 2.98G & 39.2\\
    w/o PL  & 0.42G & 1.65G & 19.5\\
    Parallel & 3.0G & 4.6G & 41.8\\
    \hline
    \end{tabular}%
  \label{tab: Parallel}}%
\end{table}%

\begin{table}[t!]
\small
  \centering

  \caption{Ablation studies on heterogeneous architecture. }

   \renewcommand{\arraystretch}{1.0}
   {
	\setlength\tabcolsep{6pt}
    \begin{tabular}{cccc}
    \hline
    Setting  &  \#Param.  & FLOPs  &mIoU\\
    \hline
    All PD  & 0.6M & 1.85G & 27.4\\
    All PL  & 3.6M & 7.0G & 41.6\\
    Heterogeneous & 3.0M & 4.6G & 41.8\\
    \hline
    \end{tabular}%
  \label{tab:Heterogeneous}}%
\end{table}%

\subsubsection{Results on Cityscapes Dataset.}
Table~\ref{tab: Cityscapes} shows the results of our model and the cutting-edge methods on Cityscapes.
Although the Segformer is efficient enough, due to its square-level complexity, we only use 30\% of the computational cost to reach 78.7 mIoU, which is 2.5 mIoU improvement with a 70\% reduction in FLOPs.
Meanwhile, we report the results at different high resolutions in Table~\ref{tab: scale cityscapes}. At the short side of \{512, 640, 768, 1024\}, the computational cost of our model is 51.4\%, 57.5\%, 62.5\% and 72.5\% of that of Segformer, respectively.
Meanwhile, the mIoU are improved by 1.6, 1.9, 1.2 and 2.5, respectively.
The higher the input resolution, the more advantageous of our model  in both computational cost and accuracy.

\subsubsection{Results on COCO-stuff Dataset.}
COCO-stuff dataset contains a large number of difficult samples that collected in COCO.
As show in Table~\ref{tab: COCO-stuff}, although complex decoders (\emph{e.g.}, PSPNet, DeepLabV3+) can achieve better results than LR-ASPP (MV3), they bring a lot of computational cost. Our model achieves an accuracy of 35.1 mIoU while only taking 4.5 GFLOPs, achieving the best trade-off.

\subsection{Ablation Studies}
All the ablation studies are conducted on ADE20K dataset with AFFormer-base unless otherwise specified.

\subsubsection{Rationalization of Parallel Structures.}
Parallel architecture is the key to removing the decoder head and ensuring accuracy and efficiency.
We first adjust the proposed structure to a naive pyramid architecture (denoted as ``w/o PD") and a ViT architecture (denoted as ``w/o PL") to illustrate the advantages of the parallel architecture. Specifically, the ``w/o PD" means removing PD module and keeping only PL module, while the ``w/o PL" does the opposite.
As shown in Table~\ref{tab: Parallel}, the setting ``w/o PD" reduces 2.6 mIoU due to the lack of high-resolution pixel semantic information.
The ``w/o PL" structure without the pyramid structure has a significant reduction in accuracy due to few parameters and lack of rich image semantic information.
It also demonstrates that our parallel architecture can effectively combine the advantages of both architectures.

\subsubsection{Advantages of Heterogeneous Structure.}
The purpose of the heterogeneous approach is to further reduce the computational overhead.
The PL module is adopted to learn the prototype representation in the clustered features, and then use PD to combine the original features for restoration, which avoids direct calculation on the high-resolution original features and reduce the computational cost.
It can be seen from Table~\ref{tab:Heterogeneous} that when the parallel branch is adjusted to the pixel description module (denote as ``All PD"), which means that the prototype representation is learned by PD module.
The model size is only 0.6M, and the FLOPs are reduced by 2.5G, but the accuracy is reduced by 14.3 mIoU. This is due to the PD lacks the ability to learn great prototype representations.
In contrast, after we replace the PD module with the PL module (denote as ``All PL"), the FLOPs are increased by 2.4G, but there is almost no difference in accuracy. We believe that the PD module is actually only a simple way to restore the learned prototype, and the relatively complex PL module saturates the model capacity.

\subsubsection{Advantages of Adaptive Frequency Filter.}
We use two datasets with large differences, including ADE20K and Cityscapes, to explore the core components in adaptive frequency filter module.
The main reason is that the upper limit of the ADE20K dataset is only 40 mIoU, while the upper limit of the Cityscapes is 80 mIoU.
The two datasets have different degrees of sensitivity to different frequencies.
We report the benefits of each internal component in the Table~\ref{tab:operator_combination}.
We find that DHF alone outperforms DLF, especially on the Cityscapes dataset by 2.6 mIoU, while FSK is significantly higher than DLF and DHF on ADE20K.
This shows that ADE20K may be more inclined to an intermediate state between high frequency and low frequency, while Cityscapes needs more high frequency information.
The combined experiments show that the combination of the advantages of each component can stably improve the results of ADE20K and Cityscapes.
\subsubsection{Frequency Statistics Visualization.}
We first count the characteristic frequency distribution of different stages, as shown in Figure~\ref{figure: fq1}.
It can be found that the curves of $G_2$ and $F_2$ almost overlap, indicating that the frequencies after clustering are very similar to those in the original features. The same goes for $G_3$ and $F_3$.
Whereas, the learned prototype representation after frequency adaptive filtering significantly improves the contained frequency information. After PD restoration, different frequency components can be emphasized in different stages.
As shwon in Figure~\ref{figure: fq2}, we also analyze the frequency effects of the core components in the AFF module. As expected, DLF and DHF show strong low-pass and high-pass capabilities, respectively, as FSK does. At the same time, we also found that the important frequency components screened and enhanced by FSK are mainly concentrated in the high frequency part, but the frequency signal is more saturated than that of DHF. This also shows that the high-frequency component part is particularly important in the semantic segmentation task, because it emphasizes more on the boundary details and texture differences between objects. Meanwhile, according to the analysis in Table~\ref{tab:operator_combination} (the effects of ADE20K and Cityscapes have been steadily improved), each core component has its own advantages, and the AFF module shows strong robustness in various types and complex scenes.
\subsubsection{Speed and Memory Costs.}
Meanwhile, we report the speed on the Cityscapes dataset in Table~\ref{tab: fps}. We can find that the proposed model improves by 10 FPS and performs much better than Segformer on such high-resolution Cityscapes images.

\begin{table}[t!]
\small
  \centering

  \caption{Ablation studies on frequency aware statistics.}
   \renewcommand{\arraystretch}{1.0}
   {
	\setlength\tabcolsep{4pt}
    \begin{tabular}{lcccc}
    \hline
    Setting  & \#Param.  & FLOPs & ADE20K & Cityscapes \\
    \hline
    DLF & 2.4M & 3.6G & 38.7 & 75.7\\
    DHF & 2.6M & 3.9G & 39.3 & 78.3\\
    FSK & 2.9M & 4.2G & 40.5 & 75.3\\
    DLF + DHF & 2.7M & 3.9G & 41.1 & 77.8 \\
    DLF + FSK & 2.8M & 4.2G & 40.0 & 76.2\\
    DHF + FSK & 2.9M & 4.3G & 41.2 & 77.3 \\
    Whole & 3.0M & 4.6G & 41.8 &78.7 \\

    \hline
    \end{tabular}%
  \label{tab:operator_combination}}%
\end{table}%
\begin{table}[t!]
\small
  \centering

  \caption{The FPS is tested on a V100 NVIDIA GPU with a batch size of 1 on the resolution of 1024x2048.}
   \renewcommand{\arraystretch}{1.0}
   {
	\setlength\tabcolsep{6pt}
    \begin{tabular}{cccc}
    \hline
    Model   & FPS &  mIoU\\
    \hline
    Segformer & 12 & 76.2\\
    AFFormer   & 22 & 78.7\\

    \hline
    \end{tabular}%
  \label{tab: fps}}%
\end{table}%

\begin{figure}[t!]
	\centering
    \small
	\begin{overpic}[width=0.95\linewidth]{Imgs/4.pdf}

    \end{overpic}

	\caption{Frequency analysis of stage-2 (left) and stage-3 (right).}
    \label{figure: fq1}
\end{figure}

\begin{figure}[t!]
	\centering
    \small
	\begin{overpic}[width=0.95\linewidth]{Imgs/5.pdf}
    \end{overpic}

	\caption{Frequency analysis of the core components in PL module.}
    \label{figure: fq2}
\end{figure}

\section{Conclusion}
In this paper, we propose AFFormer, a head-free lightweight semantic segmentation specific architecture.
The core is to learn the local description representation of the clustered prototypes from the frequency perspective, instead of directly learning all the pixel embedding features.
It removes the complicated decoder while having linear complexity Transformer and realizes semantic segmentation as simple as regular classification.
The various experiments demonstrate that the AFFormer~owns powerful accuracy and great stability and robustness at low computational cost.

\section{Acknowledgements} This work was supported by Alibaba Group through Alibaba Research Intern Program.

redpajama_set_name: RedPajamaArXiv


'Essential cookies' are automatically placed on your computer or device when you access our website(s) or take certain actions on our website(s). 'Non-essential cookies' and other technologies are only placed on your computer or device if you have consented to us doing so. You consent to us placing non- essential cookies on your computer or device by continuing to use our website with your browser settings set to accept cookies.
A cookie is a small amount of data, a simple text file, which often includes a unique identifier that is sent to your computer, tablet or mobile phone (all referred to here as a "device"), web browser from a website's computer and is stored on your device's hard drive. A cookie is created when a user visits a website using a programme called a browser (for example Internet Explorer, Firefox or Safari). Each website can send its own cookie to your web browser if your browser's preferences allow it. Many websites do this whenever a user visits their website in order to track online traffic flows. Similar technologies are also often used within emails to understand whether the email has been read or if any links have been clicked. If you continue without changing your settings, we will assume that you are happy to receive all cookies on any of TDA websites.
b) Why are Cookies used?
Information supplied by cookies can help us to understand the profile of our visitors and help us to provide you with a better user experience. TDA uses this type of information to help improve the services it provides to its users.
c) What Cookies are used by us?
Cookies are set by TDA website(s) (first party cookies) but may also be set by other websites (e.g. You Tube) that run content on the website's pages (third party cookies).
Non-persistent 'session' cookie (until the website browser is closed).
Persistent: 2 years from when set or updated.
Session (until the website browser is closed).
Persistent: 6 months from when set or updated.
It is important to note that if you change your settings and block certain cookies, you will not be able to take full advantage of some features of TDA services, and we might not be able to provide some features you have previously chosen to receive.
This Cookies Policy may be updated from time to time. The date of the most recent revisions will appear on this page. Your ongoing use of TDA's website and services confirms your acceptance of this policy. If material changes are made to the Cookies Policy, for instance affecting how we would like to use your personal information, we will provide a more prominent notice.


Killorn (undisclosed) will play in Tuesday's Game 4 versus the Blue Jackets, Joe Smith of The Athletic reports.
Killorn lit the lamp in Game 1, but he has struggled since with zero shots on net over the past two contests and two PIM in each outing. The 29-year-old will need a cleaner performance, as the Lightning can ill-afford to spend much time on the penalty kill in this elimination game. He will work on a bottom-six line with Yanni Gourde and Ryan Callahan.


text:
ARCADIS US INC Latest H-1B Filings
1 ARCADIS U.S., INC. 08/28/2019 SR. PROJECT CONTROLS SPECIALIST $120,016 MASSACHUSETTS
2 ARCADIS U.S., INC. 08/28/2019 MANAGEMENT CONSULTANT $95,014 ILLINOIS
3 ARCADIS U.S., INC. 08/26/2019 STAFF PROJECT CONTROLS SPECIALIST $91,770 TEXAS
4 ARCADIS U.S., INC. 08/20/2019 SENIOR TRAFFIC SIGNAL TIMING ENGINEER $120,016 GEORGIA
5 ARCADIS U.S., INC. 07/26/2019 PROGRAM/ANALYST 3 $112,819 COLORADO
6 ARCADIS U.S., INC. 07/26/2019 SENIOR SCHEDULER $126,006 TEXAS
7 ARCADIS U.S., INC. 07/04/2019 PROJECT CONTROLS SPECIALIST $93,267 PENNSYLVANIA
8 ARCADIS U.S., INC. 06/28/2019 STRUCTURAL ENGINEER $72,009 NEW YORK
9 ARCADIS U.S., INC. 06/28/2019 PROJECT ENVIRONMENTAL SCIENTIST $80,828 MARYLAND
10 ARCADIS U.S., INC. 06/06/2019 SR. PROJECT CONTROLS SPECIALIST $137,904 CALIFORNIA
11 ARCADIS U.S., INC. 05/28/2019 PROJECT SCHEDULER Click to Reveal CALIFORNIA
12 ARCADIS U.S., INC. 05/22/2019 STAFF ENVIRONMENTAL ENGINEER $78,749 CALIFORNIA
13 ARCADIS U.S., INC. 05/17/2019 PROJECT WASTEWATER ENGINEER $98,030 GEORGIA
14 ARCADIS U.S., INC. 05/14/2019 TECHNICAL PROGRAM MANAGER Click to Reveal NEW YORK
15 ARCADIS U.S., INC. 05/09/2019 TRANSPORTATION ENGINEER 2 Click to Reveal GEORGIA
16 ARCADIS U.S., INC. 05/06/2019 WATER ENGINEER 2 $72,009 GEORGIA
17 ARCADIS U.S., INC. 04/24/2019 STAFF ENVIRONMENTAL ENGINEER Click to Reveal CALIFORNIA
19 ARCADIS U.S., INC. 04/03/2019 SENIOR CONSTRUCTION MANAGER Click to Reveal GEORGIA
20 ARCADIS U.S., INC. 03/29/2019 ELECTRICAL ENGINEER 1 $65,000 NEW YORK
22 ARCADIS U.S., INC. 03/27/2019 ENVIRONMENTAL ENGINEER 2 $65,666 TEXAS
23 ARCADIS U.S., INC. 03/26/2019 MANAGEMENT CONSULTANT 1 $55,016 WASHINGTON
24 ARCADIS U.S., INC. 03/25/2019 GIS ANALYST 1 $80,017 ILLINOIS
25 ARCADIS U.S., INC. 03/22/2019 PROGRAM DIRECTOR $200,000 CALIFORNIA
26 ARCADIS U.S., INC. 03/22/2019 PROJECT STRUCTURAL ENGINEER $102,502 TEXAS
27 ARCADIS U.S., INC. 03/22/2019 MANAGEMENT CONSULTANT 1 Click to Reveal TEXAS
28 ARCADIS U.S., INC. 03/21/2019 PROJECT CONTROLS SPECIALIST 2 $70,408 CALIFORNIA
29 ARCADIS U.S., INC. 03/21/2019 MANAGEMENT CONSULTANT 1 $65,166 ILLINOIS
30 ARCADIS U.S., INC. 03/21/2019 WATER ENGINEER 1 $67,496 NEW YORK
31 ARCADIS U.S., INC. 03/21/2019 MANAGEMENT CONSULTANT 3 Click to Reveal CALIFORNIA
33 ARCADIS U.S., INC. 03/19/2019 SCHEDULER 2 Click to Reveal NEW YORK
34 ARCADIS U.S., INC. 03/18/2019 MANAGEMENT CONSULTANT 1 Click to Reveal WASHINGTON
35 ARCADIS U.S., INC. 03/18/2019 STAFF ARCHITECT $92,019 CALIFORNIA
36 ARCADIS U.S., INC. 03/18/2019 RESIDENT ENGINEER 2 Click to Reveal NEW YORK
37 ARCADIS U.S., INC. 03/18/2019 ENVIRONMENTAL ENGINEER 1 $57,990 MICHIGAN
38 ARCADIS U.S., INC. 03/18/2019 WATER ENGINEER 1 $65,707 NEW JERSEY
39 ARCADIS U.S., INC. 03/18/2019 ENVIRONMENTAL ENGINEER 2 Click to Reveal CALIFORNIA
42 ARCADIS U.S., INC. 03/18/2019 RESIDENT ENGINEER 1 Click to Reveal ILLINOIS
43 ARCADIS U.S., INC. 03/18/2019 MANAGEMENT CONSULTANT 1 Click to Reveal VIRGINIA
44 ARCADIS U.S., INC. 03/15/2019 WATER RESOURCES ENGINEER 1 Click to Reveal PENNSYLVANIA
47 ARCADIS U.S., INC. 03/14/2019 TRANSPORTATION ENGINEER 2 Click to Reveal LOUISIANA
49 ARCADIS U.S., INC. 03/14/2019 PROJECT CONTROLS SPECIALIST 2 $75,004 TENNESSEE
50 ARCADIS U.S., INC. 03/13/2019 ELECTRICAL ENGINEER 2 Click to Reveal NEW YORK
51 ARCADIS U.S., INC. 03/12/2019 PROJECT CONTROLS SPECIALIST $75,004 GEORGIA
52 ARCADIS U.S., INC. 03/12/2019 STRUCTURAL ENGINEER 2 Click to Reveal GEORGIA
53 ARCADIS U.S., INC. 03/12/2019 ELECTRICAL ENGINEER I Click to Reveal VIRGINIA
55 ARCADIS U.S., INC. 03/12/2019 ENVIRONMENTAL ENGINEER 2 Click to Reveal PENNSYLVANIA
56 ARCADIS U.S., INC. 03/12/2019 ELECTRICAL ENGINEER 2 Click to Reveal OHIO
57 ARCADIS U.S., INC. 03/12/2019 WATER ENGINEER 1 $55,994 OHIO
59 ARCADIS U.S., INC. 03/12/2019 TRANSPORTATION ENGINEER 1 Click to Reveal TENNESSEE
61 ARCADIS U.S., INC. 03/08/2019 SR. MANAGEMENT CONSULTANT 1 $115,003 CALIFORNIA
62 ARCADIS U.S., INC. 03/07/2019 STAFF WATER ENGINEER $72,342 TEXAS
63 ARCADIS U.S., INC. 03/01/2019 CIVIL ENGINEER 2 Click to Reveal COLORADO
64 ARCADIS U.S., INC. 03/01/2019 MANAGEMENT CONSULTANT 2 $90,001 CALIFORNIA
65 ARCADIS U.S., INC. 03/01/2019 PROJECT CONTROLS SPECIALIST $78,020 NEW YORK
66 ARCADIS U.S., INC. 02/27/2019 TRANSPORTATION ENGINEER I Click to Reveal TEXAS
67 ARCADIS U.S., INC. 02/27/2019 WATER ENGINEER I $60,112 VIRGINIA
68 ARCADIS U.S., INC. 02/27/2019 STRUCTURAL ENGINEER II Click to Reveal TEXAS
69 ARCADIS U.S., INC. 02/27/2019 TRANSPORTATION ENGINEER 1 Click to Reveal FLORIDA
70 ARCADIS U.S., INC. 02/27/2019 WATER ENGINEER 2 $63,502 TEXAS
71 ARCADIS U.S., INC. 02/27/2019 TRANSPORTATION ENGINEER II Click to Reveal GEORGIA
72 ARCADIS U.S., INC. 02/27/2019 PROJECT CONTROLS SPECIALIST II Click to Reveal CALIFORNIA
75 ARCADIS U.S., INC. 02/20/2019 CERTIFIED PROJECT MANAGER 3 Click to Reveal FLORIDA
77 ARCADIS U.S., INC. 02/20/2019 STRUCTURAL ENGINEER 1 Click to Reveal FLORIDA
78 ARCADIS U.S., INC. 02/20/2019 TRANSPORTATION ENGINEER II Click to Reveal NORTH CAROLINA
79 ARCADIS U.S., INC. 02/20/2019 WATER ENGINEER 1 $70,012 CALIFORNIA
82 ARCADIS U.S., INC. 02/19/2019 BIM TECHNICIAN Click to Reveal CALIFORNIA
83 ARCADIS U.S., INC. 01/30/2019 SENIOR WATER ENGINEER Click to Reveal VIRGINIA
84 ARCADIS U.S., INC. 12/11/2018 WATER RESOURCE ENGINEER Click to Reveal ILLINOIS
85 ARCADIS U.S., INC. 11/29/2018 SENIOR ASSET MANAGEMENT CONSULTANT Click to Reveal OHIO
86 ARCADIS U.S., INC. 11/20/2018 PROJECT TASK MANAGER 1 $63,357 OREGON
87 ARCADIS U.S., INC. 09/18/2018 STAFF ENVIRONMENTAL ENGINEER Click to Reveal TEXAS
88 ARCADIS U.S., INC. 08/22/2018 STAFF WATER ENGINEER 2 Click to Reveal OHIO
89 ARCADIS U.S., INC. 06/11/2018 STAFF ENVIRONMENTAL SCIENTIST Click to Reveal PENNSYLVANIA

redpajama_set_name: RedPajamaCommonCrawl


text:
newsdesk dot org (http://newsdesk.org/2008/08/21/businesses_decr_1/)
Democracy & Civics
Businesses Decry Paid Sick Leave Push in California, Ohio
By Staff Report | August 21, 2008
A bill working its way through the state legislature would make California the first state to mandate paid sick leave for employees.
In Ohio, citizens will take the matter into their own hands with a vote on the Healthy Families Act, a public referendum on the November ballot that would require businesses with 25 or more employees to provide at least seven days of paid sick leave for employees.
California's AB 2716 would affect more than 5.4 million workers who don't receive sick leave from their job, the San Francisco Chronicle reported, and was inspired by an ordinance passed by the city's board of supervisors that took effect in February 2007.
If passed, the bill would provide one day of sick leave for every 30 hours worked, the Sacramento Bee reported, and the state's department of industrial relations would enforce it at a cost of about $600,000 per year.
Small businesses do get a small break — firms with fewer than 10 employees would only have to grant employees five day of paid sick leave per year, while businesses with more employees are required to provide as many as nine days.
Rajiv Bhatia, San Francisco's occupational safety and environmental health director, said that paid sick days make public health sense, as workers without sick leave are less likely to stay home, and thus can spread diseases such as influenza.
However, labor policy is also a concern.
A report by the nonprofit group Human Impact Partners found that 72 percent of the highest-paid workers in the U.S. have paid sick leave, compared to only 21 percent of the lowest-paid quarter.
The bill's author, Fiona Ma (D-San Francisco), told the East Bay Business Journal that business owners also stand to gain from the passage AB 2716.
"[The bill] not only benefits the nearly 6 million California workers who lack paid sick days but also employers through the cost savings of maintaining a healthy workplace," she said.
Some Republicans in the state assembly decried the legislation as "job killing," and a threat to businesses that might not be able to afford paying sick leave, according to the Modesto Bee.
"It's a bad idea to mandate benefits," Marti Fisher of the California Chamber of Commerce told the Chronicle. "This could force employers to cut back on hours, raises or even lay people off."
Governor Arnold Schwarzenegger has yet to take a position on the bill, the Bee reported.
Opponents of the Ohio bill allege its appearance on the ballot is a ploy to get Democratic voters out to the polls.
"The state Democratic Party's number one goal in this election is to take control of the Ohio Legislature," David Zanotti, president of the business group Ohio Roundtable, told the Canton Repository. "They believe this mandatory sick-leave measure will help them reach their goal."
The Cleveland-based group Policy Matters Ohio released in a report that the mandatory sick leave bill increase the benefits of 2.2 million workers, the Cincinnati Enquirer reports.
San Francisco became the first city in the country to mandate paid sick leave for all employees in the city when it passed its ordinance, and Washington, D.C., also passed a similar ordinance in March.
–John Hornberg/Newsdesk.org
"Assembly OKs paid sick leave for all"
Sacramento Bee, May 29, 2008
"San Francisco orders paid sick leave for all"
NPR, January 18, 2007
"Bill would require paid sick days for most"
San Francisco Chronicle, July 31, 2008
"California legislator defends paid sick-leave bill"
East Bay Business Journal, June 25, 2008
"Council Approves Sick Leave In District"
Washington Post, March 5, 2008
"Sick leave gives Strickland a headache"
Cincinnati Enquirer, June 17, 2008
"State sick-leave proposal draws criticism"
Canton Repository, July 30, 2008
"California bill requires paid sick leave"
Pacific Business News, February 27, 2008
One thought on "Businesses Decry Paid Sick Leave Push in California, Ohio"
Zev Davis on August 21, 2008 at 7:21 am said:
I don't understand the logic of the employers. If someone has the flu, or any other condition that may be communicable, or the doctor says it may cause further complications that would put the employee in the hospital, one or two days at home is cheaper for the employer, who may have to come up with his share of the health coverage for something more serious, the same way Day Care Centers might tell a mother to keep he child away because . . .
It's penny wise and pound foolish, and, its something that every other nation does, but in the Good Old USA, things have to be done as they were in the bad old days, of course.
More on Democracy & Civics
Subscribe to Democracy & Civics


Most people are aware of the importance of making a will. Ensuring that those you love receive the inheritance you've worked for is recognised as one of those tasks we should do in good time. However not many people are aware that you can also make a living will.
A living will enables someone to express their wishes should they find themselves at the end of their life and unable to take decisions by themselves. For example, in relation to medical issues such as whether you wish to be resuscitated or are happy for your organs to be donated.
The opportunity to have factors such as this recorded in writing is particularly important when you are not a native speaker of the language. Conveying your wishes may be impossible for you to do and making a living will can alley any fears about loss of control when the time comes.
The living will is a document that can be created before a Notary and is then registered. The health administration has access to this document which has been translated into Spanish and takes account of procedures in Spain. Any health centre in the country is able to access the document and can put your wishes into practice whether you can express them yourself or not.
It can also include identification of a named person who can make decisions on your behalf should the need arise. It should be noted, however, that although medical care will always try to respect your wishes there may be times when some situations are not covered or need to be interpretated/clarified.
The living will registry is new to Valencia but is an excellent opportunity for you to retain control at this important time. If you are interested please do not hesitate to contact us. We will be happy to answer any questions you might have and advise you of the next steps if it is something you would like to put in place.


Robin Hood is a bit of a marathon, and if you have a comfortable seat and a few hours to spare, it's a vaguely worthwhile pastime. Unlike other renditions of the myth, this film draws its impetus from political machinations, and lets go of the story's usual plebian roots. Surprisingly, this is actually a good decision, as it provides not only a novel context for the story, but also broader relevance.
Russell Crowe plays his typical alpha male with a softer side, only this time with a funny accent. This novelty is complemented by extremely modern dialogue; making the film in many ways a counterpoint to films of Shakespeare's plays that place sixteenth century dialogue in a modern setting. This is the opposite; playing twenty-first century dialogue in a twelfth century setting, with the added irony of a post-colonial actor playing the Old Country's chief hero. My strange little mind would like to have heard Crowe's cultivated Australian accent placed into the context to see what other meanings could be derived, but of course that wouldn't do so well at the box office, would it?
And the box office is what this film is made for. It is formulaic, rudimentary and appeals to the same values as every other film about underdogs made in the last couple of decades. It does absolutely nothing to distinguish itself from that genre, and sits somewhere in the middle of Ridley Scott's very palatable aesthetic.
Of more note than this film is the venue I saw it in. Perth's Picadilly Cinema is a quaint venue, reminiscent of Canberra's Electric Shadows. That's all well and good, but this film needs chairs with a higher back and a clearer view of the screen. I came out with a sore neck and tired knees. Every city, especially Australia's western mecca deserves a Dendy or a Limelight.
A good film, but a bit meh.


Was invited to Fu Lin Men few weeks back, located at Jurong Country Club. I almost had to cancel due to some last minute issues at work but I'm glad I finally made it in the end!
We were all treated to a wonderful feast and I was so satisfied at the end of the night! Here are some of the highlights.
The sharkfin soup was my favourite that night. A generous serving of sharkfin in thick and rich soup, very much to my liking! The soup is prepared slightly differently from most restaurants, with pumpkin and carrot in its superior stock. The flavors together resulted in a tasty combination, without any starchy taste at all!
Unlike the usual communal style for Chinese dinners, the plating of each dish in the "Four Heavenly Kings" menu is individual, and very prettily styled!
We all had different sets from the Heavenly Kings Menu recommended by the restaurant, and bf got the one with this cod dish and I looked on with so much envy! He gave me one small slice before realizing it's so yummy that he refused to give me anymore. Hahaha. The fish is fresh and melts in the mouth, exactly how cod fish should be served. After my first bite, I kept looking at his fish until he gave me another small slice.
Fu Lin Men is a Chinese fine dining restaurant where award-winning Executive Chef Roy Tan takes fine Chinese cuisine to new heights with his masterful interpretations of the "Four Heavenly Kings" – abalone, sharks-fin, sea cucumber and maw.
Hence, you can be assured of quality dishes served here.
Who can resist crispy pork belly?
The feast ended on a sweet note with the desserts. The mango sago with abundant fresh mango cubes inside, had just the right sweetness. The hawthorn pudding is a refreshing and unique dessert that tasted like our favourite childhood snack - haw flakes.
I checked out the prices for their set menu and they are all very affordable and reasonable. I think it's awesome for family dinners. It's a pity I live right at the other end of Singapore!
If you come on a weekend night, be prepared to wait, as this place will be crowded. I had the crab cake here – which was quite fantastic. Seriously - if you haven't been to Boston restaurants, you need to go right now.


Mr. Javaid Jehangir took oath as 20th Auditor General of Pakistan on August 17, 2017 after serving in Pakistan Audit and Accounts Service for more than thirty five years in various positions including Accounting, Auditing & Financial Management. During his professional career he has been associated with Public Sector Auditing, Public Financial Management, Policy Formulation, Management & Implementation of Policies & Reforms, Strengthening Governance & Accountability, Change Management & Capacity Building.
He hails from 9th Common of Central Superior Services of Pakistan with considerable experience in international auditing including interaction with international development donors like World Bank, Asian Development Bank, USAID & JICA.
During his professional career, spanning at three decades, he conducted various national and international field audit assignments including performance audit of planning wing of Southern African Development Community Secretariat Botswana as co-opted member of Board of Auditors of SADC, special audit of Hajj Directorate Jeddah, Saudi Arabia and various audits of Pakistan Foreign Missions abroad. In addition to this, he has also delivered training programmes In Pakistan, Lesotho, Uganda, Saudi Arabia, UAE & South Africa AFROSAI (E).
He has also produced more than three dozen Audit Reports including Performance Audit Reports, Financial Audit Reports and Audit Reports for Foreign Aided Projects in Power & Energy Sector, Renewable Energy Development Sector, Irrigated Agriculture Development Sector, Canal Improvement Project, Flood Emergency & Reconstruction Project, Highway Development Sector Investment Program & Sindh Cities Improvement Investment Program.
Besides holding the constitutional post of Auditor-General of SAI (Supreme Audit Institution) Pakistan, he is Secretary General of ECOSAI (Economic Cooperation Organization Supreme Audit Institutions) while at national level he has undertaken a number of wide-ranging reforms to make Pakistan Audit Department a model Supreme Audit Institution at par with international standards of performance.
He has done Master of Arts in English Literature from Forman Christian College, Lahore and International Auditor Fellowship Programme from US General Accountability Office Washington DC, USA.


text:
Escape From Tarkov has three kinds of currencies
Hongmeiao Xue
Mistake 260 for the most part springs up when you experience difficulty interfacing with the validation servers for the game. It generally happens after fix refreshes when an enormous number of players is attempting to sign in www.lolga.com. Shockingly, there isn't a lot of you can do, as indicated by designers' tweet "We are taking a shot at settling this issue".
There have been numerous reports of individuals losing money, some of the time up to 10 million rubles one after another EFT Roubles. There's very little to be done about this. In the event that you have the occurrence caught on record, you can contact backing and expectation they'll repay you. Else you'll simply need to acknowledge the misfortune.
EFT_Roubles
Totally elated with Pratap 's performance today, Bangalore based Escort provider is a...
By Skokkaa Escorts 2021-11-07 12:59:18 0 65
Enjoy the Benefits of Doggy Daycare and Soft Tissue Injury Treatment
Being a leading clinic in Kamloops, Tranquille Vet Animal Hospital is proud of offering the...
By TranquilleRoad AnimalHospital 2021-11-08 11:11:42 0 55
Will the Hajj Commence In the Year 2022 or Not?
Hajj is the most sacred act and one of the pillars of Islam. There is a specific time of Hajj...
By Abdullah Saif 2021-11-23 15:09:33 0 43
What benefits come with the Off Grid and Solar battery system for home?
Solar power benefits the environment but also the individual. Therefore, you need to select best...
By Maryan Nmyers 2022-01-11 06:32:37 0 27
What are the certain things which you should know while replacing parts of your IPhone?
Let us all face it: repairing a non-functional apple iphone can anytime be the most challenging...
By Kabir Cory 2021-02-23 09:43:10 0 125


text:
Q: Firebase signInWithEmailAndPassword gives "com.google.firebase.auth not found" I am using firebase as baackend for my android studio. And also fallowed eatch and every step provided by firebase console. I created 3 Activity's

*

*MainActivity

*LoginActivity

*RigisterActivity

I am able to register the user successfully but when i try to login user with email and password task is not getting successful. below is my code
Android monitor is giving the following error

W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.

Login Activity
  private EditText mLoginEmailField;
    private EditText mloginPassField;

    private Button mLoginbtn;
    private Button mNewAccountbtn;

    private DatabaseReference mDatabaseRefrence;

    private FirebaseAuth mAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        mAuth = FirebaseAuth.getInstance();
        mLoginEmailField = (EditText) findViewById(R.id.loginEmailField);
        mloginPassField = (EditText) findViewById(R.id.loginPasswordField);

        mLoginbtn = (Button) findViewById(R.id.loginBtn);
        mNewAccountbtn = (Button) findViewById(R.id.newAccountbtn);
        mDatabaseRefrence = FirebaseDatabase.getInstance().getReference().child("Users");

        mNewAccountbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent rigisterIntent = new Intent(LoginActivity.this,RegisterActivity.class);
                rigisterIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(rigisterIntent);
            }
        });

        mLoginbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                CheckLogin();
            }
        });
    }

    private void CheckLogin() {

        String email = mloginPassField.getText().toString().trim();
        String pass = mloginPassField.getText().toString().trim();

        if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(pass)){

            mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {

                    if(task.isSuccessful()){

                        CheackUserExsists();

                    }else{

                        Toast.makeText(LoginActivity.this,"Erorr Login",Toast.LENGTH_LONG).show();

                    }
                }
            });

        }

    }

    private void CheackUserExsists() {

        final String user_id = mAuth.getCurrentUser().getUid();
        mDatabaseRefrence.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if(dataSnapshot.hasChild(user_id)){

                    Intent MainIntent = new Intent(LoginActivity.this,MainActivity.class);
                    MainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(MainIntent);
                }else
                {

                    Toast.makeText(LoginActivity.this,"You need to setup your Account.. ",Toast.LENGTH_LONG).show();
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }

                @

A: Modify your onComplete() method to log the reason for sign-in failure:
    mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if(task.isSuccessful()){
                CheackUserExsists();
            }else{
                Log.e(TAG, "Sign-in Failed: " + task.getException().getMessage());
                // Or if you don't use Log:
                // System.out.println("Sign-in Failed: " + task.getException().getMessage());
                Toast.makeText(LoginActivity.this,"Erorr Login",Toast.LENGTH_LONG).show();
            }
        }
    });

The possible reasons for failure are:

*

*The email address is malformed

*Sign-in by email/password is disabled

*The user account corresponding to the email does not exist or has been deleted

*The user account corresponding to the email has been disabled

*The password is wrong

*The user's token is not valid

The warning message about

Local module descriptor class for com.google.firebase.auth not found.

is not significant and is not the reason for the sign-in failure.

A: The error is caused android did not find  the dependency for firebase auth. Go to the gradle.build file of the app and insert the dependency. e.g
dependencies {
...
         implementation 'com.google.firebase:firebase-auth:x.x.x'

}

instead of x.x.x add the the version that you need.
For more information go to this resource: https://firebase.google.com/docs/auth/android/password-auth.

redpajama_set_name: RedPajamaStackExchange


Dora Lewis could be living in Hilham, Crossville, Knoxville or 15 other places in Tennessee.
Possible Associates Dora Lewis could have been associated with Desiree Melissa Roach.
Possible Associates Dora C Lewis could have been associated with Angela K Cantrell, Denton T Cole, Philip Carlen Cole, Thomas Denton Cole, Virginia Dare Cole, and Roger Allan Woods.
Possible Associates Dora J Lewis could have been associated with Sheila Ann Lewis-Conder.
Knoxville, Sevierville, and Talbott, TN.
Lived in Sevierville and Pigeon Forge, TN.
Possible Associates Dora M Lewis could have been associated with Deborah Lynn Arp and Starnes Bill.
Lived in Hixson, Ashland City, Chattanooga, and Nashville, TN.
Possible Associates Wilma Lewis could have been associated with Johnna Zoran Bradshaw, Jennifer Melissa Bridges, Wilma Rebecca Carson, Teresida Dawn Griffin, Deborah Lynn Peterson, and Doretta Michelle Plant.


When it comes to basement waterproofing, it is important to reach out to an professional who has the right quantity of encounter in the area. The consultant ought to have extensive encounter about elements of repair and preservation of all types of home. He should be in a position to guidance the client on moist issues and damp proofing options. Other locations in which he should have understanding are the facets of timber preservation and wall stabilisation.
The major source of damp proofing is the damp on walls. This allows drinking water to increase up from the ground and into the partitions of the developing exactly where it can cause drinking water damage. The water alongside with the salts that are hydroscopic means they entice water. The salt nonetheless draws in dampness from the air in to the walls, keeping the walls moist. This damp stays in the walls of a home and mold and fungus will begin to grow and can trigger well being issues. There can be structural harm in the moist partitions.
You ought to start from inspecting the seals between the body and a wall. These seals ought to be well intact and firm. Inspect them closely as they might sustain some harm more than time. Appear for any cracks or small openings develop over a time in the frames or wall. These holes and cracks ought to be refilled with wall filler. If you discover big cracks, rake them back again and refilled. As much as home windows are worried; check the drip channel in the sill for any clogging. If it is blocked or clogged eliminate the clogging.
Stainless metal garments airers arrive in numerous shapes and sizes. There are lengthy narrow variations that tuck out of the way when not becoming utilized. Garments airers that hang from the ceiling, clothes airers that heat up and retractable clothes airers, to title a couple of.
Overall verify: Lastly, make sure you do a thorough common check of everything. This consists of tuning on and off everything you can. Make sure that all the lights are working, both within and outdoors. Open up every cupboard and locker, verify all electric items and the electrical shops. Are the electrical outlets situated in wise conditions and is there sufficient of them? Open every doorway, each vent, each window and panel, each inside and out.
Mortar buildup on the surface of the sill can also be responsible for water penetration as it tasks the water into the cavity due to the mortar lodge.
The ability of inspections and moisture meter readings is a science of interpretation, so encounter by the contractor is in these fields are important. Only select a house builder and termite inspector who can show proof of their qualifications and encounter.


text:
Jabuka Adapts for Hybrid and Homeschool Edu-tainment
October 14, 2020 (PRLEAP.COM) Education News
School isn't exactly the same this year. So, while innovative teaching methods become the norm, why shouldn't a twisted letter game become a home school goto?
"Well, we were looking to build the 'buzz' about our new word game, but we hadn't really intended for Jabuka to become a school supply," quipped Martin Russocki, inventor of JABUKA. "Certainly, Jabuka can be used that way. The creative aspect of Jabuka makes it ideal for spelling, vocabulary and creative thinking."
So, what's all the buzz about?
JABUKA, (MSRP $19.95 for 2-4 players ages 8+), is a new rotating letter word game with a coffee theme. "We had to change our strategy from slow-build specialty retail to a fast-paced direct-to-consumer demand," Russocki said. "Maybe it's because Jabuka can be played anywhere anytime by multiple age ranges. It isn't like Scrabble or Bananagrams, because, in its own way, Jabuka has its own alphabet and kids are getting a big kick out of that."
Learn to Speak Jabuka
The idea for JABUKA started in a coffee shop, when Russocki was fiddling with a coffee bean on the table. He looked around at the digitally detached people typing phonetic abbreviated texts. Pondering the deterioration of language skills, he scribbled his initial "M" on the coffee bean and spun it around. The "M" magically morphed into a "W" and then into an "E". Russocki immediately began to invent a multipurpose new alphabet. Because the coffee bean was a good fit to spin the letters, the theme stuck. No more boring square tiles, no turn-taking, and no board needed. JABUKA arrives in a sack as a fast, portable game with simple scoring. Players spill the beans and start a battle of words (official rules at www.jabukagames.com). The clever word scrambles and added letters are endless when:
"c" is "u" and/or "n"
"r" can be "j";
"t" is also "x";
About Jabuka Games, Inc.
Based in Toronto, Ontario, Jabuka Games Inc. is a start-up game designer and marketer of new and original games. Its premier product is a game of the same name: JABUKA, a coffee themed word game. If its first product is any indication of its future, Jabuka Games is destined to be a very successful entry into the toy and game industry. JABUKA has already received overwhelmingly positive response, recognized with four major awards for excellence in quality, design, educational and entertainment value, originality, and appeal. In the short time since its debut at the New York Toy Fair, JABUKA has sold over 60,000 games worldwide. It's available at Indigo locations across Canada, over 300 stores in the U.S., and online everywhere For additional information, visit www.jabukagames.com and interact with the company on Facebook, Instagram, Twitter and YouTube.
Jabuka Games, Inc.
Email Jabuka Games, Inc.
Follow @JabukaGames


Is Wind Damage Really Covered by Insurance?
Just like hail damage or if a tree hit your roof, wind damage is not only covered by your insurance company but it will not cause your premiums to rise. This is due to the fact that these types of claims are considered to be an "Act of God," meaning the homeowner is not at fault. If your son accidentally left the sink running and it floods the upstairs bathroom, that is a preventable claim. With wind damage, there is nothing a homeowner could have done to be more proactive or prevent damage from occurring. Why pay out-of-pocket when you already pay for your insurance?
Wind damage often looks unassuming. After all, how hard can it be to nail back one or two shingles or refasten a piece of siding? The truth is, the cost of even a minor repair can be expensive, typically costing anywhere from $800-$2k depending. You want to be sure to use a properly licensed, insured and experienced contractor and you always get what you pay for. You could cost yourself more in the long run by cutting corners or working with the wrong contractor just to save a few bucks.
Even more to consider, roofs most susceptible to wind damage are older ones with 3-tab shingles. These roofs do not hold repairs and patches well as they are just older and weaker. The money you spend on repairs every year will far outweigh the cost of your deductible, which you would only pay once and have peace of mind for the next 25-years (50-years if you upgrade to an HD shingle).
It seems silly to keep repairing something when for the same amount of money you could completely replace your roof. This is the most economical option long-term and truly the smartest. Wind damage is not something to underestimate. Unsure if you have damage? Considering filing an insurance claim? Contact us or give us a call at 410-569-1732. We are happy to explain the insurance process or give you our professional opinion!


text:
namespace :slices do
  namespace :"merb-auth-slice-password" do

    desc "Install MerbAuthSlicePassword"
    task :install => [:preflight, :setup_directories, :copy_assets, :migrate]

    desc "Test for any dependencies"
    task :preflight do # see slicetasks.rb
    end

    desc "Setup directories"
    task :setup_directories do
      puts "Creating directories for host application"
      MerbAuthSlicePassword.mirrored_components.each do |type|
        if File.directory?(MerbAuthSlicePassword.dir_for(type))
          if !File.directory?(dst_path = MerbAuthSlicePassword.app_dir_for(type))
            relative_path = dst_path.relative_path_from(Merb.root)
            puts "- creating directory :#{type} #{File.basename(Merb.root) / relative_path}"
            mkdir_p(dst_path)
          end
        end
      end
    end

    desc "Copy stub files to host application"
    task :stubs do
      puts "Copying stubs for MerbAuthSlicePassword - resolves any collisions"
      copied, preserved = MerbAuthSlicePassword.mirror_stubs!
      puts "- no files to copy" if copied.empty? && preserved.empty?
      copied.each { |f| puts "- copied #{f}" }
      preserved.each { |f| puts "! preserved override as #{f}" }
    end

    desc "Copy stub files and views to host application"
    task :patch => [ "stubs", "freeze:views" ]

    desc "Copy public assets to host application"
    task :copy_assets do
      puts "Copying assets for MerbAuthSlicePassword - resolves any collisions"
      copied, preserved = MerbAuthSlicePassword.mirror_public!
      puts "- no files to copy" if copied.empty? && preserved.empty?
      copied.each { |f| puts "- copied #{f}" }
      preserved.each { |f| puts "! preserved override as #{f}" }
    end

    desc "Migrate the database"
    task :migrate do # see slicetasks.rb
    end

    desc "Freeze MerbAuthSlicePassword into your app (only merb-auth-slice-password/app)"
    task :freeze => [ "freeze:app" ]

    namespace :freeze do

      desc "Freezes MerbAuthSlicePassword by installing the gem into application/gems using merb-freezer"
      task :gem do
        begin
          Object.const_get(:Freezer).freeze(ENV["GEM"] || "merb-auth-slice-password", ENV["UPDATE"], ENV["MODE"] || 'rubygems')
        rescue NameError
          puts "! dependency 'merb-freezer' missing"
        end
      end

      desc "Freezes MerbAuthSlicePassword by copying all files from merb-auth-slice-password/app to your application"
      task :app do
        puts "Copying all merb-auth-slice-password/app files to your application - resolves any collisions"
        copied, preserved = MerbAuthSlicePassword.mirror_app!
        puts "- no files to copy" if copied.empty? && preserved.empty?
        copied.each { |f| puts "- copied #{f}" }
        preserved.each { |f| puts "! preserved override as #{f}" }
      end

      desc "Freeze all views into your application for easy modification"
      task :views do
        puts "Copying all view templates to your application - resolves any collisions"
        copied, preserved = MerbAuthSlicePassword.mirror_files_for :view
        puts "- no files to copy" if copied.empty? && preserved.empty?
        copied.each { |f| puts "- copied #{f}" }
        preserved.each { |f| puts "! preserved override as #{f}" }
      end

      desc "Freeze all models into your application for easy modification"
      task :models do
        puts "Copying all models to your application - resolves any collisions"
        copied, preserved = MerbAuthSlicePassword.mirror_files_for :model
        puts "- no files to copy" if copied.empty? && preserved.empty?
        copied.each { |f| puts "- copied #{f}" }
        preserved.each { |f| puts "! preserved override as #{f}" }
      end

      desc "Freezes MerbAuthSlicePassword as a gem and copies over merb-auth-slice-password/app"
      task :app_with_gem => [:gem, :app]

      desc "Freezes MerbAuthSlicePassword by unpacking all files into your application"
      task :unpack do
        puts "Unpacking MerbAuthSlicePassword files to your application - resolves any collisions"
        copied, preserved = MerbAuthSlicePassword.unpack_slice!
        puts "- no files to copy" if copied.empty? && preserved.empty?
        copied.each { |f| puts "- copied #{f}" }
        preserved.each { |f| puts "! preserved override as #{f}" }
      end

    end

  end
end

redpajama_set_name: RedPajamaGithub


For those of you who love fruity flavours in their vape juice, Blueberry e liquid is a treat for sure! This Blueberry flavoured e-liquid is a classic fruit-flavour that never disappoints you while vaping! Think about some fresh hand-picked blueberries for making this vape juice! Well, that's what you taste once you've had our best Blueberry Blast vape juice!