text:
//
//  RTTeapotHomeViewController.m
//  RoyalTeapot
//
//  Created by 李晓 on 15/7/16.
//  Copyright (c) 2015年 RoyalStar. All rights reserved.
//

#import "RTTeapotHomeViewController.h"
#import "RTHomeCollectionViewCell.h"
#import "RTMenuViewController.h"
#import "RTMQTTResultDataModel.h"
#import "RTTeapotHomeCenterBtnView.h"
#import "DeviceStatusCodeModel.h"
#import <AddDeviceViewController.h>
#import <MQTTSession.h>

@interface RTTeapotHomeViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,MQTTSessionDelegate>
{
    deviceStatus _status;
    MQTTSession *_secction;
    NSInteger _currentPage;
    NSMutableDictionary *_MQTTParamsDict; //MQTT 推送的设备信息
}

/*** 首页的CollectionView */
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
/*** 当前控制的设备信息,保存到单例中,发送指令的时候使用 */
@property (nonatomic,strong) SkywareDeviceInfoModel *currentDeviceInfo;
/*** 控制Button */
@property (weak, nonatomic) IBOutlet RTTeapotHomeCenterBtnView *controlBtnView;
/***  分页的View*/
@property (weak, nonatomic) IBOutlet UIPageControl *pageView;
/*** 配置网络/开关机按钮 */
@property (weak, nonatomic) IBOutlet UIButton *teapotCenterBtn;
/*** 用户所有设备的Array */
@property (nonatomic,strong) NSMutableArray *dataList;
/*** 记录查询出的设备信息 */
@property (nonatomic,strong) SkywareResult *result;

@end

@implementation RTTeapotHomeViewController

static NSString *ID = @"HomeCollectionViewCell";

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navView.hidden = YES;
    [self setUpMenuBtn];
    [self registerCollectionNib];
    [kNotificationCenter addObserver:self selector:@selector(getUserAllDevice) name:kApplicationDidBecomeActive object:nil];
}
- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self getUserAllDevice];
}

- (void)getUserAllDevice
{
    [SkywareDeviceManagement DeviceGetAllDevicesSuccess:^(SkywareResult *result) {
        self.result = result;
        self.dataList = [SkywareDeviceInfoModel objectArrayWithKeyValuesArray:result.result];
        if (self.dataList.count > 1) { // 大于1才显示分页
            self.pageView.hidden = NO;
            self.pageView.numberOfPages = self.dataList.count;
        }
        self.currentDeviceInfo = self.dataList.count ?[self.dataList firstObject]:nil;
        [self updateAllStatus];
        [self.collectionView reloadData];
        [SVProgressHUD dismiss];
    } failure:^(SkywareResult *result) {
        if ([result.message isEqualToString:@"404"]) {
            [SVProgressHUD dismiss];
            // 停用 MQTT
            [_secction close];
            // 无设备
            _status = notDevice;
            [self.dataList removeAllObjects];
            [self setTeapotCenterBtnWithStatus:notDevice];
            SkywareDeviceInfoModel *model = [[SkywareDeviceInfoModel alloc] init];
            model.device_online = @"3";
            [self.dataList addObject:model];
            [self.collectionView reloadData];
            self.controlBtnView.deviceInfo = model;
        }
    }];
}

/**
 *  更新用户拥有设备的更新
 */
- (void) updateAllStatus
{
    // 更新按钮状态
    [self updateBtnStatus];
    // 订阅MQTT
    [self connectMQTTWithMAC:[_currentDeviceInfo device_mac]];
}

// 订阅MQTT
- (void)connectMQTTWithMAC:(NSString *) mac
{
    // 订阅MQTT
    UIDevice *device = [[UIDevice alloc] init];
    _secction = [[MQTTSession alloc] initWithClientId:device.identifierForVendor.UUIDString];
    [_secction setDelegate:self];
    [_secction connectAndWaitToHost:kMQTTServerHost port:1883 usingSSL:NO];
    [_secction subscribeToTopic:kTopic(mac) atLevel:MQTTQosLevelAtLeastOnce];
}

// 更新按钮状态
- (void)updateBtnStatus
{
    DeviceStatusCodeModel *code = [DeviceStatusCodeModel objectWithKeyValues:_currentDeviceInfo.device_data];

    if (![_currentDeviceInfo.device_online integerValue]) { // 离线状态
        _status = offLine;
        [self setTeapotCenterBtnWithStatus:offLine];
    }else{
        if ([code.p boolValue]) { // 开机状态
            _status = standby;
            [self setTeapotCenterBtnWithStatus:standby];
        }else{ // 关机状态
            _status = powerOff;
            [self setTeapotCenterBtnWithStatus:powerOff];
        }
    }

    // 更新首页控制按钮
    self.controlBtnView.time = self.result.time;
    self.controlBtnView.deviceInfo = _currentDeviceInfo;

    // 更新设备首页显示
    RTHomeCollectionViewCell *collectionViewCell =  [self getCollectionCurrentCell];
    if (collectionViewCell) {
        collectionViewCell.deviceInfo = _currentDeviceInfo;
    }
}

/**
 *  设置首页按钮展示样式
 */
- (void) setTeapotCenterBtnWithBackgroundImageName:(NSString *)imageName AndHighlightedName:(NSString *) highlightedName
{
    [self.teapotCenterBtn setBackgroundImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
    [self.teapotCenterBtn setBackgroundImage:[UIImage imageNamed:highlightedName] forState:UIControlStateHighlighted];
}

/**
 *  更新首页按钮展示:(添加设备/配置设备/开机/关机)
 */
- (void)setTeapotCenterBtnWithStatus:(deviceStatus)status
{
    if (status == offLine) {
        [self setTeapotCenterBtnWithBackgroundImageName:@"btn_ctrl_wifi_normal" AndHighlightedName:@"btn_ctrl_wifi_pressed"];
    }else if (status == standby){
        [self setTeapotCenterBtnWithBackgroundImageName:@"power_on_normal" AndHighlightedName:@"power_on_select"];
    }else if (status == powerOff){
        [self setTeapotCenterBtnWithBackgroundImageName:@"power_off_normal" AndHighlightedName:@"power_off_select"];
    }else if(status == notDevice){
        [self setTeapotCenterBtnWithBackgroundImageName:@"add_device_normal" AndHighlightedName:@"add_device_select"];
    }
}

/**
 *  添加菜单按钮
 */
- (void) setUpMenuBtn
{
    BlockButton *btn = [BlockButton newAutoLayoutView];
    btn.ClickOption = ^{
        RTMenuViewController *nemuController = [[RTMenuViewController alloc] init];
        [self.navigationController pushViewController:nemuController animated:YES];
    };
    [btn setImage:[UIImage imageNamed:@"menu"] forState:UIControlStateNormal];
    [self.view addSubview:btn];
    [btn autoSetDimensionsToSize:CGSizeMake(40, 20)];
    [btn autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:30];
    [btn autoPinEdgeToSuperviewEdge:ALEdgeRight withInset:10];
}

#pragma mark - CollectionViewDelegate / DataSource

- (void) registerCollectionNib
{
    UINib *xib = [UINib nibWithNibName:@"RTHomeCollectionViewCell" bundle:nil];
    [self.collectionView registerNib:xib forCellWithReuseIdentifier:ID];
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return self.dataList.count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    RTHomeCollectionViewCell *collectionViewCell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
    collectionViewCell.deviceInfo = self.dataList[indexPath.row];
    return collectionViewCell;
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    // 计算当前页数
    NSInteger page = scrollView.contentOffset.x / scrollView.bounds.size.width;
    if (page != _currentPage) {
        _currentPage = page;
        self.pageView.currentPage = page;
        if (self.dataList.count > page) {
            [SkywareDeviceManagement DeviceGetAllDevicesSuccess:^(SkywareResult *result) {
                self.result = result;
                self.dataList = [SkywareDeviceInfoModel objectArrayWithKeyValuesArray:result.result];
                self.currentDeviceInfo = self.dataList.count ? self.dataList[page]:nil;
                [self updateAllStatus];
                [self.collectionView reloadData];
                [SVProgressHUD dismiss];
                [kNotificationCenter postNotificationName:kScrollHomeViewRemoveLabel object:nil];
            } failure:^(SkywareResult *result) {

            }];
        }
    }
}

#pragma mark - MQTT ----Delegate
- (void)newMessage:(MQTTSession *)session data:(NSData *)data onTopic:(NSString *)topic qos:(MQTTQosLevel)qos retained:(BOOL)retained mid:(unsigned int)mid
{
    [self MQTTUpdateDeviceInfoWithData:data];

}

- (void)MQTTUpdateDeviceInfoWithData:(NSData *)data
{

    _MQTTParamsDict = [NSMutableDictionary dictionary];
    [_MQTTParamsDict setValue:data forKey:[NSString stringWithFormat:@"%ld",_currentPage]];

    SkywareMQTTModel *model = [SkywareMQTTTool conversionMQTTResultWithData:data];
    RTMQTTResultDataModel *deviceCode = [RTMQTTResultDataModel objectWithKeyValues:model.dataDictionary];

    // 更新首页开关按钮展示
    if (!model.device_online) { // 离线状态
        _status = offLine;
        [self setTeapotCenterBtnWithStatus:offLine];
    }else{
        if ([deviceCode.p integerValue]) { // 开机状态
            _status = standby;
            [self setTeapotCenterBtnWithStatus:standby];
        }else{ // 关机状态
            _status = powerOff;
            [self setTeapotCenterBtnWithStatus:powerOff];
        }
    }

    // 更新首页控制按钮
    self.controlBtnView.dataModel = model;

    //    NSLog(@"%@",model.dataDictionary);

    // 更新设备首页显示
    RTHomeCollectionViewCell *collectionViewCell =  [self getCollectionCurrentCell];
    if (collectionViewCell) {
        collectionViewCell.dataModel = model;
    }
}

/**
 *  获取当前显示的CollectionViewCell
 */
- (RTHomeCollectionViewCell *)getCollectionCurrentCell
{
    RTHomeCollectionViewCell *collectionViewCell = (RTHomeCollectionViewCell *) [self.collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:self.pageView.currentPage inSection:0]];
    return collectionViewCell;
}

#pragma mark - 按钮点击

/**
 *  点击了添加设备/配置设备/开关 按钮
 */
- (IBAction)teapotCenterBtnClick:(UIButton *)sender {
    if (_status == offLine) {
        // 设备离线,去配置网络
        AddDeviceViewController *deviceVC = [[AddDeviceViewController alloc] init];
        deviceVC.isAddDevice = NO;
        [self.navigationController pushViewController:deviceVC animated:YES];
    }else if (_status == powerOff){
        // 执行开机操作
        [SkywareDeviceManagement DevicePushCMDWithData:@[@"p::1"]];
    }else if (_status == standby){
        // 执行关机机操作
        [SkywareDeviceManagement DevicePushCMDWithData:@[@"p::0"]];
    }else{
        // 添加设备操作
        AddDeviceViewController *deviceVC = [[AddDeviceViewController alloc] init];
        deviceVC.isAddDevice = YES;
        [self.navigationController pushViewController:deviceVC animated:YES];
    }

}

#pragma mark - 懒加载
- (NSMutableArray *)dataList
{
    if (!_dataList) {
        _dataList = [[NSMutableArray alloc] init];
    }
    return _dataList;
}

/**
 *  监听设置新的设备
 */
- (void)setCurrentDeviceInfo:(SkywareDeviceInfoModel *)currentDeviceInfo
{
    _currentDeviceInfo = currentDeviceInfo;
    SkywareInstanceModel *instance = [SkywareInstanceModel sharedSkywareInstanceModel];
    instance.device_id = currentDeviceInfo.device_id;
}

@end


text:
Ana Lucia José Tima (ur. 10 października 1989 w La Romana) – dominikańska lekkoatletka specjalizująca się w trójskoku.

Brązowa medalistka mistrzostw Ameryki Środkowej i Karaibów (2011). W 2015 zdobyła srebro mistrzostw strefy NACAC oraz stanęła na najniższym stopniu podium światowych igrzysk wojska w Mungyeong, powtarzając ten wyczyn podczas kolejnej edycji w Wuhan.

Rekord życiowy: 14,52 (16 lipca 2022, Eugene) rekord Dominikany.

Osiągnięcia

Bibliografia
 Profil zawodniczki na stronie World Athletics  [dostęp 8 października 2021].

Dominikańscy lekkoatleci
Trójskoczkowie
Dominikańscy olimpijczycy
Lekkoatleci na Letnich Igrzyskach Olimpijskich 2016
Lekkoatleci na Letnich Igrzyskach Olimpijskich 2020
Ludzie urodzeni w La Romana
Urodzeni w 1989

redpajama_set_name: RedPajamaWikipedia


text:
St. Louis County prosecutor's office battles local police – on the ball field
by: Brian Ledford, Staff Writer
Posted: Sep 20, 2021 / 06:47 PM CDT
Updated: Sep 20, 2021 / 06:47 PM CDT
ST. LOUIS COUNTY, Mo. – It's likely to happen at any big family barbecue. A game breaks out after the meal and bragging rights are claimed. That's what happened today when area officers and representatives from St. Louis County government took to the diamond in north county.
Much colder Sunday with a chance for freezing rain
True Crime / 23 mins ago
Illinois / 12 hours ago

redpajama_set_name: RedPajamaCommonCrawl


text:
Stevie Nicks Made One Demand Before Teaming Up With Gorillaz
Ryan Reed Published: September 27, 2022
Picture Alliance / Kevin Winter, Getty Images
Stevie Nicks enthused about being an "honorary" member of Gorillaz: both singing on the virtual band's upcoming song "Oil" and popping up — in animated form — in the music video.
Appearing in the clip, she told Zane Lowe on Apple Music 1 (via NME), was her "one demand" for collaborating with Damon Albarn in the eclectic project. "That's how I know about the Gorillaz," she said. Because of all their crazy cartoon videos. … I want to be a Gorilla, and I want to have big, false eyelashes, and I want to have blonde hair, right? So that's what I said. And so they're doing it as we speak."
The singer added that she's "so proud" of her work with Gorillaz, having expanded an already-impressive resume of one-offs. "I was an honorary Heartbreaker," she said. "I was an honorary Foo Fighter. And now I'm an honorary Gorilla. I'm so happy." (Nicks has joined Foo Fighters onstage multiple times, and she famously collaborated with the Heartbreakers for her 1981 single "Stop Draggin' My Heart Around.")
"Oil" appears on the eighth Gorillaz album, Cracker Island, which also features guest spots from Beck, Thundercat, Tame Impala and Bad Bunny, among others. The record, out Feb. 24, 2023, follows 2020's Song Machine, Season One: Strange Timez.
Nicks, who recently released a cover of Buffalo Springfield's protest anthem "For What It's Worth," is currently deep into the second leg of a U.S. solo tour. Her next date is Sept. 30 at Ohana Festival in Dana Point, Calif., and the trek wraps on Oct. 31 in Huntsville, Ala.
Fleetwood Mac Solo Albums Ranked
There have been more than 40 of these outside projects, which deepen and add to the band's legacy.
Next: Top 10 Stevie Nicks Songs
Source: Stevie Nicks Made One Demand Before Teaming Up With Gorillaz
More From Sasquatch 92.1 FM
How Christine McVie's Deep Friendship With Stevie Nicks Blossomed
Stevie Nicks Announces Second Leg of 2022 US Tour
Stevie Nicks Returns to Live Performing at New Orleans Jazz Fest


text:
Frontpage > All together for IPO
All together for IPO
ERP Portugal donates equipment to IPO and challenges Portuguese once again
"All together for IPO" campaign exceeded all expectations and continues in 2021. To contribute, you only need to deliver small equipment and batteries in one of the more than 5000 ERP Portugal collection points, including schools, companies and the IPO itself.
"All together for IPO" campaign ended 2020 with results that exceeded all expectations and culminated with the delivery of a donation for the acquisition of 40 PDA (Personal Digital Assistant) to the Portuguese Institute of Oncology in Lisbon Francisco Gentil (IPO Lisboa). This equipment will be used in the LabTrack transfusion and analytical security system implementation project, which aims at strengthening patient safety during the process of blood transfusions and blood components.
The donation is the result of a partnership between IPO Lisboa and ERP Portugal, which first joined the Institute in 2020, a renewed partnership for the year 2021 that continues to challenge the Portuguese to participate in the recycling of their waste, while helping the IPO to fulfill its mission.
Sandra Gaspar and Júlio Pedro, executive members of IPO Lisbon Administration Board, thank all those who contributed by delivering used batteries and small electronics in the collection points of companies, schools and the IPO itself and highlight the relevance of this initiative, stating that the mobilization of people and companies around this action reflects the Institute's professionals work recognition.
Rosa Monforte, ERP Portugal General Manager, adds that "we are very satisfied with the results obtained and we very much want to continue to support the IPO and the work developed by its professionals. We believe that a solidarity cause is a great incentive for the Portuguese to recycle more, especially knowing the spirit with which the Portuguese embrace and contribute to noble causes like this one. In 2021 we hope to overcome the results obtained and contribute to the acquisition of other goods necessary for this Institute, which is so essential for so many Portuguese families."
To continue participating in the "All together for IPO" action, just hand over your small electrical and electronic equipment and end of life batteries at the more than 5000 ERP Portugal collection points, nationwide, including also IPO facilities (list available here).
Each delivery of used batteries or small electrical and electronic devices (remote controls, flashlights, watches, toasters, hairdryers, irons, computers, printers, mobile phones, etc.) makes the difference in a cause where health and the environment are holding hands.
The collected waste by the end of 2021 will again be "transformed" into another donation to IPO.
Follow all the news on ERP Portugal Linkedin, Instagram or Facebook.
It is not only about process and compliance, but also about networking. ERP shares knowledge, insights, and news so that together we promote the sustainable agenda.


text:
MSBuild is under active development primarily in two different areas: .NET Core MSBuild and Desktop MSBuild.

# .NET Core MSBuild
Our goal is the enable a subset of MSBuild to run cross-platform and build applications that target the .NET Core framework. This version should be delivered via NuGet and have no required dependencies on the machine (no installer, no registry, no GAC). It is not intended to replace the version integrated with Visual Studio nor build projects targeting the full .NET Framework.
 * Fully support Linux, OSX, and Windows with all .NET Core MSBuild features.
 * Eliminate dependency on the full .NET Framework (and mono).
 * Enable features over time to reduce feature gap ([#303](/Microsoft/msbuild/issues/303), [#304](/Microsoft/msbuild/issues/304)).

 * Note that features like toolsets, registry, GAC, Frameworks, etc. that do not apply to building .NET Core applications will remain disabled.*

# Desktop MSBuild
This version of MSBuild is the version we ship with Visual Studio (previously shipped as part of the .NET Framework) and runs on the full .NET Framework. Our goal is to maintain a single code base with a high degree of compatibility and stability between releases. As such, the bar for new features or behavior change should be very high.

## Quality
 * Performance-related fixes to improve the end-to-end experience for developers in Visual Studio. [ongoing]
 * Fix top-hitting issues gathered from feedback and Watson events (crash data). [ongoing]

## Performance
 * Address "low-hanging fruit" to improve build speed, particularly around C++. [post Update 1 time-frame]
 * Improved incremental build with help of fully deterministic Roslyn builds. [post Update 1 time-frame]

## Technical Debt
 * Merge codebases (xplat, master, and internal branches). [RC time-frame]
 * Introduce compiler constants for CoreCLR feature flags.
 * Ship MSBuild for Visual Studio out of GitHub sources. [Visual Studio vNext time-frame]

## Telemetry
 * Gather additional data on usage and issues (hangs in Visual Studio, etc). [tentatively RTM time-frame]

# Branch Strategy
 * `xplat`: Work for cross-platform support, primarily focused on CoreCLR.  In the medium term, we should build both CoreCLR and Desktop MSBuild from the same branch and merge this branch into `master`.
 * `master`: Work for Desktop MSBuild for Visual Studio "15", for now manually mirrored into internal source control.
 * Microsoft Internal: At the moment, the "official" location that produces builds that ship with Visual Studio and its updates.  Changes are manually mirrored from GitHub `master` as we go along.
 * Stabilization: when we're preparing a release, we'll start a branch for that release. Most commits should be pushed to `master` as usual. Last-minute bugfixes can have pull requests targeting the update branch. Any commit to the release branch should be followed immediately by a merge of the release branch to `master`, so that `master` is always up to date. Since `master` is now destined to release with Visual Studio "15", commits intended to be included in an update for Visual Studio 2015 (MSBuild 14.0) should go to `dev14-update`.
 * Mono support: Still TBD. See [#302](/Microsoft/msbuild/issues/302). LKG xplat [`@f9d8cc7`](https://github.com/Microsoft/msbuild/commit/f9d8cc725ca2cd46d7e01015afba0defea95ce37)

redpajama_set_name: RedPajamaGithub


text:
Top federal IT official stepping down in July
By Maggie Miller - 06/25/20 02:17 PM EDT
© UPI Photo
The White House announced Thursday that the Trump administration's top IT official, Suzette Kent, will step down from her position in July.
Kent, who was appointed Federal Chief Information Officer (CIO) by President Trump Donald TrumpCIA chief threatened to resign over push to install Trump loyalist as deputy: report Azar in departure letter says Capitol riot threatens to 'tarnish' administration's accomplishments Justice Dept. argues Trump should get immunity from rape accuser's lawsuit MORE in early 2018, announced her departure during a team meeting on Thursday. The position heads the Office of E-Government and Information Technology, part of the White House's Office of Management and Budget (OMB).
In the position, Kent was responsible for developing guidance on the use of internet-connected technology, along with streamlining digital interaction between the federal government and U.S. citizens and businesses, as well as overseeing some cybersecurity initiatives.
During her tenure, a new cloud computing initiative was launched, along with rolling out updated policies around how federal agencies can secure their networks.
Kent said in a statement that it had been "an honor and a privilege to serve our nation."
"My commitment was to give 100 percent to improving government technology and citizen services," Kent said. "It is my hope that the outcomes achieved stand in evidence to that commitment."
She noted that she had "confidence" in the abilities of other top OMB leaders, including Deputy Federal CIO Maria Roat, and added she had "great pride in results delivered" while serving at OMB.
Roat will likely step into the position of federal CIO on an acting basis, but the White House has not commented officially on who will take over.
Kent did not comment on what her next steps are following her departure next month.
Acting OMB Director Russ Vought thanked Kent on Thursday for her service.
"I want to thank Suzette for all of her work on behalf of the President," Vought said in a separate statement. "During her time at the White House she's had a remarkable impact on Agencies operations, helping to drive critical modernizations through the President's Management Agenda. On behalf of the entire Office of Management and Budget, I want to express my deepest gratitude for Suzette and wish her all the best in this next chapter."
Kent was the fourth person to serve as permanent federal CIO since the position was created by the E-Government Act of 2002. She previously served in top positions at Ernst & Young, JPMorgan and Accenture.
Tags Donald Trump IT Information technology


As you browse your iPod library, make phone calls, or check twitter, the public will think you're utterly insane. They will stare in awe at the back of your phone. Little do they realize, you've actually got an iOS homscreen decal on the back...pretty crazy.
We are ordering these! Check back for a video review.
Want to buy one? Check out the product page.


A fishing boot from Volendam moors alongside the fish market in Monnickendam. Inside, the fish traders are ready to bid for herring, mackerel and smelt. The trader who makes the highest bid takes home the catch to his smokery. He invites you to come and see how he smokes the fish. Others have less sophisticated equipment and simply smoke the fish outside in smoke barrels. Would you like to try some? Help yourself.
The Monnickendam Fish Days give a glimpse of the Monnickendam of times gone by. Our guides are happy to take you on a tour through our picturesque town that at one time had as many as 30 smokeries. They can tell you all about them. The original Waterland ferry, which brought the first tourists to Marken in the fourties and fifties, sails to this beautiful formar Island at fixed times.
On Fish Days there are also basket weavers, clog makers and people mending nets working on the quayside. At the end of the afternoon, local actors, who have had a few drinks, ensure there is plenty of entertainment. There is also a street market selling local produce. Fishermen's choirs sing songs about the old days and children play traditional Dutch games. In short, a unique experience – a trip back in time to the Monnickendam of 100 years ago!


text:
https://www.trumbulltimes.com/past_obituaries/article/Obituary-Annamarie-Penny-Weinschenk-Smith-86-13925636.php
Obituary: Annamarie "Penny" Weinschenk Smith, 86, of Trumbull
Sharon Cappetta
Published 2:57 pm EDT, Tuesday, March 24, 2015
Annamarie Weinschenk Smith, 86, better known as Penny, of Trumbull CT passed away peacefully in her home on Monday 3/23.
She was born in Scranton PA to Leo and Catherine Weinschenk and was the youngest of 5 girls. They moved to New Hyde Park on Long Island when she was just a baby.
Penny had two careers in her life. For 19 years she worked for "New York Telephone" starting out as an operator during the war and retiring as one of the first female draftspersons they trained.
In 1968 she married the first love of her life, Thomas Smith Jr., and moved to Monroe CT where she loved being a housewife and rooting for her beloved Mets. She eventually moved to Stratford and worked for Philips Medical Systems as a training coordinator until her retirement at age 65.
Her and Tommy loved to go to The Smithy every week after mass and have dinner and enjoy their Jim Beam manhattans. They enjoyed Foxwoods, yearly cruise vacations and playing computer games. She was always had a kind word/complement for anyone she would meet from her family to the checkout girl at the grocery market.
She was preceded in death by her parents, her four sisters (Rosemarie, Florence, Delores and Rilla), and her life long love, Thomas F. Smith, Jr.
Penny is survived by her daughter, Darlene and her husband Michael Knight; son, Tommy and his wife Cathie; Grandchildren Lori, Jack, Marie, and Matthew; and Great Granddaughter, Katelin and many nieces and nephews.
Prior to the Mass, Friends may greet the family on Saturday, March 28 from 9am-10:30am at the Spadaccino and Leo P. Gallagher & Son Community Funeral Home, 315 Monroe Turnpike, Monroe. A Mass of Christian Burial will be held at St. Stephen Church, 6948 Main Street, Trumbull at 11:00am and burial will follow in St. John the Baptist Cemetery, Moose Hill Road, Monroe.
In lieu of flowers, donations may be made to St. Jude Children's Research Hospital at StJude.org.
Online condolences may be made at www.spadaccinofuneralhome.com.


You don't want to miss this practical presentation as we learn to do real hands on practice from start to finish; so get ready to shake hands and practice that eye contact. Learn all the tips and tricks before, during and after the interview to keep you ahead of the competition!
COSTI's Youth Employment Services are an excellent starting point for individuals looking for work, but unsure as to how to go about finding the right job. For youth interested in starting a career, or those simply looking for part-time or summer employment, a broad range of services and supports are available.


text:
Home / General News / News / Army Takes Action Against Eight Soldiers Who Abandoned Duty Post During Metele Attack
Army Takes Action Against Eight Soldiers Who Abandoned Duty Post During Metele Attack
The Nigerian Army has dismissed eight soldiers accused of abandoning their duty post during the Boko Haram insurgents' fierce attack on 157 Task Force Battalion, Metele village, in the Guzamala Local Government Area of Borno State.
Several soldiers including army commander, Lt. Col. Ibrahim Sakaba, died in the attack, which occurred in November 2018.
SUNDAY PUNCH exclusively learnt that the eight soldiers were discovered to be absent during a headcount at the base. Some of them were said to have resurfaced a month after the incident.
On April 19, 2019, the Acting Commanding Officer, 157 Task Force Battalion, Major UI Lezuya, ordered a regimental inquiry to ascertain the circumstances that led to their AWOL and subsequent reappearance.
Multiple military sources said the terms of reference which guided the regimental inquiry included when the soldiers left the battalion; reasons for leaving; when they rejoined the unit; days absent from the unit; and what they were doing during the period of absence.
Others were the whereabouts of their rifles while absent; if they returned with their rifles to the unit; and whether the unit took action against them including apportioning of blame and recommending appropriate punishments when necessary.
A highly-placed military source told SUNDAY PUNCH that at the end of the inquiry, the five-member panel comprising a chairman, three members and a secretary, found the soldiers culpable. They were subsequently dismissed from service.
The source who refused to give the names of the affected soldiers described the punishment as harsh.
He noted that the soldiers gave reasons for their absence during the trial and should have been punished in other ways.
He said, "It was glaring that the soldiers are ready to continue to defend their fatherland with their remorseful manner during the trial. They should have been de-ranked, imprisoned or handed high labour. Their dismissal is too harsh. I urge the army authorities to look into the matter.''
It was further gathered that there had yet been a signal regarding the decision neither to the units of the dismissed soldiers nor to the army headquarters.
The ranks of the affected soldiers ranged from private, lance corporal to corporal with their length of service between five and 11 years.
The acting Director, Army Public Relations, Col. Sagir Musa, could not be reached for comment as his mobile telephone was switched off as of press time on Saturday. He had also yet to reply to a text message sent on the matter.
The acting Director, Defence Information, Col. Onyema Nwachukwu, also was not available for comments.
Meanwhile, a source at the army headquarters told one of our correspondents that there were official channels of complaints if the affected soldiers were not satisfied.
The source said, "They can appeal the court-martial. They can get a lawyer to write to the Nigerian Army headquarters on their behalf. There are also desks where such communication is referred. If indeed they feel it was a kangaroo trial, they know where to go, certainly."


Why Some Cheat, But Most Remain Faithful?
Do SAD Lamps Actually Work?
Kevin McSorley is a Senior Lecturer in Sociology, University of Portsmouth.
Bernd Fritzsch, Ph.D., is the Director of the Aging Mind and Brain Initiative.
Professor of Complex and Intelligent Systems at the University of Passau.