text:
static NSString * const keyBoardManagerOberverKeyPath = @"status";

@interface YCFTextView ()
//@property(nonatomic, weak) id<YCFTextViewDelegate> delegate_;
// 容器view的原始frame
@property(nonatomic, assign) CGRect contentViewOriginalFrame;
@property(nonatomic, assign) CGRect oriFrame;
@property(nonatomic, assign) CGFloat lastTextRectHeight;
// 容器view是scrollView时的原始offset
@property(nonatomic, assign) CGPoint contentScrollViewOriginalOffset;
@property(nonatomic, assign) CGPoint afterMovedContentOffset;
@property(nonatomic, assign) BOOL hasCachedOri;

// 判断容器view是否是scrollView或者其子类
@property(nonatomic, assign) BOOL contentViewIsScrollViewClass;

// 一些标记,控制执行次数
@property(nonatomic, assign) BOOL markForIsSettingOri;
@property(nonatomic, assign) BOOL markForFrameChange;

@property(nonatomic, assign) BOOL isEditing;
@property(nonatomic, assign) BOOL keyBoardIsShow;
@property(nonatomic, assign) BOOL hasMatchingKeyBoard;

@property(nonatomic, strong) UILabel *placeHolder;

@property(nonatomic, weak) YCFKeyBoardManager *manager;

@property(nonatomic, strong) UILabel *textLenghtLabel;
@property(nonatomic, assign) NSInteger textLengthLimit;
@end

@implementation YCFTextView

@synthesize containerView = _containerView;
@dynamic delegate;

- (instancetype)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame])
    {
        //will show -> didBeginEditing -> did show
        //will hide -> didEndEditing -> did hide
        [self.manager addObserver:self forKeyPath:keyBoardManagerOberverKeyPath options:NSKeyValueObservingOptionNew |NSKeyValueObservingOptionOld context:nil];

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewDidBeginEditing) name:UITextViewTextDidBeginEditingNotification object:self];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewDidChange) name:UITextViewTextDidChangeNotification object:self];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewDidEndEditing) name:UITextViewTextDidEndEditingNotification object:nil];
    }
    return self;
}

- (void)dealloc
{
    [self.manager removeObserver:self forKeyPath:keyBoardManagerOberverKeyPath];
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)layoutSubviews
{
    [super layoutSubviews];
    [self p_addTextLenghtLabel];
    [self setContentOffset:CGPointMake(0, self.contentSize.height - self.frame.size.height + self.contentInset.bottom) animated:NO];
}

- (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary<NSString*, id> *)change context:(nullable void *)context
{
    if ([keyPath isEqualToString:keyBoardManagerOberverKeyPath])
    {
        switch ([YCFKeyBoardManager shareInstance].status)
        {
            case YCFKeyBoardStatusWillShow:
                self.keyBoardIsShow = YES;
                break;
            case YCFKeyBoardStatusDidShow:

                break;
            case YCFKeyBoardStatusWillHide:
                self.keyBoardIsShow = NO;
                [self p_dealWithKeyBoardHide];
                break;
            case YCFKeyBoardStatusDidHide:
                break;
            default:
                break;
        }
    }
}

- (void)textViewDidBeginEditing
{
    self.isEditing = YES;
    self.manager.curEditView = self;
    self.lastTextRectHeight = [self p_getTextRect].size.height;
    [self p_dealWithKeyBoardShow];
}
- (void)textViewDidChange
{
    [self p_dealWithTextLengthLabel];

    [self p_dealWithPlaceHolder];

    if (!self.isNeedAdjustHeight)
    {
        return;
    }

    CGFloat oriTextRectHeight = self.lastTextRectHeight;
    CGFloat newTextRectHeight = [self p_getFixtedSize:self.frame.size.width].height - self.textContainerInset.bottom;

//    相同行,由text计算所得的newHeight跟原来oriHeight有少许出入,设立设置个2的公差范围,高度差大于2则更新高度
    if (ABS(oriTextRectHeight - newTextRectHeight) > 2)
    {
        CGFloat delta = newTextRectHeight - oriTextRectHeight;

        if (self.adjustMaxHeight && self.frame.size.height >= self.adjustMaxHeight && delta > 0)
        {
            delta = 0;
        }
        if (self.adjustMinHeight && self.frame.size.height <= self.adjustMinHeight && delta < 0)
        {
            delta = 0;
        }
        CGRect frame = self.frame;
        if (newTextRectHeight + self.lengthLabelPadding.top + _textLenghtLabel.frame.size.height + self.lengthLabelPadding.bottom > self.frame.size.height || delta < 0)
        {
            frame.size.height += delta;
            if (self.adjustMaxHeight && frame.size.height > self.adjustMaxHeight)
            {
                frame.size.height = self.adjustMaxHeight;
                delta = self.adjustMaxHeight - oriTextRectHeight;
            }
            if (frame.size.height < self.adjustMinHeight)
            {
                frame.size.height = self.adjustMinHeight;
                delta = frame.size.height - oriTextRectHeight;
            }
        }

        dispatch_async(dispatch_get_main_queue(), ^{
            if (self.frame.size.height != self.oriFrame.size.height)
            {
                if ([self.delegate respondsToSelector:@selector(textView:willChangeToHeight:oriHeight:)])
                {
                    [self.delegate textView:self willChangeToHeight:frame.size.height oriHeight:self.oriFrame.size.height];
                }
            }
        });

        [self p_dealWithTextViewFrameChange:delta newFrame:frame];
        self.lastTextRectHeight = [self p_getTextRect].size.height;

        dispatch_async(dispatch_get_main_queue(), ^{
            if (self.frame.size.height != self.oriFrame.size.height)
            {
                if ([self.delegate respondsToSelector:@selector(textView:didChangeToHeight:oriHeight:keyBoardIsResign:)])
                {
                    [self.delegate textView:self didChangeToHeight:frame.size.height oriHeight:self.oriFrame.size.height keyBoardIsResign:NO];
                }
            }
        });

    }
}
- (void)textViewDidEndEditing
{
    if (self.keyBoardIsShow == NO)
    {
        self.isEditing = NO;
    }
}

#pragma mark - private methods

- (void)p_dealWithKeyBoardShow
{
    // 转换到window上的y值
    CGFloat selfComparativelyWindowY = 0.0;
    // 容器为scrollView时, 用这个
    UIScrollView *selfContentScrollView;

    if (self.contentViewIsScrollViewClass)
    {
        selfContentScrollView = (UIScrollView *)self.containerView;
        CGPoint contentViewComparativelyWindowP = [selfContentScrollView convertPoint:selfContentScrollView.bounds.origin toView:nil];
        CGPoint selfComparativelyScrollViewP = [self convertPoint:self.bounds.origin toView:selfContentScrollView];
        selfComparativelyWindowY = selfComparativelyScrollViewP.y + CGRectGetHeight([self p_getTextRect]) - (selfContentScrollView.contentOffset.y) + contentViewComparativelyWindowP.y;
    }
    else
    {
        CGPoint contentViewComparativelyWindowP = [self.containerView convertPoint:self.containerView.bounds.origin toView:nil];
        selfComparativelyWindowY = self.frame.origin.y + CGRectGetHeight([self p_getTextRect]) + contentViewComparativelyWindowP.y;
    }

    // 记录原始位置, 该方法可能多次执行, 只记录初始位置
    if (self.hasCachedOri == NO)
    {
        [self p_cacheOriginalLocation];
        self.hasCachedOri = YES;
    }

    if (selfComparativelyWindowY <= self.manager.keyBoardFrame.origin.y)
    {
        return;
    }

    CGFloat offsetY = selfComparativelyWindowY - self.manager.keyBoardFrame.origin.y + self.manager.distanceWithKeyBoard;

    if (self.contentViewIsScrollViewClass)
    {
        CGPoint offset = selfContentScrollView.contentOffset;
        offset.y += offsetY;
        [UIView animateWithDuration:self.manager.keyBoardDuration delay:0.0 options:self.manager.keyBoardAnimationOptions animations:^{
            [selfContentScrollView setContentOffset:offset];
        } completion:^(BOOL finished) {
            self.afterMovedContentOffset = selfContentScrollView.contentOffset;
            self.hasMatchingKeyBoard = YES;
        }];
    }
    else
    {
        [UIView animateWithDuration:self.manager.keyBoardDuration delay:0.0 options:self.manager.keyBoardAnimationOptions animations:^{
            CGRect rect = self.containerView.frame;
            rect.origin.y -= offsetY;
            self.containerView.frame = rect;
        } completion:^(BOOL finished) {
            self.hasMatchingKeyBoard = YES;
        }];
    }
}

- (void)p_dealWithKeyBoardHide
{
    //只处理编辑过的
    if (self.isEditing)
    {
        if (![self p_hasBeenMovedWhenKeyBoardIsShow])
        {
            if (self.contentViewIsScrollViewClass)
            {
                [UIView animateWithDuration:self.manager.keyBoardDuration delay:0.0 options:self.manager.keyBoardAnimationOptions animations:^{

                    UIScrollView *selfContentScrollView = (UIScrollView *)self.containerView;
                    [selfContentScrollView setContentOffset:self.contentScrollViewOriginalOffset];
                } completion:nil];
            }
            else
            {
                [UIView animateWithDuration:self.manager.keyBoardDuration delay:0.0 options:self.manager.keyBoardAnimationOptions animations:^{

                    self.containerView.frame = self.contentViewOriginalFrame;
                } completion:nil];
            }
        }

        dispatch_async(dispatch_get_main_queue(), ^{
            if (self.frame.size.height != self.oriFrame.size.height)
            {
                if ([self.delegate respondsToSelector:@selector(textView:didChangeToHeight:oriHeight:keyBoardIsResign:)])
                {
                    [self.delegate textView:self didChangeToHeight:self.frame.size.height oriHeight:self.oriFrame.size.height keyBoardIsResign:YES];
                }
            }
        });

        //复位一些标记
        self.markForIsSettingOri = NO;
        self.hasCachedOri = NO;
        self.markForFrameChange = NO;
        self.hasMatchingKeyBoard = NO;
    }
}

- (BOOL)p_hasBeenMovedWhenKeyBoardIsShow
{
    if (self.contentViewIsScrollViewClass)
    {
        //如果在键盘弹起的时候, 用户滚动了界面,退出键盘就不在处理复位, 这样体验好点
        UIScrollView *selfContentScrollView = (UIScrollView *)self.containerView;
        if (self.afterMovedContentOffset.x == selfContentScrollView.contentOffset.x && self.afterMovedContentOffset.y == selfContentScrollView.contentOffset.y)
        {
            return NO;
        }
        if (self.markForFrameChange)//适应文本框大下不算滚动过
        {
            return NO;
        }
    }
    else
    {
        return NO;
    }
    return YES;
}

- (void)p_cacheOriginalLocation
{
    if (self.markForIsSettingOri)
    {
        return;
    }

    self.oriFrame = self.frame;

    if (self.contentViewIsScrollViewClass)
    {
        UIScrollView *selfContentScrollView = (UIScrollView *)self.containerView;
        self.contentScrollViewOriginalOffset = selfContentScrollView.contentOffset;
    }
    else
    {
        self.contentViewOriginalFrame = self.containerView.frame;
    }
    self.markForIsSettingOri = YES;
}

- (void)p_dealWithPlaceHolder
{
    if (_placeHolder)
    {
        if (self.text && self.text.length > 0)
        {
            self.placeHolder.hidden = YES;
        }
        else
        {
            self.placeHolder.hidden = NO;
        }
    }
}

- (void)p_dealWithTextViewFrameChange:(CGFloat)delta newFrame:(CGRect)newFrame
{
    self.markForFrameChange = YES;

    CGFloat selfComparativelyWindowY = 0.0;
    // 容器为scrollView时, 用这个
    UIScrollView *selfContentScrollView;

    if (self.contentViewIsScrollViewClass)
    {
        selfContentScrollView = (UIScrollView *)self.containerView;
        CGPoint contentViewComparativelyWindowP = [selfContentScrollView convertPoint:selfContentScrollView.bounds.origin toView:nil];
        CGPoint selfComparativelyScrollViewP = [self convertPoint:self.bounds.origin toView:selfContentScrollView];
        selfComparativelyWindowY = selfComparativelyScrollViewP.y + CGRectGetHeight([self p_getTextRect]) - (selfContentScrollView.contentOffset.y) + contentViewComparativelyWindowP.y;
    }
    else
    {
        CGPoint contentViewComparativelyWindowP = [self.containerView convertPoint:self.containerView.bounds.origin toView:nil];
        selfComparativelyWindowY = self.frame.origin.y + CGRectGetHeight([self p_getTextRect]) + contentViewComparativelyWindowP.y;
    }

    if (selfComparativelyWindowY <= self.manager.keyBoardFrame.origin.y && !self.hasMatchingKeyBoard)
    {
        self.frame = newFrame;
        return;
    }

    if (self.contentViewIsScrollViewClass)
    {
        CGPoint offset = selfContentScrollView.contentOffset;
        offset.y += delta;
        [UIView animateWithDuration:0.1 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
            [selfContentScrollView setContentOffset:offset];
            self.frame = newFrame;
        } completion:^(BOOL finished) {
            self.afterMovedContentOffset = selfContentScrollView.contentOffset;
        }];
    }
    else
    {
        [UIView animateWithDuration:0.1 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
            self.frame = newFrame;
            CGRect rect = self.containerView.frame;
            rect.origin.y -= delta;
            self.containerView.frame = rect;
        } completion:nil];
    }

}

- (CGSize)p_getFixtedSize:(CGFloat)maxWidth
{
    CGFloat maxTextWidth = maxWidth - self.textContainer.lineFragmentPadding * 2 - self.textContainerInset.left - self.textContainerInset.right;

    NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
    if (self.attributedText && self.attributedText.length > 0)
    {
        NSRange range = NSMakeRange(0, self.attributedText.length);
        NSRangePointer rangePointer = ⦥
        attributes = [NSMutableDictionary dictionaryWithDictionary:[self.attributedText attributesAtIndex:0 effectiveRange:rangePointer]];
    }
    else
    {
        attributes[NSFontAttributeName] = self.font;
        attributes[NSForegroundColorAttributeName] = self.textColor;
    }
    CGSize textSize = [self.text boundingRectWithSize:CGSizeMake(maxTextWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attributes context:nil].size;
    //当textViewcopy文本的时候,用sizeThatFits, 由于他会自己预先布局导致显示不准确, 不过boundingRectWithSize计算的高度某些情况也不准确
    //    CGFloat textHeight = [self sizeThatFits:CGSizeMake(maxWidth, MAXFLOAT)].height;
    CGFloat newHeight = textSize.height + self.textContainerInset.top + self.textContainerInset.bottom;
    CGFloat newWidth = textSize.width + self.textContainerInset.left + self.textContainerInset.right + self.textContainer.lineFragmentPadding * 2;
    return CGSizeMake(newWidth, newHeight);
}

- (CGRect)p_getTextRect
{
    CGSize newSize = [self p_getFixtedSize:self.frame.size.width];
    CGRect textRect = CGRectMake(0, 0, newSize.width, newSize.height - self.textContainerInset.bottom);
    if (textRect.size.height > self.frame.size.height)
    {
        textRect.size.height = self.frame.size.height;
    }
    return textRect;
}

- (void)p_addTextLenghtLabel
{
    if (!self.isShowTextLengthLabel)
    {
        return;
    }

    if (self.textLenghtLabel.superview)
    {
        CGRect frame = self.textLenghtLabel.frame;
        frame.size.width = self.frame.size.width - self.lengthLabelPadding.left - self.lengthLabelPadding.right;
        self.textLenghtLabel.frame = frame;
        return;
    }

    [self addSubview:self.textLenghtLabel];

    if (self.textLengthLimit)
    {
        self.textLenghtLabel.text = [NSString stringWithFormat:@"%zd/%zd", self.text.length, self.textLengthLimit];
    }
    else
    {
        self.textLenghtLabel.text = [NSString stringWithFormat:@"%zd", self.text.length];
    }

    UIEdgeInsets insets = self.contentInset;
    insets.bottom += self.textLenghtLabel.frame.size.height + self.lengthLabelPadding.top + self.lengthLabelPadding.bottom;
    self.contentInset = insets;

    CGFloat Y = self.contentSize.height < self.frame.size.height - self.textLenghtLabel.frame.size.height ? self.frame.size.height - self.textLenghtLabel.frame.size.height : self.contentSize.height;
    CGFloat width = self.frame.size.width - self.lengthLabelPadding.left - self.lengthLabelPadding.right;
    CGFloat height = self.textLenghtLabel.frame.size.height;

    self.textLenghtLabel.frame = CGRectMake(self.lengthLabelPadding.left, Y, width, height);

    CGRect rect = self.frame;
    rect.size.height += self.textLenghtLabel.frame.size.height + self.lengthLabelPadding.top + self.lengthLabelPadding.bottom;
    self.frame = rect;
}

- (void)p_dealWithTextLengthLabel
{
    if (self.textLengthLimit)
    {
        self.textLenghtLabel.text = [NSString stringWithFormat:@"%zd/%zd", self.text.length, self.textLengthLimit];
    }
    else
    {
        self.textLenghtLabel.text = [NSString stringWithFormat:@"%zd", self.text.length];
    }

    CGRect frame = self.textLenghtLabel.frame;
    frame.origin.y = self.contentSize.height < self.frame.size.height - self.textLenghtLabel.frame.size.height ? self.frame.size.height - self.textLenghtLabel.frame.size.height : self.contentSize.height;
    self.textLenghtLabel.frame = frame;

    if (self.textLengthLimit && self.text.length > self.textLengthLimit)
    {
        self.text = [self.text substringToIndex:self.textLengthLimit - 1];
        if ([self.delegate respondsToSelector:@selector(textView:didOverTextLength:)])
        {
            [self.delegate textView:self didOverTextLength:self.textLengthLimit];
        }
    }
}
#pragma mark - public methods
- (void)fitSizeWithMaxSize:(CGFloat)maxWidth
{
    CGSize fixedSize = [self p_getFixtedSize:maxWidth];
    CGRect rect = self.frame;
    rect.size.height = fixedSize.height;
    rect.size.width = fixedSize.width;
    self.frame = rect;
    [self p_addTextLenghtLabel];
}

#pragma mark - getter

- (YCFKeyBoardManager *)manager
{
    if (!_manager)
    {
        _manager = [YCFKeyBoardManager shareInstance];
    }
    return _manager;
}

- (UIView *)containerView
{
    if (!_containerView)
    {
        return self;
    }
    return _containerView;
}

- (UILabel *)placeHolder
{
    if (!_placeHolder)
    {
        _placeHolder = [[UILabel alloc] init];
        _placeHolder.font = self.font;

    }
    return _placeHolder;
}

#pragma mark - setter
- (void)setContainerView:(UIView *)containerView
{
    _containerView = containerView;
    if ([self.containerView isKindOfClass:[UIScrollView class]])
    {
        self.contentViewIsScrollViewClass = YES;
    }
    else
    {
        self.contentViewIsScrollViewClass = NO;
    }
}

- (void)setInputAttribute:(YCFInputAttribute *)inputAttribute
{
    _inputAttribute = inputAttribute;

    self.attributedText = inputAttribute.attributeText;
    if (inputAttribute.placeHolder && inputAttribute.placeHolder.length > 0)
    {
        self.placeHolder.attributedText = inputAttribute.attributePlaceHolder;
        [self addSubview:self.placeHolder];
        [self.placeHolder mas_makeConstraints:^(MASConstraintMaker *make) {
            __weak UIView *superView = self.placeHolder.superview;
            make.left.equalTo(superView).offset(self.textContainer.lineFragmentPadding + self.textContainerInset.left);
            make.top.equalTo(superView).offset(self.textContainerInset.top);
        }];
        if (inputAttribute.text && inputAttribute.text.length > 0)
        {
            self.placeHolder.hidden = YES;
        }
        else
        {
            self.placeHolder.hidden = NO;
        }
    }
    self.textLengthLimit = inputAttribute.textLimitCount;
    self.textLenghtLabel.font = inputAttribute.textFont;
}

- (void)setLineBreakMode:(NSLineBreakMode)lineBreakMode
{
    _lineBreakMode = lineBreakMode;
    self.textContainer.lineBreakMode = lineBreakMode;
}

- (void)setNumberOfLines:(NSInteger)numberOfLines
{
    _numberOfLines = numberOfLines;
    self.textContainer.maximumNumberOfLines = numberOfLines;
}

- (void)setTextInsets:(UIEdgeInsets)textInsets
{
    _textInsets = textInsets;
    self.textContainer.lineFragmentPadding = 0;
    self.textContainerInset = textInsets;
}

- (UILabel *)textLenghtLabel
{
    if (!_textLenghtLabel)
    {
        _textLenghtLabel = [[UILabel alloc] init];
        _textLenghtLabel.font = self.font;
        _textLenghtLabel.textAlignment = NSTextAlignmentRight;

        _textLenghtLabel.text = [NSString stringWithFormat:@"%zd", self.text.length];
        _textLenghtLabel.backgroundColor = [UIColor purpleColor];

        [_textLenghtLabel sizeToFit];
    }
    return _textLenghtLabel;
}

@end


Despite the volume of work on the role men play in marital fertility decisions, few attempts have been made to derive direct empirical estimates of the role patriarchy plays on men's fertility preference or dominance. A number of these studies have pegged the gendered difference in fertility preference as a pointer to relative dominance (e.g. Omondi-Odhiambo, 1997; Ezeh, 1991). The assumption of most of these studies is that this dominance is driven by patriarchal values, which with the 'help of religion and culture is able to maintain and regulate a woman's sexuality and reproduction and proscribed subordination to men' (Fortier, 1975). Yet relatively little studies have tried to derive direct estimate of patriarchy influence on men's reproductive behavior. In this paper, I employ structural equation model using the Uganda 1995\96 negotiating reproductive outcomes to examine the relation between patriarchy and men's reproductive behavior.


text:
RD.COM Culture
12 Everyday Items That Take the Longest to Decompose
Lela Nargi
We all know the damage plastic bags do to the environment, but these other seemingly items stay around long enough to wreak havoc, too.
Pam Walker/Shutterstock
Lots of municipalities have begun banning this common coffee cup and takeout container material. Comprised of a petroleum-based plastic called polystyrene foam, styrofoam takes a staggering one million years to come apart in the airless, lightless environment of the landfill. Even when it does get exposure to the sun and wind, it never really decomposes; instead, it breaks into bits that are often consumed by wildlife—tragic, because this is one of 15 well-established carcinogens for animals and humans
Dorti/Shutterstock
You know what else takes one million years to decompose? Glass bottles, according to the Environmental Protection Agency (EPA). Which is why, once again, recycling is such a critical choice. Additionally, the energy that's saved by making a new bottle from an old one—rather than from scratch—will power a 100-watt lightbulb for four hours. Make sure that in addition to knowing what you can recycle, you know what you shouldn't toss in the recycling bin either.
KOKTARO/Shutterstock
These incredibly handy storage items are just as horrible for the health of the earth as disposable grocery bags; they have a way of ending up in combined sewage overflows and traveling to rivers and oceans—and often into the bellies of seabirds and whales. If they're contained to landfill, they'll spend the next 500-1,000 years decomposing.
Billion Photos/Shutterstock
While not quite as durable as plastic bags, these ubiquitous bottles are still going to outlast you and everyone you know. On average, these bottles take at least 450 years to decompose, and they seem to be spending a lot of that time floating in our oceans and dispersing plastic particles that are sickening marine life and altering marine ecosystems. Do yourself and the fish a favor and recycle these bottles. Better yet, switch over to reusable water bottles.
FabrikaSimf/Shutterstock
Sure, a disposable plastic bottle takes up to 450 years to decompose in a landfill. But if you think you're saving the earth by choosing a beverage in a can instead, think again. Although aluminum is easily recyclable (and requires less energy to reform than to extract from the ground), plenty of cans still make their way into the trash and on to the municipal dump, where they can spend some 200 years breaking down. Don't miss these ways to recycle just about anything.
Huguette Roe/Shutterstock
All the toxic labeling on your ink cartridges may have clued you into the potential damage they can cause the ecosystem; they can leak harmful chemicals into the soil and groundwater, which is why it's wise to take advantage of store recycling programs common at office supply stores. Another reason: The cartridges take anywhere between 450 and 1,000 years to erode entirely.
Katarzyna Wojtasik/Shutterstock
Every year, Americans toss a staggering 20 billion diapers—both the kind used on infants and those for the elderly. They add up to 3.5 million tons of waste, according to the EPA. As if that weren't horrifying enough, this waste takes 500 years to decompose, during which time it releases toxic chemicals into the air we breathe and the water we drink; in the United States alone, 200,000 trees a year are chopped down just to make disposable diapers.
Tampons and sanitary pads
La corneja artesana/Shutterstock
The average woman uses 11,000 disposable tampons or sanitary pads in her lifetime, almost all of which incorporate plastic in some way. Tampons in their wrappers and in some cases, applicators; pads in their packaging as well as in their fabric. Needless to say, they take a long time to break down—about six months for tampons, 25 years for applicators (if they're not eaten by marine life first), and up to 800 years for pads. Luckily, there are a lot of eco-friendly alternatives currently on the market.
Rubber shoe soles
Vitezslav Halamka/Shutterstock
Rubber may come from milky white tree sap (a.k.a. latex), but once again, just because it's natural doesn't mean it reverts to its natural state quickly. In fact, the soles of your rubber boots and shoes will be in the landfill long after you've gone to the great beyond: It can take up to 80 years to break down.
Mykhailo Baidala/Shutterstock
AAA or 9V—no matter which power cells you use—every time you throw one into the trash you're contributing to the billions of batteries going to landfills every year in the United States alone. Once there, they take about 100 years to decompose, and that decomposition leaks toxic materials into the environment. This is which is why the EPA strongly urges battery recycling as well as the use of rechargeable batteries.
View Slides 11-12
I am a veteran journalist covering food & food policy, science, sustainability, books, and parenting for a wide variety of outlets including NPR, Civil Eats, Sierra, and Publishers Weekly.

redpajama_set_name: RedPajamaCommonCrawl


Note: HShare is not yet live for trading, but we would add it soon. Till then, sign up and explore seamless trading at Bitbns.
Signing Up on Bitbns website is free. Once personal information is entered, then by clicking on the account activation link, which would be sent to the email address indicated at the time of online registration, the account gets created.
using NEFT/RTGS/IMPS or UPI investors can send funds to their Bitbns account and begin purchasing HSR in no time.
Transfer of HSR from/into Bitbns account to other wallets takes only 10 minutes on the Bitbns platform.
Hshare and Hcash are hybrid crypto-currencies based on both blockchain and DAG technology. They have the particularity to use the proof of stake (PoS) as well as the proof of work (PoW). To guarantee the anonymity of transactions, they chose the Zero Knowledge Proof technique.
Finally, these tokens confer a voting right to investors who can thus give their opinion on the projects of the platform.
They have the particularity to use the proof of stake (PoS) as well as the proof of work (PoW). To guarantee the anonymity of transactions, the HShare team has chosen the Zero Knowledge Proof technique. Finally, these tokens confer a voting right to investors who can thus give their opinion on the projects of the platform.
BuyHatke registered in Bangalore in early 2013, has launched a unique crypto trading platform, Bitbns. So far Bitbns has an unblemished track record. Bitbns cryptocurrency exchange offers trading on multiple cryptocurrencies, With competitively less trading fees and investors receiving many rebates for their crypto purchases, Bitbns is definitely here to stay.


text:
Introducing Lockdown Rosiefest - much-loved South Shields music festival to take place online this summer
Bob Mortimer's best quotes: 45 of the Middlesbrough comedian's funniest jokes from Train Guy to Gone Fishing
Proms in the Park returns this weekend
Music fans can enjoy a whole host of classical performances at an open-air concert in South Shields this weekend.
Wednesday, 3rd July 2019, 1:09 pm
Updated Wednesday, 3rd July 2019, 4:56 pm
Proms in the Park always attracts a big crowd
Proms in the Park returns to Bents Park Sunday, as part of the South Tyneside Festival.
It will feature music from the South Tyneside Orchestra and guest soloist Sarah Fenwick, who is classically trained and studied at the Sage, Gateshead.
Coun Alan Kerr, lead member for culture and leisure at South Tyneside Council, said: "I always look forward to Proms in the Park and we have some very talented singers and musicians lined up.
"It is an excellent way to spend an afternoon on the coast and I cannot wait to hear the musical selection this year."
The show is free and takes place from 3:30pm to 5:30pm.
Proms in the Park is one of a number of events taking place in the park as part of the South Tyneside Festival.
On Saturday, the annual South Tyneside Festival Parade will take place, from South Shields Town Hall to The Bents Park.
Bbig stars will also take to the stage for the Sunday concert series – with Marti Pellow kicking off the shows on July 14, followed by the Lightning Seeds and Phats and Small on July 21, Midge Ure and Nick Heyward on July 28 and Gabrielle on August 4.
The concerts are free to attend but those who would like to guarantee a prime viewing position can purchase a Priority Plus ticket, priced at £6.
The tickets allow early entry to the park and are on sale until a week before each concert.


bass fishing boats for sale in nc - triton boats for sale near lake norman lake hickory .
bass fishing boats for sale in nc - 2007 chion elite bass boat for sale up close outfitters .
bass fishing boats for sale in nc - new 2017 triton 18tx aluminum bass boat for sale near .
bass fishing boats for sale in nc - 2003 ranger 185vx bass boat the hull truth boating and .
bass fishing boats for sale in nc - fishing boats for sale in fayetteville north carolina .
bass fishing boats for sale in nc - fishing boats smith mountain lake houseboat rentals at .
bass fishing boats for sale in nc - new and used fishing boats for sale in charlotte nc offerup .
bass fishing boats for sale in nc - 1990 19 foot skeeter bass boat fishing boat for sale in .
bass fishing boats for sale in nc - best 25 bass boats for sale ideas on pinterest pontoon .
bass fishing boats for sale in nc - 2017 phoenix bass boats 919 proxp morganton nc for sale .
bass fishing boats for sale in nc - bass boat for sale chion 210 elite boats nc sc north .
bass fishing boats for sale in nc - fishing boats for sale in wilmington north carolina .
bass fishing boats for sale in nc - 21 feet 2006 blazer boats 202 pro v bass boat for sale in .
bass fishing boats for sale in nc - 2007 gambler s c 2100 fishing boat for sale in kingstown nc .
bass fishing boats for sale in nc - how to build a steel fishing boat xpress boats for sale .
bass fishing boats for sale in nc - new and used bass boats for sale in winston salem nc .
bass fishing boats for sale in nc - picture downloader freeware craigslist boats for sale .
bass fishing boats for sale in nc - 21ft tournament bass boat for sale in richlands north .
bass fishing boats for sale in nc - 2017 new phoenix bass boats 919 proxp bass boat for sale .
bass fishing boats for sale in nc - bass boats for sale buy sell used bass boat classifieds .
bass fishing boats for sale in nc - 1997 ranger r82 bass boat low hours lexington nc for sale .
bass fishing boats for sale in nc - inflatable boats fishing in the carolinas .
bass fishing boats for sale in nc - bass boat new and used boats for sale in north carolina .
bass fishing boats for sale in nc - fishing boats for sale in hickory north carolina used .


The abcrtc driver provides support for the Abracon AB1805 real-time clock chip and similar variants.
The abcrtc driver first appeared in OpenBSD 6.5.
The abcrtc driver was written by Patrick Wildt <patrick@blueri.se>.


Updates to Dana's profile since your last visit are highlighted in yellow.
Dana Legg has a birthday today.
Dana Legg added a comment on Profile.
Dana Legg posted a message.
Have a terrific day, Kirk!!!
Have a terrific day, Lloyd!
Have a wild, nutty birthday!!!
have a great day, Tod!
And the hair just keeps going away!


text:
Rye Brook's
Valentine Drop-In Classes Coming Soon!: Clay Art Center Valentine's Day Themed Project * Drop-In Clay Class Have your child make a hand-made gift for Valentine's Day. Projects will be fired and available for pick up before February 14. Fun for the Whole Family (Ages 5
Imagine Your Summer At Harvey Camp! Open House on Feb. 22, Registration OPEN: The Harvey Summer Camp celebrates its 25th year with a 2020 session that offers an extraordinary interactive summer experience for children entering grades 1 through 9. With more than 50 courses to choose from, there is plenty for everyone to
Bowling For Bears: Join us for our 5th Annual Bowling For Bears Event to support Pediatric Programs at White Plains Hospital! Sponsored by the Junior Friends of White Plains Hospital Bring your family and friends for a fun night of bowling for a great cause! Sunday, January 26, 2020 5:00pm-7:00pm Bowlmor White Plains 47 Tarrytown
The Contemporary Art Network Showcase 2020 at the Greenwich Art Society Gallery: The Contemporary Art Network Showcase 2020 January 9 – January 30, 2020 Greenwich, CT & NYC –– The Contemporary Art Network proudly presents the first collaborative exhibition in Greenwich of its artists – Melissa Bisbee Orme, Anelisa Calmet, Scott Glaser, Ellen Gordon,
Tons of Fun Going on at Rye Rec: Check out all the fun going on at Rye Rec! SPECIAL EVENTS FAMILY FUN DAY All Ages Session 1: Mon, Jan. 20, 2:15 - 4:30 p.m. Session 2: Mon, Feb. 17, 2:15 - 4:30 p.m. Program Site: Rye County Day School Fee: FREE Join Rye Recreation for open
Family Wheel Nights Are Coming to Clay Art Center!: Have fun in this one-time class for parents, tweens and teens interested in learning to use the potter's wheel. Fun for the Whole Family (Ages 9 - 99)! Last Saturday of the Month, 6 – 8pm January 25, February 29, March 28,
Annual Meet the Media Panel with HamletHub's Margaret Carey on January 14: Professional Women of Westchester invites you to join them on January 14th for our annual Meet the Media Panel! Moderator: Lisa Kaslyn of Prosper CommunicationsPanelists:Valerie Abrahamas, Editor in Chief, Scarsdale InquirerMargaret Carey, Editor of Putnam and Northern Westchester HamletHubJeanne Muchnick,
Greenwich Fire Department Delivers Toys to Greenwich Hospital Pediatric Department: The wonderful and generous Greenwich Fire Department stopped by Greenwich Hospital today to drop off holiday gifts for children who may need to stay in the Pediatric Department over the holiday. Members of Greenwich Firefighters Local 1042 have been donating toys
OKO, featuring Japanese inspired cuisine and Nigiri sushi to open in Rye on Dec. 18
Published on Friday, 13 December 2019 09:39
Written by Nicole Ball
OKO, featuring Japanese inspired cuisine and Nigiri sushi from celebrated chef and Westchester native Chef Brian Lewis, is set to open in Rye, New York at 29 Purchase Street (the corner of Locust Avenue) on December 18, 2019.
"Having grown up in Westchester and kicked off my culinary career in local restaurants, I'm ecstatic to be back for the first time in years with OKO," said Lewis. "This is a true passion project for me, combining my love for classic Japanese cooking techniques with sourcing the freshest, highest-quality ingredients, all in a lively, fun and welcoming atmosphere. Named in honor of okonomiyaki, or "OKO," a savory pancake filled with seasonally-inspired ingredients that I introduced at The Cottage as my first Japanese-inspired dish on a menu a few years ago in Westport, I'm looking forward to meeting new and old friends in the Westchester community at our second OKO location."
The food menu at OKO will include several styles of Japanese-influenced cuisine, including Sushi Nigiri, Sashimi and Temaki (hand rolls), as well as vegetable tempura, seasonally inspired salads and vegetable dishes, okonomiyaki, homemade tofu, hand-cut soba, Bento Boxes and meat dishes from the tepinyaki grill. A traditional Omakase menu will also be available at the Chef's Table, offering a spontaneous, multi-course menu of the chef's choosing, as well as a "Chef's Selection" offering of Nigiri Sushi, Sashimi or Chirashi Sashimi. A special children's menu will offer younger guests a variety of Bento Box options. Dessert will include house-made soft serve ice cream and build-your-own sundaes and cones, OKO – Chokobols (housemade chocolates), housemade Matcha Kit-Kats and the restaurant's signature Ooey Gooey Chocolate-Matcha Birthday Cake.
The beverage program at OKO will also celebrate the Japanese culture with seasonal, local ingredients. A robust offering of Sake (by the bottle and on tap), Japanese, European and American Beer (by the bottle and on tap), hot and cold iced tea, matcha and wine will be offered. Custom cocktails and Highballs will integrate traditional Japanese ingredients – sake, barley shochu, Japanese craft whiskey and matcha – with spirits including gin, brandy, rye and tequila. Creative, non-alcoholic drinks will also complement food options.
"I'm excited to share that Charlie Gilhuly, Chef Christian Wilki and Ralph Leon, who were the opening team at our first Westport location, will be involved here in Rye, with Charlie overseeing operations and front-of-house activities, Christian serving as my Chef de Cuisine and Ralph running the beverage program," added Lewis. "We're pleased to welcome Jen Morris as General Manager, Tan Tandy as our Sushi Chef and Fecedio Douglas as our Sous Chef. Jen brings 20 years of food and catering experience throughout Fairfield and Westchester Counties to our team, Tan has specialized in creating creative sushi and Japanese-inspired cuisine for more than 20 years at New York City restaurants such as Nobu and Morimoto and Fecedio comes to us from such recognizable restaurants as Homewood in Dallas and The Dutch in New York City."
Architect Rick Hoag from Frederick William Hoag Architect and Interior Designer Megan Zwick from MZ Interiors once again collaborated with Lewis and his team to create the vibrant dining space offering a direct view of the heart of Rye's downtown. The interior continues to take inspirational cues from OKO's distinctive palette of culinary colors, featuring a post-industrial scheme of natural ash, concrete greys and black steel, combined with large windows, exposed brick walls and a restored tin ceiling with a decorative pattern. Ash wood furniture, slender wood LED lights and Japanese-inspired, geometric lighting fixtures add to the creative element of the restaurant. A custom-designed steel structure, inspired by traditional Japanese scaffolding, is suspended over the pass to the kitchen, offering an exciting, behind-the-scenes view of the team at work. Traditional and banquette style seating, including two round tables to host large parties in the restaurant's front bay windows, a high-top Chef's table and bar seating offer several choices to savor OKO's cuisine.
OKO will be open Tuesday-Saturday for dinner service, expanding to offer Sunday dinners, lunch and OKO TO-GO options in the new year, as well as on- and off-site private event options.
The restaurant accepts reservations via OpenTable.com, or by contacting the restaurant at 914-481-8660.
About Chef Brian Lewis:
Brian Lewis is one of Connecticut's most celebrated chefs, lauded for his commitment to quality and seasonally driven American cuisine featured at his restaurant, The Cottage, as well as his love for Japanese cuisine at his newest venture, OKO. The Cottage, based in Westport, Connecticut, was recognized with an "Excellent" review in the New York Times, after only being open for four months, commending Lewis' sophisticated menu in a cozy setting.
Lewis was also honored in 2018 as a semi-finalist for the James Beard Awards' Best Chef: Northeast in the 2018.
He first received national recognition as the opening Executive Chef of actor Richard Gere's The Bedford Post Inn, a Relais & Chateaux property that featured two destination restaurants, The Barn and The Farmhouse. There, he acquired national acclaim including Esquire Magazine's "Best New Restaurant" list in 2009, and an "Excellent" review in the New York Times for his thoughtful and consciously sourced cuisine. He launched his first solo venture in March 2012 with elm, where he was once again named to Esquire Magazine's "Best New Restaurant" list, this time in 2012, before leaving to focus on launching The Cottage in Connecticut's Westport neighborhood. Lewis has had the honor of being invited to cook three dinners at the historic James Beard House in New York City, most recently in January 2017 on behalf of The Cottage. He has made appearances on "The Martha Stewart Show" and "TODAY."
Raised in Westchester, New York, Lewis discovered his love for cooking at a very early age. He graduated from the Culinary Institute of America with honors and went on to earn his Bachelor's degree in business Management from Johnson and Wales University. Early experiences working under the guidance of legendary chefs like Jean Louis Palladin and Marco Pierre White strongly shaped Lewis' culinary style to what it is today.
About OKO:
OKO is the heartfelt interpretation from Chef Brian Lewis of Japanese ingredients, cooking methods and cuisine, paired with seasonal, local ingredients from New York, Connecticut, the United States and the Toyosu Market (formerly Tsukiji Fish Market) in Tokyo. Showcasing Lewis' innovative take on traditional Japanese cuisine and sushi, casual, small plate dining meant for sharing is encouraged, in a lively and charming atmosphere.
OKO's first location is located in the historic Vigilant Hose Company Firehouse in Downtown Westport, Connecticut (6 Wilton Road), with a newly opened second location in the heart of Rye, New York (29 Purchase Street). For more information, including hours and reservations, visit www.okokitchen.com.
Follow Rye Brook HamletHub


They got a wide array of cosmetics which are all natural, organic and cruelty free. Extra appealing for the animal lovers in us!
I've recently discovered Saffron Rouge. I may not be pregnant but I feel like I'll be a fan of their organic cosmetics, especially the "Raw coconut cream" make-up remover which made my facial cleaning more heavenly. A bit expensive but extremely effective for me especially for my eyelashes.
Yes, I've heard lavera is awesome but need to figure out a way if they could ship to UK, cadelaria.
Never heard if they ship to UK too. I think it's better to contact their customer support team to confirm this.
Less is ok but with the phthalates and paraben present on cosmetics these days, it's sure scary hun.
Yes, that's the best thing to do. I'll do it myself too if I get a chance and get back to you!


Randomly access this old radio show from KFAI Minneapolis-St. Paul. Marc & Jerry's collages, home tape loops (Taping Your Brains Out Out-Takes), Craig Swanson (Alien Man), The Downliners Sect (Glendora). Sponsored by The Batter-Operated Fish Boss.


Put my experience to work for you – and your new home.
Kimberly Allen delivers such an exceptional customer service experience, it's no surprise that so many of her satisfied clients refer others to her.
In fact, twin passions for helping others and for the real estate business drove Kimberly to enter the mortgage field immediately after graduating from Iowa State in 1988. Those years of career experience help Kimberly consistently offer her customers a smooth buying process.
Kimberly was kind, informative, resourceful and absolutely on top of things. My husband and I felt comfortable asking her questions, and she was always available to answer. She gave us a lot of good information and thoroughly explained every single detail to us. She made our home buying journey go as smoothly as possible. She is wonderful person to work with.
Described as a "teacher at heart," Kimberly is as protective of her borrowers as a mother would be! She's dedicated to providing the best customer experience, with quick response times to questions and no surprises at the end. Kimberly attends as many closings as she can, in order to share in her borrowers' excitement and provide support all the way through.


text:
Poppy Places
Keyword: #RussellStreet
The naming of Russell St after (Major General) Sir Andrew Russell is confirmed in the books Swamp to Centenary. A History of Hastings, and City of the Plains, A History of Hastings. The latter notes: " . . . the cenotaph, erected on land purchased . . . for a civic square . . . faced an extension of Station Street, re-named Russell Street to honour Sir Andrew Russell who became national president of the RSA" from 1921-1924 and again from 1927-1935.
Major General Sir Andrew Russell KCMG
Major General Sir Andrew Russell earned a high reputation for his tactical skills, insistence on strict discipline, care for his men and his personal courage. Under his leadership, the New Zealand force was regarded as one of the finest in the allied army and fought with distinction in the major battles of WWI: Messines, Passchendaele and the Battle of the Somme. His contribution was recognised with decorations bestowed by France, Belgium, Serbia and Montenegro, as well as Britain. On returning to New Zealand after the war he was given a hero's welcome at Wellington where he was hailed in Maori "Ariki Toa" - the fighting chief sent forward to lead.
Andrew Hamilton Russell, known to his family and friends as Guy, was born in Napier in 1868. His father, Colonel A.H. Russell, having come to New Zealand as a soldier, left the army to take up farming in Hawke's Bay. Andrew Russell's early childhood was spent at Redclyffe, near the Tutaekuri River, west of Taradale. His education was in England at Twyford preparatory school and Harrow.
From Harrow, Guy went on to the Royal Military College, Sandhurst, entering as the cadet with second highest marks. He left a year later in 1887, with the Sword of Honour awarded to the top cadet of the year. Five years of service with the British Army serving in India and Burma in the 1st Border Regiment with the rank of Lieutenant followed, after which Guy resigned his commission and returned to New Zealand.
He followed his love of farming as a cadet, then manager and finally owner of the family land at Twyford and Tuna Nui (near Sherenden). In 1896 he married Gertrude Williams, the daughter of J.N. Williams of Frimley. Together they raised a family of two sons and three daughters. In 1912/13 they built the Homestead at Tuna Nui, designed by architect C.T. Natusch.
Throughout these years, Guy maintained a strong interest in military and defence affairs. From 1900 he was a territorial officer in the New Zealand Army. He raised the Hawke's Bay Mounted Rifles, a volunteer force, and was promoted to major under the volunteer system. The Defence Act of 1909 brought in the Territorial system, the rapid expansion of the New Zealand Defence Force, and compulsory military training. The Wellington Mounted Rifles Brigade was formed in 1911 and Guy was given command with the rank of colonel.
In 1914, on the outbreak of war, the New Zealand Mounted Rifles Brigade was formed and sailed for Egypt with Guy in command. While the horses came with them from New Zealand, the Mounted Rifles Brigade, without their horses, landed on the Gallipoli Peninsula on 12 May 1915 where Russell served with distinction.
Sir Andrew Russell's abilities were such that he was put in charge of the ANZAC Rear Guard during the final 48 hours of the highly successful evacuation from Gallipoli. The evacuation was meticulously planned to create the impression of on-going work and reinforcements arriving, even while evacuation was underway by night. The final 20,000 troops were withdrawn by ships over two nights, with diversions in place such as self-firing rifles (rigged with water dripping from one tin into another to pull the trigger) to ensure the Turks didn't move up and attack the troops in their vulnerable embarkation points.
The only casualty was a slight wound by a stray bullet to a rifleman's ear. Following this campaign Sir Andrew Russell was awarded the KCMG, promoted to the rank of major general, and made commander of the New Zealand division which was sent to fight in France and Belgium under British command.
Back in New Zealand, civilian life was busy not only with his own farming business but also the wide variety of organisations he was involved with, which show the breadth of his interests and indicate the esteem in which he was held. He was a founding member of the Round Table in New Zealand, a member of the Rhodes Scholarship Selection Committee, and a board member of both The Hawke's Bay Farmers' Co-operative Association of Barraud and Abraham, and Flock House agricultural training establishment. He belonged to the British Empire Service League, the international charity Toc H, The British Israel World Federation and The Farmers Union, to name a few. In WWII he was inspector general of troops from 1940 - 1941, and a member of the War Council.
A dedicated family man with high intellect and strong Christian beliefs and firm principles, Sir Andrew Russell stands as an example to all who follow.
He died at Tunanui in 1960 at the age of 92 and was farewelled with a full military funeral at St Matthews's Anglican Church in Hastings. His name is on the Hawke's Bay District Club Roll of Honour.
At a meeting of the (then) Hastings City Borough Council on 10 March, 1921, it was agreed that Station St be renamed Russell St. While the Borough Council records showing the reasoning behind the renaming have not been retained, it is clear given the timing, 1921 just after the war, and the location, adjacent to the new Hastings war memorial, that Russell St was named in honour of the distinguished son of Hawke's Bay, Major General Sir Andrew (Guy) Hamilton Russell, KCMG.
Excerpt from Council minute book 10 March, 1921.


text:
Tag: Theo Tams
Theo Tams (@theotamsmusic) – "I Wanna Hold Your Hand"
January 12, 2023 - 1:04 pm January 12, 2023 Music Theo Tams
Theo Tams (@theotamsmusic) – "Trilogy IV" EP
October 19, 2022 - 5:46 pm November 9, 2022 Albums & Mixtapes Theo Tams
Theo Tams (@theotamsmusic) – "Kick Back"
August 25, 2022 - 12:56 pm September 6, 2022 Music Theo Tams
Theo Tams (@theotamsmusic) – "Limbo"
July 15, 2022 - 2:11 pm August 15, 2022 Music Theo Tams
Theo Tams (@theotamsmusic) F/ Karma Rivera – "FBG" (Video)
May 18, 2022 - 3:28 pm May 27, 2022 Videos Karma Rivera, Theo Tams
Theo Tams (@theotamsmusic) – "I Could Be Hot"
February 18, 2022 - 1:52 pm February 28, 2022 Music Theo Tams
Theo Tams (@theotamsmusic) – "GRLS" EP
November 26, 2021 - 6:52 pm January 10, 2022 Albums & Mixtapes Theo Tams
Theo Tams (@theotamsmusic) – "Say My Name"
October 22, 2021 - 1:04 pm January 10, 2022 Music Theo Tams
Theo Tams (@theotamsmusic) – "Quit U Love"
June 30, 2021 - 11:46 am July 7, 2021 Music Theo Tams
Theo Tams (@theotamsmusic) – "The Feeling (Hate 2 Love)"
May 22, 2021 - 11:52 am June 17, 2021 Music Theo Tams


The City of Chula Vista is developing the Fiscal Year 2019-20 budget that funds important City services including public safety, public works, library, parks and recreation, economic development, conservation, maintenance and more. The budget also includes Measure A and Measure P allocations. Two public workshops will be held to present elements of the draft proposed Fiscal Year 2019-20 budgets and capital projects (Capital Improvement Program or CIP).
Thursday, May 16th at 5:30 p.m.
The City Manager's Proposed Budget will be presented to the City Council on Tuesday, May 28th.
The City Council adopted the Fiscal Year 2018-19 Budget on June 12, 2018. The Adopted Budget can be found here, and the Adopted CIP Budget can be found here.
On May 22, 2018, City Council voted to accept the City Manager's proposed budget as their own. Per the City Charter, the City Council proposed budget is now available for public review at least ten days in advance of the adoption of the budget. Copies of the proposed budget are available for public review in the Office of the City Clerk, City Libraries, and at the link here.
The City Council adopted the Fiscal Year 2018-19 budget at the meeting on June 12, 2018.
The budget is organized in a manner to facilitate your general understanding of the City's fiscal status, to present management's assessment of major issues and, finally, to present the plan for allocating resources to address those issues during the coming fiscal year.
View A Citizen's Guide to the City's Budget Process to learn more.
Please see our Financial Reports page for additional documents.
All of these goals contribute to a high Quality of Life for Chula Vista residents and businesses.


text:
Q: HTTPURLConnection result in struts2 I want to return HttpURLConnection result as a Struts 2 result type.
Can you suggest how to do?
Actually I want to fetch JSP Page from other server using HttpURLConnection, then that page need to display.
How to do?

A: Based on your comments, you simply want to pass-through the already rendered content from the remote server when your Struts2 action returns.
Since the JSP has already been rendered, all you need to do is to set your Struts2 action result type to use stream and simply return the content of the rendered JSP you obtained from your HTTPUrlConnection appropriately.
<action name="yourAction" class="com.yourcompany.YourAction">
  <result type="stream">
    <param name="contentType">text/html</param>
    <param name="inputName">jspResponse</param>
  </result>
</action>

Then your action simply needs to expose your InputStream with a getter getJspResponse() since we've specified the property to get as jspResponse.

redpajama_set_name: RedPajamaStackExchange


I've seen so many threads on this topic, on this and other forums, but I've yet to see a thread where any community attempts to make a mostly comprehensive list of the inefficiencies in the current U.S. healthcare system. Plenty of mention of inefficiencies, but no specific listing.
Of the forums I frequent, this seems to be one of the most mature and level-headed, and so the most likely to be up to the task of compiling such a list.
No attempts should be made within this thread to address how to solve an inefficiency - this is just a list. Also, please don't dispute any inefficiency someone else lists - at least not in this thread. This should be viewed as a first step brainstorming list, free of editorial comment. I propose that, if we can make a list, we then start another thread where we tackle suggestions for addressing the listed inefficiencies.
Who knows, maybe someday someone in Washington will visit this forum, and the bill that eventually wins the day and saves our country will be titled, "The Early Retirement Dot Org Healthcare Reform Act."
The cost of health care is typically not known until *after* it is consumed.
- Only indirect linkage between the individual receiving the service (the patient) and the payer.
- Lack of nation-wide competition across insurance companies.
- Ins cos are exempt from some anti-trust regulations (as I understand it).
- For dental work, you can actually get price quotes fairly easily, and then can look in horror at the differences in prices between those who accept insurance, and those who do not. (Hint: Those who don't accept insurance actually usually charge much less than what your insurance+you pay combined).
- (Real example) When I had dental insurance, I did not care if my fillings cost $600, as long as I did not need to pay it. When I didn't have health insurance, I got (what actually turned out to be) better fillings for $120 each from a different dentist, who accepted cash. And I am an extremely cost conscious person, imagine what it is like for those who spend money like water.
- Lack of an efficient market for individual health insurance.
- The blurring of the line between providing medical care and medical care insurance. Outside of the health insurance biz, "insurance" is something a customer buys to protect against a rare but catastrophic calamity. In the US, we expect medical insurance to cover routine or at least anticipatable costs. For example, the normal costs of labor and delivery are anticipatable.
- Lack of good, easily accessed consumer-friendly information on the quality of the healthcare sold by competing providers. I can find better information on car tires and mechanics near my home than I can about which doctors and hospitals do the most open heart surgeries and what their results have been.
PROBLEM - An emphasis on low deductibles and low co-pays as being "good coverage".
Some background: Many people could benefit from a high deductible policy - pay lower premiums and pay the routine things out-of-pocket (which makes us more aware of the costs). There is overhead for all these small charges, and we all just end up paying for it. We should have ins for risks we cannot afford - not for routine expenses. Yet, few of us have the option of a high deductible policy through our employers.
A friend had an explanation for this trend, and he may be right. Ins cos like to sell low deductible policies if they can, because it is more work for them so they can charge more (just like a car company would rather sell you a luxury car than a stripped down compact). And since employers have used health care benefits to attract talent, the more complete the coverage, the "better" it sounds. So the two feed off of each other, but we all really end up paying the bill.
We recently changed insurance to Kaiser Permanente - hated doing so, as I had about a 20 year history with my private doctor, not a Kaiser doc. However, after a few months on Kaiser I'm very impressed - my doc used to refer me to a cardio guy here and a vascular guy there and a shoulder surgeon another place - all of them people he trusted and I'm sure quite good. Every time I went to a new doc the deductible and copay would eat me alive, to say nothing of driving to random distant spots and back while not feeling tiptop. Each place had a new multi-page form to fill out, records had to get shuttled around and were often delayed or missing when needed. With Kaiser it's nearly all in house - visit my primary, go down the hall for a blood draw from a row of people who only draw blood at purpose built stations, go down the hall for vaccinations, ditto x-rays, ditto echocardiograms - even on-site outpatient surgery. And - SHOCK - they do use computers. WELL! I can email my doc and get a response back, email for prescription refills, when I go from the primary to the blood draw to the echo they all have all my records right at hand online. Things are done efficiently and quickly, negligible waiting, I feel I've had good care, and other than the copays there has been no out of pocket expense. If Kaiser is an example of the savings possible via computerized common records and a single payor I'm a big fan. My prior health-care was expensive and far more time consuming and, I think, more like normal health-care today.
If Kaiser is an example of the savings possible via computerized common records and a single payor I'm a big fan.
Why do you associate the top-notch service you are getting from this private company with a single payer system? It sounds like this service would be available from any well-run private HMO.
I'm glad you found care you are happy with, and that you benefitted from having options. Super. I'll bet if there were no other options, if Kaiser were the only system in the whole country, if there was no competition at all, and that if you had complaints there was no higher regulating authority outside the entity providing your care (all attributes of a government single payer system) that things might be less satisfactory.
The computer use seemed familiar - sorta like the touted savings from same touted by our President. I only have my experience with health care, and if Kaiser is similar to a single payor system - oh wait, it is - I'm saying it works real well. Re those health care options you mention, I was pretty much forced away from my doctor when the gal's company changed insurance plans.
The fallacy that high deductibles plans are the best solution for all. Result: those who can afford the premium, sometimes can't afford the cost of health care --> seek care at emergency rooms, or not at all --> cost of ER care born by the tax payers as they can't pay.
The belief that quality of care is provided by health insurers who examine claim records, as a demonstration that they can control quality of care, when all they do is reimburse providers.
Medicare's focus on fraud of the largest kind, rather than focusing on the smaller providers, in an effort to demonstrate to Congress that they can catch fraud.
I only have my experience with health care, and if Kaiser is similar to a single payor system - oh wait, it is - I'm saying it works real well.
I think we are using the term "single payor" differently. Medicare is a government "single payor" system (for all Americans over 65) and yet it has all the inefficiencies you associate with your former plan (uncoordinated care, high admin, etc). We could all have plans just like you have now without the government getting involved as the "single payor"--just as you do right now.
Re those health care options you mention, I was pretty much forced away from my doctor when the gal's company changed insurance plans.
Yep, it's crazy. "My wife changed jobs, so now I have to change my doctor." How dumb is that?? We definitely need to break the employer/insurance link. The biggest political probem is that workers continue to believe that their private insurance costs are coming out of their employer's pocket, when nothing could be further from the truth. The employees pay for every dime of inefficient, wasteful insurance coverage that employers buy. I guess it's like "I didn't have to pay any taxes, in fact I got a refund!"
The fallacy that high deductibles plans are the best solution for all.
Who is saying that "high deductibles plans are the best solution for all"? I haven't heard that. Earlier, I said it would be good for many, and I would like to see it as an option. I'd even consider an escrow so there is no doubt I could pay.
No attempts should be made within this thread to address how to solve an inefficiency - this is just a list. Also, please don't dispute any inefficiency someone else lists - at least not in this thread.
But, perhaps we should get back to the OPs request.
1. Consumers of the product are shielded from the true cost of the product so there is little incentive or ability to be "good consumers" of health care.
2. The silly link between employment and health insurance. Employer-provided group insurance as the "norm" creates market distortions that have made the individual health insurance market largely inefficient, noncompetitive and dysfunctional.
3. Lawsuit abuse which leads to "defensive medicine" and the extra costs it puts on the system -- not to mention the judgments themselves and the cost of malpractice insurance.
4. Different people pay different rates for the same procedure depending on their insurance coverage (or lack thereof).
5. American pharmaceutical consumers subsidize the rest of the world's drugs because they bear a disproportionate cost of the R&D due to caps placed on their pricing in other countries.
6. Too many people seeking routine care in the emergency rooms, many of whom are uninsured since they can't be immediately turned away from the ER by law.
7. Differences in profitability and salaries leads to more specialists and not enough general practitioners.
8. Differing state requirements on health insurance can lead to many different versions of the same "product" offered by the same company, requiring additional bureaucracy and administrative costs.
I'm sure I've forgotten a few.
How about not being able to know the cost effectiveness or plain effectiveness of a treatment procedure? A lot of procedures are currently done without any knowledge of effectiveness, major side effects, etc.
Medical insurance pays for messups by doctors and hospitals when any other service provider would be required to fix their mistakes for free.
Hospitals breed infections which requires more medical intervention (related to the one above).
It is very difficult or even impossible to know the cost of anything in advance. Even simple things like durable medical equipment purchased through insurance have multiple prices and often cannot get quotes from anyone until after "purchased"
The rent-to-own schemes for durable medical equipment. My insurance will only "cover" a wheelchair if I rent it for 13 months. After that it's mine. However I could have bought one for about 2 months worth of payments.
Inflated "list prices" which no insurance ever really pays. But uninsured people have to pay these effectively subsidizing the insured.
Ability of insurance companies to arbitrarily (and sometimes retroactively) decide what treatments are covered and which aren't. Occasionally putting even "insured" people in the position to pay the inflated "list price"
No coverage for existing conditions. Means there is incentive to avoid care that would make insurance more difficult in the future. Means there are people who are locked in to current employment because once they leave that insurance group they will be "uninsurable"
I only really want to buy insurance for big expenses. Since insurance is only really available through employers, I have no ability to shop for plans. I take what the employer signed up for or I get nothing.
Calmloki - Kaiser is an integrated healthcare system - they own the docs, the insurance and the facilities/nurses/other employees. And, they tend to be careful about what they outsource. In the case of single-payor, the ownership is not total as described above. It is to Kaiser's advantage to focus on prevention as it drives down the costs of more critical care by catching things early, etc. The incentive is different - too much hospitalization costs too much - now some may argue that drives them to skimp, but if you are covered, you are covered. Kaiaser has changed their business model over the years due to government regulations and business drivers, however, the underlying premise is similar--once you are in Kaiser, you are in Kaiser.
I agree with the many posters in that being an informed consumer is nigh impossible in our healthcare system - I can find out more about a used car than I can in the ability/excellence/lack thereof of a clinician and/or the costs for a procedure, which makes me a poor consumer and can cause inefficient (read poor doctors/poor procedures) producers to stay in the market too long.
I know that some people do not like Kaiser (it is a bureacracy), however, the drivers for profitability are different than from a segmented point of view (insurance only or clinicians only or facilities only).
9. Lack of effective, centralized, computerized health records leads to repeated and unnecessary lab tests and diagnostic procedures.
10. Lack of portability caused by the employer healthcare model leads to inefficiencies in the labor market as people take suboptimal jobs solely for the health care.
11. Allowing physicians to take an ownership interest in testing facilities (e.g. - labs, MRI, xray) leads to unnecessary and expensive tests.
12. Incredibly expensive medical education programs that force doctors to charge high prices just to pay off their student loans.
13. Ineffective coordination of prescriptions given to a single person that can lead to adverse drug interactions or render certain medicines useless.
14. Failure to focus on preventive care, including proper diet and nutrition and an attendant over reliance on after the fact medication (think cholesterol control).


By Sabrina Eaton , Stephen Koff on Tuesday, June 26th, 2012 at 6:00 a.m.
This campaign ad published online by the PAC Workers' Voice that targets Josh Mandel parodies Nike's "We are all witnesses" campaign that featured LeBron James.
Josh Mandel's campaign is not under FBI investigation.
But Democrats, labor unions and their allies keep suggesting the Ohio treasurer is.
The latest comes from a "super PAC" affiliated with the AFL-CIO, called Workers' Voice. The AFL-CIO helped form the political committee and administers it from its headquarters in Washington with donations from member unions and supporters, according to records it filed with the Federal Election Commission as well as press reports.
The PAC spends money on political advocacy ads, such as a recent online ad that said that Mandel, a Republican running for U.S. Senate, is under investigation for shady campaign practices.
Specifically, Workers' Voice on June 19 announced it was spending $100,000 for an ad appearing on Cleveland.com (the online home of The Plain Dealer), the Akron Beacon Journal's website, Google and Twitter. The ad was a spoof on Nike's ad featuring LeBron James, which carried the theme, "We are all witnesses."
The anti-Mandel ad's title was, "Witness the Mandel investigation."
This was a reference to an investigation of donations that employees of a North Canton direct marketing company made to Mandel's campaign to unseat incumbent U.S. Sen. Sherrod Brown, a Democrat. The ad says people should ask that Mandel "come clean on campaign cash," and the ad asks: "When did Josh Mandel know his campaign was being investigated by the FBI?"
The problem here? Mandel's campaign is not being investigated by the FBI. The FBI specifically told us this.
Rather, the FBI is investigating employees of Suarez Corporation Industries who gave donations to Mandel totaling $105,000, and to U.S. Rep. Jim Renacci. PolitiFact Ohio separately addressed the same claim when the Democratic Congressional Campaign Committee made it against Renacci, and ruled it was False.
The size, number and timing of donations to Mandel from Suarez employees on June 2, 2011, caught the attention of Democrats and reporters last summer. They wondered whether the employees could really afford the donations and if the employer had actually supplied the money and used his workers to hide that fact. If so, it would violate federal campaign finance laws that limit the size of donations and require the true identity of each donor.
Suarez and his employees have denied wrongdoing. The Toledo Blade first reported on the contributions in August 2011.
Facing ongoing criticism from Democrats, Mandel in May returned the donations, citing an abundance of caution. Critics say Mandel's campaign should have suspected the donors might be in violation of the law when it first received the checks.
That's an assertion of judgment. PolitiFact Ohio is interested in assertion of fact.
Is Mandel under FBI investigation?
"No," Andrew Hayden, the supervisory senior resident agent of the FBI's Canton office, told us on June 21. "He is not and he has not been. What we're looking at is contributions to both campaigns from employees of the Suarez Corporation. Neither the Mandel campaign nor the Renacci campaign are under investigation."
Brown, the incumbent senator, came close to making the same claim as in the Workers' Voice ad, but he caught and seemingly corrected himself. In an interview with Findlay, Ohio, radio station WFIN-AM on June 21, Brown said of Mandel: "He is under FBI investigation," then quickly added, "or his campaign contributions are under FBI investigation."
Even that milder assertion suggests Mandel is implicated. But you could tie yourself up in knots over Brown's phrasing, whereas Workers' Voice left no room for even that.
While the ad states in one part that the FBI is investigating donations to the Mandel campaign, it then asks: "When did Josh Mandel know his campaign was being investigated by the FBI?"
And it had the title, "Witness the Mandel investigation."
We sent AFL-CIO spokesman Michael Gillis an email to ask about the wording. He replied, "Any contribution includes a contributor and a recipient. Josh Mandel's campaign was the recipient, and is therefore being investigated by the FBI as a party in that transaction."
The FBI presumably knows whom or what it is investigating, and was clear on this. It is not investigating Mandel.
To say otherwise is False.
Published: Tuesday, June 26th, 2012 at 6:00 a.m.


If you are an advanced runner who is ready to sharpen your 10K (6.2 miles) race performance, use this eight-week training plan. To follow this 10K training schedule, you should be able to run 6 miles comfortably and run five days a week. If this plan seems too tough for you, try the intermediate 10K schedule.
8 CT or Rest 5 m run 30 min tempo run 3 m run Rest Rest 10K Race!
Cross-training (CT): Cross-training activities allow you to give your joints and running muscles a break while still working on your cardio. When the schedule calls for CT, do a cross-training activity (e.g., biking, swimming, elliptical trainer) at a moderate effort for 45-60 minutes. You should also do 15-20 minutes of strength training, either using machines or body weight exercises, focusing on your lower body and core. You can do another 15 to 20-minute strengthening session on Wednesdays when you do an easy paced run.
Tempo Run: Tempo runs help you develop your anaerobic threshold, which is critical for fast 10K racing. Start your run with 5 to 10 minutes of easy running, then continue with 15 to 20 minutes of running near your 10K pace (but not at race pace), and finish with 5 to 10 minutes of cooling down. If you're not sure what your 10K pace is, run at a pace that feels "comfortably hard".
Interval Workouts (IW): After a warm-up, run 400 meters (one lap around most tracks) at your 5K race pace, and then recover by jogging or walking 400 meters. So when the schedule says, 4 x 400, that would be four 400s at 5K pace, with a 400 m recovery in between. For 800 meter (2 laps around most tracks) workouts, run 800 meters at your 10K race pace, and then recover by jogging or walking 400 meters.
Saturday Long Runs: After you warm up, run at a comfortable pace for the designated mileage.
You can switch days to accommodate your schedule. Just make sure you don't do two speed workout days in a row.


So i ran out of room on my first page of pictures, so i had to create a 2nd one!! More pics of my fucked up friends!
This is mah babez Eileen!! That's mah gurl!! She has such a beautiful smile, doesnt she? I dont remember if i had a game this day or what, but we were in the gym and she came in and i was playing with her silky legs and we took this picture. I love this picture. Its really nice!! We look so good there dont we? hehehe. love ya babez!
Thats me, Cali, and Sam!! This picture looked really good when it was bigger but then i made it small and it kinda looks bad now. i mean yeah sams fucked up in the pic, but making the pic small really made me and cali look worse. oh well. we still look good!!
Aww aren't we cute? This was at like 5 in the morning, after not sleeping at all since we had a midnight flight back to Chicago. so we're running on like no sleep here. but i had been squeezing Cali's cheeks all week and i asked for a pic of it and she said ok. hehe, I love that girl!!
Those are all the pictures i have right now but i will definitely get more, and when i do, ill put them up here.


By Bus: Walking distance from Yishun Temporary Bus Interchange.
Drivers may park their vehicles at the basement car park or within the neighbourhood.
From 2 July 2018, Yishun Polyclinic has moved to a new location. For more information, click here.
^Includes child (below 18 years) and elderly (65 years and above).
*There is no GST subsidy for non-residents and this amount is GST inclusive.
General Clinic and Family Physician Clinic consultation fees updated with effect from 15 November 2018.


This post categorized under Character and posted on June 29th, 2018.
This Set Of Vector Characters In Flat Minimal Style Gm has 1024 x 1024 pixel resolution with jpeg format. Minimalist Vector Art Tutorial, Minimal Psd Templates, Minimal Vector Portrait, How To Make Minimalist Vector Art, Free Vector Art, Minimal Vector Portrait, Free Vector Art was related topic with this Set Of Vector Characters In Flat Minimal Style Gm . You can download the Set Of Vector Characters In Flat Minimal Style Gm picture by right click your mouse and save from your browser.
A review of bicycle helmets for the 2016 season. The Helmets If no other information is in the writeup for each brand or model these features are vectorumedThe truth behind the universal but flawed catchphrase for creativity.This is the living breathing core of all rocket design. Delta Vee equals Vee Ee times Natural Log of Arr. This is the secret that makes rocket design possible.
You may also need to set the nullsrc parameters and add a format filter in order to simulate a specific input file.. 4 Filtergraph description. A filtergraph is a The name or term vectorblebee refers to more than one character or idea. For a list of other meanings see vectorblebee (disambiguation).
A list of every Word of the Year selection released by Dictionary.com. Dictionary.coms first Word of the Year was chosen in 2010.Last updated 22 May 2018 About This Manual. This is version 11.20 of the manual to the home and professional versions of XPlane (X-Plane 11 and XPlane 11 for Professional Use respectively).
This Bird Silhouette Line Calligraphy Style Vector Ilvectorration Minimal Line Art Tattoo Gm has 1024 x 1024 pixel resolution with jpeg format. This 0 has 1024x728 pixel resolution and use jpeg format. Guitar, drum and another vector was related topic with this vector. You can download the vector picture by right click your mouse and save from your browser.


text:
Clear Lake Hitch - Endangered?
By Ken Sauret 9/16/2013
This small fish has become a hot topic around Lake County, California, with Clear Lake the center of the debate. Depending on who is writing on the subject you will see many differing views and the content, along with the "spin", of the articles you read will vary. Everything from articles sounding like the "Hitch" is already on the Endangered Species list and almost extinct to articles without too much definitive information because of the lack of true scientific studies to validate the state of the species. The first kind of article seems to this author to be extreme and premature. The second kind of article is more on point because even the Fish and Wildlife biologists don't even know exactly what the status of the Hitch is.
To say that this is a very complex and controversial issue is an understatement. The varying special interest groups each have their own stake in this debate. Some groups want the environment returned to basic native species only. These groups will promote that any non-native species of plant or animal life needs to be eliminated from the environment. This can be taken to any degree of extreme so that group gets it's primary goal achieved, whatever that is. We have read about premature listing's of "endangered species" based on initial "scientific findings" only to be proven false by new scientific findings produced after more time has elapsed. For example, the report that was used to list the spotted owl on the endangered species list and the devastation of the logging industry was years later found to contain false "findings". For example, the first report indicated that the spotted owl could only nest in "old growth" forest. Then this author saw a picture approximately 15 years later of a spotted owl nest on the top of a power pole with live power lines on it. This kinda disproves the earlier findings that cost the economies of many Oregon community's millions of dollars and lots of jobs. Then there are other groups who only care about their special interest like fishing or farming without any concern for all issues that affect the balance of the whole environment and I believe we need "balance" concerning all sides of any issue.
In my opinion, there are groups out there using any governmental agency any way they can to stop all hunting and fishing activities. There are many instances where this has been done in other areas with minimal studies and agency's arriving at premature conclusions without more than one study by multiple scientists from both sides of the issue. Then when later facts and follow up studies prove that the original studies were based on "false science" the damage is done. The part of this scenario I mention that I really disagree with is when an endangered species listing if found to be wrong, the species listing is not then removed from the list and future impact of a false listing seems to continue.
I think this issue will take a lot of time to study and without previous factual historical basis we will still end up with a hypothetical conclusion.
From the outset I believe it is obvious the case can be made that bass eat Hitch, farming damages streambeds, water flow and water quality, which impact the spawn of the Hitch. To be realistic the Pomo Indians don't need to eat the Hitch to survive in these modern times but still need to be allowed to harvest some. In one article published, "climate change" is listed as a "man made" issue that affects the Hitch. If we look at the climate changes that have taken effect over history, ice ages and volcanic ages for example, I think a case could be made for global cooling just like in the volcanic ages a case can be made for global warming. Then the slight changes when coming out of an ice age for example is global warming but this is not man made. It's nothing more than a natural phenomenon.
These natural phenomenon's have an affect on various species of plants, animals and fish. These affects cannot be manipulated by legislation. Some things come and some things go, it's just the way nature works. As for the "Clear Lake Hitch" and the "Clear Lake Splittail" which is believed to be the cousin of the Hitch and considered to be extinct, we need to cautiously proceed with decisions that impact all parties with a vested interest in said decisions. Also above, is a photo of a fish in my hand from Lake Lopez that looks like a "Clear Lake Hitch" to me. I have seen these same fish in another lake on the central coast but didn't take any pictures. I submit that the "Hitch" either from Clear Lake, or any other lake that is connected to the coastal range that runs down the length of California could be related and not endangered. Any of these streams or impoundments on these streams could have "Hitch" in them. If they are in three different lakes, then they could be more prevalent than previously thought or at least admitted to.
Above is a picture of a government issued and posted sign warning the public that the "Hitch" in Oso Flaco Lake are not fit for human consumption because of possible contamination. Hmm, there are Hitch in Oso Flaco Lake, approximately 250 miles south of Clear Lake in California?
I found a history of Clear Lake in a search on the internet that came from an education web site;
http://celake.ucanr.edu/files/164054.pdf
In this study; Gregory A. Giusti, from the University of California Cooperative Extension, wrote this on March 2009. On page 10 of this report, Mr. Giusti reports that smallmouth bass were introduced to Clear Lake in 1875 and Florida Strain Largemouth in 1967. The "small native minnow" of which I can only assume included the Hitch swarmed by the thousands and were a "problem". Now with a balance in the lake with the introduction of predator species to keep all these previously perceived "problems" in check a new agenda has come up and now after over 45 years the largemouth bass is a problem? Or is there something else behind this endangered species listing?
This subject has a long way to go before an honest and truthful conclusion can be arrived at. Alot of studies and discussion will be gone over to do the Hitch and all affected parties' justice on this matter. I hope history will not prove this endangered species event to be another time where there was a rush to a decision before the truth is found.
This is only the opinion of this author and my take on what I have seen take place over the past several decades. I was born, raised and still reside in Paso Robles California. I am an avid hunter, fisherman and outdoor enthusiast. I may be biased to one side of this issue but I believe there have been abuses in the past of some government policies and don't want to see these policies misused in the future.