text:
Journalism - page 3
How MUN Students Created a New Student Refugee Program
Published on November 25, 2019 in Featured/Journalism by Meagan Campbell
On November 6, a referendum confirmed that MUN will become the 93rd institution in Canada to create a Student Refugee Program. Here's how it happened.
Memorial Students Rejected a Bad Proposal, Not a U-Pass Program
If you're disappointed with the results of the recent U-Pass student vote at Memorial, don't be disappointed with the students.
We need solidarity now more than ever
"Power goes to two poles – to those who've got the money and those who've got the people." — Saul
Driving women out
How MUN's reliance on contract labour is creating a hostile environment for female professors.
"What is a Story For?": Michelle Porter, Journalist-Poet
Published on November 4, 2019 in Arts & Culture/Interview/Longread by Rhea Rollmann
Michelle Porter talks with the Indy about her debut book of poems, writing with purpose, journalism's place in her poetry, & her favourite Métis literature.
In a Pandemic, Local Journalism is More Valuable than Ever
Journalism is fundamental to keeping our society and democratic way of life alive as it too faces unprecedented stresses from
Though framed as anti-pipeline protests, Wet'suwet'en reveals deeper national conflicts—what Minister Carolyn Bennett called "150 years of broken promises."
Trade unions get scant coverage in modern mainstream media
Back in the 1960s, 1970s, and into the '80s, almost all of the large newspapers in Canada had a reporter
Published on October 11, 2019 in Featured/Investigation/Journalism/Longread by Rhea Rollmann
The circumstances surrounding Jenny Wright's departure from her post as Executive Director of the St. John's Status of Women Council (SJSWC) were mysterious from the outset. After five years at the helm of the feminist advocacy group, she abruptly announced her resignation on March 21, 2019. A month later on April 17, CBC published a story reporting on a leaked letter, signed by eight individuals, that was sent to Wright's employer (the SJSWC Board of Directors) on November 9, 2018. It complained about "damaged relationships" and accused Wright of "creat[ing] a divide within the community sector." The letter was signed by representatives of five local community groups, one private individual, Linda Ross on behalf of the Provincial Advisory Council on the Status of Women (PACSW), and Chief Joe Boland on behalf of the Royal Newfoundland Constabulary (RNC). The signatories demanded an in-camera meeting with Wright's employer to discuss their concerns,…
RNC Partnership May Be Over, but SHOP is Busier than Ever
"As long as sex work is criminalized then authorities have a mandate to treat sex workers as criminals. They're oversurveilled
Two months after a mistrial was declared in the Snelgrove case, a panel convened in St. John's to demand justice
Each trial is its own contained drama, but it is also a link in the chain of our laws.
Berni Stapleton is Paving Her Own Path
Published on October 9, 2019 in Arts & Culture/Featured/Interview/Longread by Rhea Rollmann
Memorial University's new writer-in-residence talks about inclusive theatre, the power of the province's past, and her pathbreaking career in the arts.
Is corporate concentration a central part of the province's long-term strategy for the fishery? How does that benefit Newfoundlanders and
There was something weird spotted in the sky above Main Brook on Newfoundland's Great Northern Peninsula in January 2020.
Ladies Who Lunch and the Thrill of Homegrown Horror
With all original pieces, in-show "ads" and an on-stage Foley artist, Ladies Who Lunch showcase the passion that goes into
Buy Local, Save Local: Making NL More Self-Sufficient
Published on August 26, 2019 in Analysis/Featured/Journalism by Cory Collins
Every year, money flows out of NL that could instead sustain local jobs and investment. Why not make our economy more interdependent by reducing imports?
Shunned by Premier, Perry Trimper Strikes Out on His Own
Not only was Trimper not invited to join Premier Furey in his own district, but he wasn't even informed that
Budget 2020: Waiting for Moya Greene's Renaissance
Newfoundland and Labrador has finally delivered its long-awaited 2020 budget. The key takeaway: watch this space for Budget 2021.
The "Pandemic Budget," and Politics at the End of the Line
The truth is even simpler than it was last year. The province, despite seven years of austerity, is even closer
Filling the Void: Churchill Square, Parking, & City Planning
Published on August 22, 2019 in Featured/Journalism/Longread by Luke Quinton
Churchill Square was once St. John's most visionary urban development. Now its future hinges on its value as a parking lot. How did the city get here?
Whatever comes next in the Memorial University U-Pass conversation, it's clear that students need to be involved in a meaningful
Why St. John's Struggles to Regulate Noisy Vehicles (and What Ward 2 Candidates Would Do)
Back in the spring of 2009 there was a committee meeting. According to the meeting notes, members of the Police
Those who assembled on Saturday in solidarity with Wet'suwet'en are among thousands taking part in ongoing blockades and demonstrations across
The Online Front: Kashmir Conflict Spills Onto Social Media
Published on August 21, 2019 in Featured/Journalism by Rhea Rollmann
"Social media is biased, not to the Left or the Right, but downward," writes Jaron Lanier. "Negative emotions are being amplified more than positive ones."
Speaking as a Car-Owner: It's Time for a War on Cars
Owning a private motor vehicle no more accords you rights to extra public space than owning real estate accords you
"We Need Peace": NL Kashmiris Await News of Loved Ones
Published on August 21, 2019 in Featured/Interview/Journalism by Rhea Rollmann
"It's very important to emphasize that it seems like a political issue—and it is—but at its core, at its heart, what is resonating is humanitarianism."
The NL Expat Survey, Part 2: Growth Opportunities
Published on July 22, 2019 in Analysis/Featured/Journalism by Jenn Thornhill Verma
Last week, The Indy explored the reasons why young people are leaving Newfoundland and Labrador. Today, we're exploring ideas that might bring them back.
The Newfoundland and Labrador Expatriate Survey (Part 1)
As Newfoundland and Labrador struggles with demographic decline, its provincial government searches for answers from those who left the province behind.
Cod and the Fishery: Down, but Not Out
Published on July 2, 2019 in Analysis/Featured/Journalism by Jenn Thornhill Verma
Compared to pre-moratorium times, today there are fewer fish, fishers, processors, vessels, and plants. But the value of our fishery remains high.
Are There Bears on the Avalon Peninsula? An Investigation
Changing climates and municipal regulations may have unpredictable effects on the island's black bear—also known as 'dump bear'—population.
LETTER: Premier Furey, We Need a Green New Deal
The time has come for Newfoundland and Labrador to seize the opportunity to be a national leader and set ourselves
Newfoundland and Labrador's 'Clean Oil' in a Global Context
The relative cleanliness of NL's offshore oil is the key selling-point for the industry's future in a low-carbon world. But
New Hospital for Corner Brook Announced, Again
Published on June 28, 2019 in Journalism by Drew Brown
The hospital's projected opening in 2023 would come 16 years after it was announced for the first time as part of Danny Williams' 2007 re-election campaign.
The Dirty Politics Behind Cleaning NL's Dirty Water
Supporting a fiscally irresponsible P3 "solution" for wastewater defers true costs and make immediate budgets look more 'responsible.' Is that
Corner Brook residents march against austerity
First Nations leaders, community groups and residents march in Corner Brook, call on Liberals to rescind austerity budget.
Why are the Liberals pushing something that will make our fiscal crisis worse?
There is more proof than ever about the failure of privatization. So why is government still talking about it?
The Future (of Fishing) is Female
Published on June 27, 2019 in Featured/Journalism by Drew Brown
Women have been the backbone of the Newfoundland and Labrador fishery for centuries. Earning that recognition is reshaping the maritime world.
Cod Haven't Fully Returned, but We Still Return for the Cod
Fishing can still be an important part of our lives. Preserving the cod and traditional fishing approaches requires reverence for
Lela Evans: From Muskrat Falls Protests to MHA
Published on June 19, 2019 in Featured/Journalism/Longread/Profile by Rhea Rollmann
"I made a commitment to my people and I'm going to live and die with that commitment. I'm going to represent my people."
With so much so much at stake, shrouded in so much secrecy, spread out across unruly social media platforms, chaos
"Stay Away:" Northern Communities Brace for Covid-19
Last Wednesday, after a meeting with heads of government, health officials, police, and even the local fire department, Joe Dicker
Before Muskrat: Twin Falls & Our New, Difficult Heritage
The first (but forgotten) dam on Labrador's Grand River can tell us a lot about our province's past—and its future.
Rethinking the Debt in Newfoundland & Labrador
Published on June 18, 2019 in Analysis/Featured/Journalism by Cory Collins
Is there a progressive answer to how Newfoundland & Labrador's debt could be managed while avoiding crippling austerity?
#NLRising, 3 Years On
The 2019 NL provincial election is just eight days away, and yesterday marks three years since the #NLRising rally on
Oil is On the Way Out, but NL is Going All-In
Greta Thunberg, a 16-year-old Swede, has jolted the world awake by simply telling a hard truth: adults have stolen her
Canada Complicit in Genocide: MMIWG Report
Published on June 4, 2019 in Journalism by Drew Brown
The findings and recommendations of the MMIWG Report may be dismissed, but its charge of genocide cannot be ignored.
Dam Nation: Fortis in Belize, Part 2
Published on June 3, 2019 in Analysis/Featured/Journalism/Longread by Stephen Crocker
Should we be surprised that the practices fine-tuned by marauding corporations in the developing world are finally coming home to roost?
If Andrew Furey wants to sell himself as a political leader who can make tough decisions in these difficult times,
With the premier out of the picture, it is harder to hide the hungry abyss at the heart of Newfoundland
In his own words, Dwight Ball reflects on his resignation, achievements, and legacy as the 13th Premier of Newfoundland and
Published on May 27, 2019 in Analysis/Featured/Journalism/Longread by Stephen Crocker
To understand how problems at Muskrat Falls arose and what might yet become of them, there is a lot to learn from Fortis' Chalillo dam in Belize.
There are No Captains at the Wheel
Published on May 16, 2019 in Editorial/Featured/Longread/Politics by Drew Brown
This election is a referendum on Newfoundland and Labrador's political class, and the status quo is losing. All we're missing is a way to vote "no."
From the circumstances prompting it to the candidates running, here is everything you need to know about Newfoundland & Labrador's
I Wrote Ches Crosbie's Weird Instagram Posts
My hands tremble as I write these words, this foul admission of my greatest professional shame—and yet, I am filled
Published on May 8, 2019 in Opinion/Politics by Colleen Power
The 2019 NL provincial election is just eight days away, and yesterday marks three years since the #NLRising rally on Confederation Hill, organized by the NL Federation of Labour. I was invited to sing a couple of songs, so I took the opportunity to write a new one, directly addressing the 2016 Liberal austerity budget. Out came 'Go Away Dwight and Cathy', which singled out cuts to education and library closures, cuts to healthcare, and the 'deficit reduction levy'. The 2016 Liberal budget was an attack on the people of Newfoundland and Labrador, there is no doubt about that. But people spoke out. The rally worked, to some degree. The song? The downfall of writing political songs is that they are only usually relevant to a situation for a short period of time, however, they will always remain historically significant. 'Go Away Dwight and Cathy' never gets much airplay these…
"Pulling on the Same Oar": Meet Labrador's Unlikely Alliance
Political shakeups in the Big Land sent Lela Evans & Jordan Brown to the House of Assembly. Now they're working
If Dwight Ball has learned anything amid all the turmoil and unrest of his first mandate, it's that it can't
"I made a commitment to my people and I'm going to live and die with that commitment. I'm going to


text:
Red Light Negroni (21.9% abv)
GSN Brews News: August 31st 2021 Edition
Novo Fogo Cachaça is bolstering its line of canned cocktails with a new Brazilian Old Fashioned Highball RTD. It's made with Novo Fogo's one-year aged Chameleon cachaça, making it the first canned cocktail in the brand's lineup to contain an aged spirit, along with vanilla syrup, orange and aromatic bitters, water, and carbonation. Following in the footsteps of Novo Fogo's Sparkling Caipirinha RTD line, launched in 2017, the Old Fashioned Highball is at 9% abv and is available nationwide for $3 a 200-ml can or $12 a 4-pack.
Boston, Massachusetts' Harpoon Brewery is continuing its partnership with Dunkin' and will release three collaborative beers this fall. The three new releases—Blueberry Matcha IPA (6.6% abv), Maple Crème Blonde Ale (5.5%), and Midnight American Porter (6%)—will join the companies' prior collaboration, Harpoon Dunkin' Pumpkin Spiced Latte Ale. The new beers will be available staring in September throughout Harpoon's distribution footprint in a new variety 12-pack.
Escondido, California-based Stone Brewing is launching Orange Scream Hazy IPA, the inaugural release of its new One Batch Dispatch Series. Inspired by creamsicle popsicles, Orange Scream is brewed with orange and vanilla to weigh in at 8.8% abv. On sale September 2, it's a highly limited release, as all installments in the One Batch Dispatch Series will be, because each beer will be brewed just once and be made available only at Stone locations and online. The Dispatch Series will initially ship only to California, followed by Nevada, Ohio, Kentucky, Virginia, and Washington D.C, with others coming afterward.
Lucas Bols has introduced Bols Ready to Enjoy Cocktails, a new line of RTDs soon to be available in 200-ml. tubes as well as 375-ml. bottles. The new cocktails come in four varieties—Margarita Azul (14.9% abv), Espresso Martini (14.9% abv), Red Light Negroni (21.9% abv), and Very Old Fashioned (30% abv)—and are made with Bols spirits and liqueurs plus added natural flavors. The new line will launch in the fall with 200-ml. tubes retailing for around $7 and 375-ml. bottles going for around $13.
Minnesota-based Indeed Brewing Co. is introducing Boon hard kombucha in cans. Indeed originally released Boon Blueberry Basil on draft in its Minneapolis and Milwaukee taprooms in January, where it received overwhelmingly positive feedback from patrons. Boon (8.2% abv) will be debuting in cans in the Twin Cities area starting August 30, with Wisconsin distribution to follow. Indeed's portfolio is anchored by its flagship Day Tripper Pale Ale, and also includes newer offerings like Flavorwave IPA and Mexican Honey Light, as well as a Wooden Soul series of wild, sour, and barrel-aged beers.
Comstock, Michigan-based Bell's Brewery is releasing Rind Over Matter, the first official release in its new Wheat Series. It's an American Wheat Ale brewed with lemon and orange zest at 5% abv. Available now across Bell's Brewery's distribution footprint, supplies will last through October when it will be followed by Belgian-inspired Bright White in November.
Blue Moon Brewing Company is joining the explosive hazy beer category with its new release Moon Haze. Brewed with dried whole oranges, it's the first nationally released pale ale from Blue Moon, as the company's flagship release is a wheat beer. Moon Haze is at 5.7% abv and is available now nationwide in 6- and 12-packs of 12-ounce cans.
Posted in Beer, Kombucha, RTD	| Tagged and Midnight American Porter (6%), and Very Old Fashioned (30% abv), Bell's Brewery, Blue Moon Brewing Company, Blueberry Matcha IPA (6.6% abv), Bols Ready to Enjoy Cocktails, Boon Blueberry Basil, Brazilian Old Fashioned Highball RTD, Espresso Martini (14.9% abv), Harpoon Brewery, Indeed Brewing Co., lucas bols, Maple Crème Blonde Ale (5.5%), Margarita Azul (14.9% abv), Moon Haze, Novo Fogo Cachaça, Orange Scream Hazy IPA, Red Light Negroni (21.9% abv), Rind Over Matter, Stone Brewing | Leave a comment

redpajama_set_name: RedPajamaCommonCrawl


text:
——The SidToday
Yakima Research Station at 30 Years: The Beginning
When the Yakima Research Center in Washington state opened in 1970, staff there received a letter and gift from an NSA facility in Ethiopia intended to collect signals from Soviet deep space vehicles.
Collapse DetailsExpand Details
Document's Date
NSA History
DYNAMIC PAGE -- HIGHEST POSSIBLE CLASSIFICATION IS TOP SECRET // SI / TK // REL TO USA AUS CAN GBR NZL (U) Yakima Research Station at 30 Years: The Beginning FROM: YRS Station Chief Run Date: 03/05/2004 FROM: YRS Station Chief (U) In early October, Yakima Research Center will commemorate 30 years of operations. We thought this would be a good time to look back at the earliest days to see how it all began here at YRS. Here are a couple of snippets: (U) From the Yakima Herald Republic, Monday, November 23, 1970: $2 million Communications Base Research Unit at YFC? A proposed $2million communications research facility may be constructed at the Yakima Firing Center, Sen. Henry M. Jackson, D-Wash., announced Sunday. "The Department of Defense has pretty well settled on locating the communications base at the Yakima range," Sen. Jackson said. The department has a number of problems to resolve, "including a hang up on the funding," said Jackson, a member of the Senate armed services committee. "This has the promise of a long-term operational with a high caliber, well paid staff - it will be a fine addition to our state," Jackson said. The facility could be in operation by 1974 if all the plans are worked out, he predicted. (S//SI) The below letter was received by YRS in 1974, accompanied by a wood carving of the Imperial Parabolic Lion of Judah. The woodcarving, which still resides at the Station, was most likely made locally in Asmara, Ethiopia. From Department of Defense, STONEHOUSE** Facility, FPO, New York, 09545 "STONEHOUSE, the oldest of the Agency's 'big dish' facilities, sends greeting to NSA Yakima, the youngest. May the Imperial Parabolic Lion of Judah bring good luck in your future endeavors." -- , Chief STONEHOUSE. (U) Throughout this anniversary year I will provide more snippets of the history of YRS, and wrap up in November with our view of the future of the station/mission. Watch for further installments! ** (U//FOUO) Here's some background on STONEHOUSE, as reported in the May 8, 1995 Communicator: (S//SI) May 1965: NSA opened STONEHOUSE, the first and only facility designed for the collection of signals from Soviet deep space vehicles. STONEHOUSE was located at a remote Army Security Agency (ASA) station in Asmara, Ethiopia, and was jointly manned by NSA civilians and ASA cryptologists. The site sported two huge dishes, one measuring 150 feet, to collect the distant radio transmissions. The Soviets launched very few space probes. As a result, STONEHOUSE's main value turned out to be the collection of Soviet MOLNIYA communications satellites which were first launched about the time STONEHOUSE went into operation.
(S//SI) STONEHOUSE closed in 1975. "(U//FOUO) SIDtoday articles may not be republished or reposted outside NSANet without the consent of S0121 (DL sid_comms)." DYNAMIC PAGE -- HIGHEST POSSIBLE CLASSIFICATION IS TOP SECRET // SI / TK // REL TO USA AUS CAN GBR NZL DERIVED FROM: NSA/CSSM 1-52, DATED 08 JAN 2007 DECLASSIFY ON: 20320108


text:
"""
conference.py -- Udacity conference server-side Python App Engine API;
    uses Google Cloud Endpoints

$Id: conference.py,v 1.25 2014/05/24 23:42:19 wesc Exp wesc $

created by wesc on 2014 apr 21

"""

__author__ = 'wesc+api@google.com (Wesley Chun)'

from datetime import datetime
from datetime import date
from datetime import time

import endpoints
from dateutil.parser import parse
from protorpc import messages
from protorpc import message_types
from protorpc import remote

from google.appengine.api import memcache
from google.appengine.api import taskqueue
from google.appengine.ext import ndb

from models import ConflictException
from models import Profile
from models import ProfileMiniForm
from models import ProfileForm
from models import StringMessage
from models import BooleanMessage
from models import Session
from models import SessionForm
from models import SessionForms
from models import Speaker
from models import SpeakerForm
from models import Conference
from models import ConferenceForm
from models import ConferenceForms
from models import ConferenceQueryForms
from models import TeeShirtSize

from settings import WEB_CLIENT_ID
from settings import ANDROID_CLIENT_ID
from settings import IOS_CLIENT_ID
from settings import ANDROID_AUDIENCE

from utils import getUserId

EMAIL_SCOPE = endpoints.EMAIL_SCOPE
API_EXPLORER_CLIENT_ID = endpoints.API_EXPLORER_CLIENT_ID
MEMCACHE_ANNOUNCEMENTS_KEY = "RECENT_ANNOUNCEMENTS"
MEMCACHE_FEATURED_KEY = "FEATURED_SPEAKER"
ANNOUNCEMENT_TPL = ('Last chance to attend! The following conferences '
                    'are nearly sold out: %s')
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

DEFAULTS = {
    "city": "Default City",
    "maxAttendees": 0,
    "seatsAvailable": 0,
    "topics": ["Default", "Topic"],
}

OPERATORS = {
    'EQ': '=',
    'GT': '>',
    'GTEQ': '>=',
    'LT': '<',
    'LTEQ': '<=',
    'NE': '!='
}

FIELDS = {
    'CITY': 'city',
    'TOPIC': 'topics',
    'MONTH': 'month',
    'MAX_ATTENDEES': 'maxAttendees',
}

# The Udacity evaluator suggested creating a more descriptive name for
# inputString. But I have abstracted all of the Get or Delete requests into a
# single ResourceContainer, so per-endpoint naming is not possible.

GET_OR_DELETE_REQUEST = endpoints.ResourceContainer(
    message_types.VoidMessage,
    inputString=messages.StringField(1), )

CONF_POST_REQUEST = endpoints.ResourceContainer(
    ConferenceForm,
    inputString=messages.StringField(1), )

SESS_POST_REQUEST = endpoints.ResourceContainer(
    SessionForm,
    inputString=messages.StringField(1), )

GET_CONF_SESS_BY_TYPE_REQUEST = endpoints.ResourceContainer(
    wsck=messages.StringField(1),
    sessType=messages.StringField(2), )

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

@endpoints.api(
    name='conference',
    version='v1',
    audiences=[ANDROID_AUDIENCE],
    allowed_client_ids=[
        WEB_CLIENT_ID, API_EXPLORER_CLIENT_ID, ANDROID_CLIENT_ID, IOS_CLIENT_ID
    ],
    scopes=[EMAIL_SCOPE])
class ConferenceApi(remote.Service):
    """Conference API v0.1"""

    # - - - Conference objects - - - - - - - - - - - - - - - - -

    def _copyConferenceToForm(self, conf, displayName):
        """Copy relevant fields from Conference to ConferenceForm."""
        cf = ConferenceForm()
        for field in cf.all_fields():
            if hasattr(conf, field.name):
                # convert Date to date string; just copy others
                if field.name.endswith('Date'):
                    setattr(cf, field.name, str(getattr(conf, field.name)))
                else:
                    setattr(cf, field.name, getattr(conf, field.name))
            elif field.name == "websafeKey":
                setattr(cf, field.name, conf.key.urlsafe())
        if displayName:
            setattr(cf, 'organizerDisplayName', displayName)
        cf.check_initialized()
        return cf

    def _createConferenceObject(self, request):
        """Create or update Conference object, returning
        ConferenceForm/request."""
        # preload necessary data items
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)

        if not request.name:
            raise endpoints.BadRequestException(
                "Conference 'name' field required")

        # copy ConferenceForm/ProtoRPC Message into dict
        data = {field.name: getattr(request, field.name)
                for field in request.all_fields()}
        del data['websafeKey']
        del data['organizerDisplayName']

        # add default values for those missing (both data model & outbound
        # Message)
        for df in DEFAULTS:
            if data[df] in (None, []):
                data[df] = DEFAULTS[df]
                setattr(request, df, DEFAULTS[df])

        # convert dates from strings to Date objects; set month based on
        # start_date
        if data['startDate']:
            data['startDate'] = datetime.strptime(data['startDate'][:10],
                                                  "%Y-%m-%d").date()
            data['month'] = data['startDate'].month
        else:
            data['month'] = 0
        if data['endDate']:
            data['endDate'] = datetime.strptime(data['endDate'][:10],
                                                "%Y-%m-%d").date()

        # set seatsAvailable to be same as maxAttendees on creation
        if data["maxAttendees"] > 0:
            data["seatsAvailable"] = data["maxAttendees"]
        # generate Profile Key based on user ID and Conference
        # ID based on Profile key get Conference key from ID
        p_key = ndb.Key(Profile, user_id)
        c_id = Conference.allocate_ids(size=1, parent=p_key)[0]
        c_key = ndb.Key(Conference, c_id, parent=p_key)
        data['key'] = c_key
        data['organizerUserId'] = request.organizerUserId = user_id

        # create Conference, send email to organizer confirming
        # creation of Conference & return (modified) ConferenceForm
        print(Conference(**data).put().urlsafe())  # for debugging
        # Conference(**data).put().urlsafe()  # for production
        taskqueue.add(params={'email': user.email(),
                              'conferenceInfo': repr(request)},
                      url='/tasks/send_confirmation_email')
        return request

    @ndb.transactional()
    def _updateConferenceObject(self, request):
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)

        # copy ConferenceForm/ProtoRPC Message into dict
        data = {field.name: getattr(request, field.name)
                for field in request.all_fields()}

        # update existing conference
        conf = ndb.Key(urlsafe=request.inputString).get()
        # check that conference exists
        if not conf:
            raise endpoints.NotFoundException(
                'No conference found with key: %s' % request.inputString)

        # check that user is owner
        if user_id != conf.organizerUserId:
            raise endpoints.ForbiddenException(
                'Only the owner can update the conference.')

        # Not getting all the fields, so don't create a new object; just
        # copy relevant fields from ConferenceForm to Conference object
        for field in request.all_fields():
            data = getattr(request, field.name)
            # only copy fields where we get data
            if data not in (None, []):
                # special handling for dates (convert string to Date)
                if field.name in ('startDate', 'endDate'):
                    data = datetime.strptime(data, "%Y-%m-%d").date()
                    if field.name == 'startDate':
                        conf.month = data.month
                # write to Conference object
                setattr(conf, field.name, data)
        print(conf.put().urlsafe())  # For debugging
        # conf.put()  # For production
        prof = ndb.Key(Profile, user_id).get()
        return self._copyConferenceToForm(conf, getattr(prof, 'displayName'))

    @endpoints.method(ConferenceForm,
                      ConferenceForm,
                      path='conference',
                      http_method='POST',
                      name='createConference')
    def createConference(self, request):
        """Create new conference."""
        return self._createConferenceObject(request)

    @endpoints.method(CONF_POST_REQUEST,
                      ConferenceForm,
                      path='conference/{inputString}',
                      http_method='PUT',
                      name='updateConference')
    def updateConference(self, request):
        """Update conference w/provided fields & return w/updated info."""
        return self._updateConferenceObject(request)

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      ConferenceForm,
                      path='conference/{inputString}',
                      http_method='GET',
                      name='getConference')
    def getConference(self, request):
        """Return requested conference (by inputString)."""
        # get Conference object from request; bail if not found
        conf = ndb.Key(urlsafe=request.inputString).get()
        if not conf:
            raise endpoints.NotFoundException(
                'No conference found with key: %s' % request.inputString)
        prof = conf.key.parent().get()
        # return ConferenceForm
        return self._copyConferenceToForm(conf, getattr(prof, 'displayName'))

    @endpoints.method(message_types.VoidMessage,
                      ConferenceForms,
                      path='getConferencesCreated',
                      http_method='POST',
                      name='getConferencesCreated')
    def getConferencesCreated(self, request):
        """Return conferences created by user."""
        # make sure user is authed
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)

        # create ancestor query for all key matches for this user
        confs = Conference.query(ancestor=ndb.Key(Profile, user_id))
        prof = ndb.Key(Profile, user_id).get()
        # return set of ConferenceForm objects per Conference
        return ConferenceForms(items=[self._copyConferenceToForm(conf, getattr(
            prof, 'displayName')) for conf in confs])

    def _getQuery(self, request):
        """Return formatted query from the submitted filters."""
        q = Conference.query()
        inequality_filter, filters = self._formatFilters(request.filters)

        # If exists, sort on inequality filter first
        if not inequality_filter:
            q = q.order(Conference.name)
        else:
            q = q.order(ndb.GenericProperty(inequality_filter))
            q = q.order(Conference.name)

        for filtr in filters:
            if filtr["field"] in ["month", "maxAttendees"]:
                filtr["value"] = int(filtr["value"])
            formatted_query = ndb.query.FilterNode(
                filtr["field"], filtr["operator"], filtr["value"])
            q = q.filter(formatted_query)
        return q

    def _formatFilters(self, filters):
        """Parse, check validity and format user supplied filters."""
        formatted_filters = []
        inequality_field = None

        for f in filters:
            filtr = {field.name: getattr(f, field.name)
                     for field in f.all_fields()}

            try:
                filtr["field"] = FIELDS[filtr["field"]]
                filtr["operator"] = OPERATORS[filtr["operator"]]
            except KeyError:
                raise endpoints.BadRequestException(
                    "Filter contains invalid field or operator.")

            # Every operation except "=" is an inequality
            if filtr["operator"] != "=":
                # check if inequality operation has been used in previous
                # filters disallow the filter if inequality was performed on a
                # different field before track the field on which the

                if inequality_field and inequality_field != filtr["field"]:
                    raise endpoints.BadRequestException(
                        "Inequality filter is allowed on only one field.")
                else:
                    inequality_field = filtr["field"]

            formatted_filters.append(filtr)
        return (inequality_field, formatted_filters)

    @endpoints.method(ConferenceQueryForms,
                      ConferenceForms,
                      path='queryConferences',
                      http_method='POST',
                      name='queryConferences')
    def queryConferences(self, request):
        """Query for conferences."""
        conferences = self._getQuery(request)

        # need to fetch organiser displayName from profiles
        # get all keys and use get_multi for speed
        organisers = [(ndb.Key(Profile, conf.organizerUserId))
                      for conf in conferences]
        profiles = ndb.get_multi(organisers)

        # put display names in a dict for easier fetching
        names = {}
        for profile in profiles:
            names[profile.key.id()] = profile.displayName

        # return individual ConferenceForm object per Conference
        return ConferenceForms(items=[self._copyConferenceToForm(conf, names[
            conf.organizerUserId]) for conf in conferences])

# - - - Profile objects - - - - - - - - - - - - - - - - - - -

    def _copyProfileToForm(self, prof):
        """Copy relevant fields from Profile to ProfileForm."""
        # copy relevant fields from Profile to ProfileForm
        pf = ProfileForm()
        for field in pf.all_fields():
            if hasattr(prof, field.name):
                # convert t-shirt string to Enum; just copy others
                if field.name == 'teeShirtSize':
                    setattr(pf, field.name, getattr(TeeShirtSize,
                                                    getattr(prof, field.name)))
                else:
                    setattr(pf, field.name, getattr(prof, field.name))
        pf.check_initialized()
        return pf

    def _getProfileFromUser(self):
        """Return user Profile from datastore, creating new one if
        non-existent."""
        # make sure user is authed
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')

        user_id = getUserId(user)
        p_key = ndb.Key(Profile, user_id)
        profile = p_key.get()
        # create new Profile if not there
        if not profile:
            profile = Profile(key=p_key,
                              displayName=user.nickname(),
                              mainEmail=user.email(),
                              teeShirtSize=str(TeeShirtSize.NOT_SPECIFIED), )
            print(profile.put().urlsafe())  # for debugging
            # profile.put()  # for production

        return profile  # return Profile

    def _doProfile(self, save_request=None):
        """Get user Profile and return to user, possibly updating it first."""
        # get user Profile
        prof = self._getProfileFromUser()

        # if saveProfile(), process user-modifyable fields
        if save_request:
            for field in ('displayName', 'teeShirtSize'):
                if hasattr(save_request, field):
                    val = getattr(save_request, field)
                    if val:
                        setattr(prof, field, str(val))
                        # if field == 'teeShirtSize':
                        #    setattr(prof, field, str(val).upper())
                        # else:
                        #    setattr(prof, field, val)
                        print(prof.put().urlsafe())  # for debugging
                        # prof.put()  # for productiong

                        # return ProfileForm
        return self._copyProfileToForm(prof)

    @endpoints.method(message_types.VoidMessage,
                      ProfileForm,
                      path='profile',
                      http_method='GET',
                      name='getProfile')
    def getProfile(self, request):
        """Return user profile."""
        return self._doProfile()

    @endpoints.method(ProfileMiniForm,
                      ProfileForm,
                      path='profile',
                      http_method='POST',
                      name='saveProfile')
    def saveProfile(self, request):
        """Update & return user profile."""
        return self._doProfile(request)

# - - - Announcements - - - - - - - - - - - - - - - - - - - -

    @staticmethod
    def _cacheAnnouncement():
        """Create Announcement & assign to memcache; used by
        memcache cron job & putAnnouncement().
        """
        confs = Conference.query(ndb.AND(Conference.seatsAvailable <= 5,
                                         Conference.seatsAvailable > 0)).fetch(
                                             projection=[Conference.name])

        if confs:
            # If there are almost sold out conferences,
            # format announcement and set it in memcache
            announcement = ANNOUNCEMENT_TPL % (', '.join(conf.name
                                                         for conf in confs))
            memcache.set(MEMCACHE_ANNOUNCEMENTS_KEY, announcement)
        else:
            # If there are no sold out conferences,
            # delete the memcache announcements entry
            announcement = ""
            memcache.delete(MEMCACHE_ANNOUNCEMENTS_KEY)

        return announcement

    @endpoints.method(message_types.VoidMessage,
                      StringMessage,
                      path='conference/announcement/get',
                      http_method='GET',
                      name='getAnnouncement')
    def getAnnouncement(self, request):
        """Return Announcement from memcache."""
        return StringMessage(
            data=memcache.get(MEMCACHE_ANNOUNCEMENTS_KEY) or "")

# - - - Registration - - - - - - - - - - - - - - - - - - - -

    @ndb.transactional(xg=True)
    def _conferenceRegistration(self, request, reg=True):
        """Register or unregister user for selected conference."""
        retval = None
        prof = self._getProfileFromUser()  # get user Profile

        # check if conf exists given websafeConfKey
        # get conference; check that it exists
        wsck = request.inputString
        conf = ndb.Key(urlsafe=wsck).get()
        if not conf:
            raise endpoints.NotFoundException(
                'No conference found with key: %s' % wsck)

        # register
        if reg:
            # check if user already registered otherwise add
            if wsck in prof.conferenceKeysToAttend:
                raise ConflictException(
                    "You have already registered for this conference")

            # check if seats avail
            if conf.seatsAvailable <= 0:
                raise ConflictException("There are no seats available.")

            # register user, take away one seat
            prof.conferenceKeysToAttend.append(wsck)
            conf.seatsAvailable -= 1
            retval = True

        # unregister
        else:
            # check if user already registered
            if wsck in prof.conferenceKeysToAttend:

                # unregister user, add back one seat
                prof.conferenceKeysToAttend.remove(wsck)
                conf.seatsAvailable += 1
                retval = True
            else:
                retval = False

        # write things back to the datastore & return
        prof.put()
        conf.put()
        return BooleanMessage(data=retval)

    @endpoints.method(message_types.VoidMessage,
                      ConferenceForms,
                      path='conferences/attending',
                      http_method='GET',
                      name='getConferencesToAttend')
    def getConferencesToAttend(self, request):
        """Get list of conferences that user has registered for."""
        prof = self._getProfileFromUser()  # get user Profile
        conf_keys = [ndb.Key(urlsafe=wsck)
                     for wsck in prof.conferenceKeysToAttend]
        conferences = ndb.get_multi(conf_keys)

        # get organizers
        organisers = [ndb.Key(Profile, conf.organizerUserId)
                      for conf in conferences]
        profiles = ndb.get_multi(organisers)

        # put display names in a dict for easier fetching
        names = {}
        for profile in profiles:
            names[profile.key.id()] = profile.displayName

        # return set of ConferenceForm objects per Conference
        return ConferenceForms(items=[self._copyConferenceToForm(conf, names[
            conf.organizerUserId]) for conf in conferences])

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      BooleanMessage,
                      path='conference/{inputString}',
                      http_method='POST',
                      name='registerForConference')
    def registerForConference(self, request):
        """Register user for selected conference."""
        return self._conferenceRegistration(request)

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      BooleanMessage,
                      path='conference/{inputString}',
                      http_method='DELETE',
                      name='unregisterFromConference')
    def unregisterFromConference(self, request):
        """Unregister user for selected conference."""
        return self._conferenceRegistration(request, reg=False)

    # ####################################################################### #
    # Session methods                                                         #
    # ####################################################################### #

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
    # Session creation and retrieval                                          #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

    def _copySessionToForm(self, sess):
        sf = SessionForm()
        for field in sf.all_fields():
            if field.name == "websafeKey":
                setattr(sf, field.name, sess.key.urlsafe())
            if hasattr(sess, field.name):
                if (field.name == "date" or field.name == "time") and getattr(
                        sess, field.name):
                    setattr(sf, field.name, str(getattr(sess, field.name)))
                elif field.name == 'speakerKey':
                    # Handle possibility that key is a key or urlsafe key
                    if type(getattr(sess, field.name)) == ndb.Key:
                        setattr(sf, field.name, getattr(sess,
                                                        field.name).urlsafe())
                    else:
                        setattr(sf, field.name, getattr(sess, field.name))
                else:
                    setattr(sf, field.name, getattr(sess, field.name))
        sf.check_initialized()
        return sf

    @endpoints.method(SESS_POST_REQUEST,
                      SessionForm,
                      path='sessions',
                      http_method='POST',
                      name='createSession')
    def createSession(self, request):
        """Create new Session."""

        # get the conference
        conf = ndb.Key(urlsafe=request.inputString).get()
        # check that conference exists
        if not conf:
            raise endpoints.notfoundexception(
                'no conference found with key: %s' % request.inputString)

        # user verification
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)
        if user_id != conf.organizerUserId:
            raise endpoints.ForbiddenException(
                'Only the owner can update the conference.')

        # Verify name
        if not request.name:
            raise endpoints.BadRequestException(
                "Session 'name' field required")

        data = {}
        for field in request.all_fields():
            if field.name == "date" and getattr(request, field.name):
                data[field.name] = parse(getattr(request, field.name)).date()
            elif field.name == "time" and getattr(request, field.name):
                data[field.name] = parse(getattr(request, field.name)).time()
            elif field.name == "speakerKey" and getattr(request, field.name):
                data[field.name] = ndb.Key(
                    urlsafe=getattr(request, field.name))
            elif field.name == "inputString" or field.name == "websafeKey":
                pass
            else:
                data[field.name] = getattr(request, field.name)
        p_key = ndb.Key(urlsafe=request.inputString)
        s_id = Session.allocate_ids(size=1, parent=p_key)[0]
        s_key = ndb.Key(Session, s_id, parent=p_key)
        data['key'] = s_key
        key = Session(**data).put().urlsafe()

        # Put handling the featured speaker logic on the taskqueue
        if data['speakerKey']:
            taskqueue.add(params={'speaker': getattr(request, 'speakerKey'),
                                  'conf': conf.key.urlsafe()},
                          url='/tasks/handle_featured_speaker')

        return self._copySessionToForm(ndb.Key(urlsafe=key).get())

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      SessionForms,
                      path='sessions/{inputString}',
                      http_method='GET',
                      name='getConferenceSessions')
    def getConferenceSessions(self, request):
        """Given a conference, return all sessions."""
        wsck = request.inputString
        conf = ndb.Key(urlsafe=wsck).get()
        if not conf:
            raise endpoints.NotFoundException(
                'No conference found with key: %s' % wsck)
        sessionObjects = Session.query(ancestor=ndb.Key(urlsafe=wsck))
        sessionForms = [self._copySessionToForm(sess)
                        for sess in sessionObjects]
        return SessionForms(items=sessionForms)

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      SessionForms,
                      path='sessions/speaker/{inputString}',
                      http_method='GET',
                      name='getSessionsBySpeaker')
    def getSessionsBySpeaker(self, request):
        """Returns all Sessions matching the speaker."""
        urlSafeKey = request.inputString
        key = ndb.Key(urlsafe=urlSafeKey)
        sessionObjects = Session.query(Session.speakerKey == key).fetch()
        return SessionForms(
            items=[self._copySessionToForm(sess)  # TODO: Make sure works empty
                   for sess in sessionObjects])

    # GET_CONF_SESS_BY_TYPE_REQUEST = endpoints.ResourceContainer(
    #     wsck=message.StringField(1),
    #     sessType=messages.StringField(2), )

    @endpoints.method(GET_CONF_SESS_BY_TYPE_REQUEST,
                      SessionForms,
                      path='sessions/type/{wsck}',
                      http_method='POST',
                      name='getConferenceSessionsByType')
    def getConferenceSessionsByType(self, request):
        """Returns all Sessions matching the session type passed in the address."""
        q = Session.query(ancestor=ndb.Key(urlsafe=request.wsck))
        sessionObjects = q.filter(Session.typeOfSession == getattr(request,
                                                                   'sessType'))
        if sessionObjects:
            return SessionForms(items=[self._copySessionToForm(sess)
                                       for sess in sessionObjects])
        raise endpoints.NotFoundException(
            'No session found with session type {}'.format(
                request.inputString))

    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
    # Session wishlist methods                                                #
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

    def _getUserProf(self):
        """Abstracts out common portions of wishlist methods."""
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)
        prof = ndb.Key(Profile, user_id).get()
        return prof

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      message_types.VoidMessage,
                      path='wishlist/{inputString}',
                      http_method='POST',
                      name='addSessionToWishlist')
    def addSessionToWishlist(self, request):
        """Add session to user wishlist."""

        prof = self._getUserProf()
        sess = ndb.Key(urlsafe=request.inputString).get()
        if not sess:
            raise endpoints.NotFoundException(
                'No session found with key: {}'.format(request.inputString))

        # Add to wishlist (or make a new one if empty)

        if sess.key in prof.userWishlist:  # Handle attempt to add twice.
            raise endpoints.BadRequestException(
                'Session with key {} already in wishlist.'.format(
                    request.inputString))

        # I am confused because the feedback says that I am "directly assigning
        # user input to your database without any error checking" but that I
        # "can solve most of them by storing Keys not as Strings, but as Keys
        # themselves." But I think I am storing them as keys. They are defined
        # in models.py on Profile as
        #     userWishlist = ndb.KeyProperty(repeated=True)

        currentWishlist = getattr(prof, 'userWishlist')
        updatedWishlist = currentWishlist.append(
            sess.key) if currentWishlist else [sess.key]

        setattr(prof, 'userWishlist', updatedWishlist)
        print(prof.put().urlsafe())  # for debugging
        # prof.put()
        return message_types.VoidMessage()

    # Assignment interpreted per https://goo.gl/HlVAVK
    @endpoints.method(message_types.VoidMessage,
                      SessionForms,
                      path='wishlist',
                      http_method='GET',
                      name='getSessionsInWishlist')
    def getSessionsInWishlist(self, request):
        """Return all wishlisted sessions for signed-in user."""
        prof = self._getUserProf()

        wishlistKeys = getattr(prof, 'userWishlist')

        sessionForms = [self._copySessionToForm(key.get())
                        for key in wishlistKeys]
        return SessionForms(items=sessionForms)

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      message_types.VoidMessage,
                      path='wishlist/{inputString}',
                      http_method='DELETE',
                      name='deleteSessionInWishlist')
    def deleteSessionInWishlist(self, request):
        """Delete a session from wishlist."""
        prof = self._getUserProf()
        sess = ndb.Key(urlsafe=request.inputString).get()
        if not sess:
            raise endpoints.NotFoundException(
                'No session found with key: {}'.format(request.inputString))
        currentWishlist = getattr(prof, 'userWishlist')
        try:
            updatedWishlist = currentWishlist.remove(sess.key)
            if not updatedWishlist:
                setattr(prof, 'userWishlist', [])
            else:
                setattr(prof, 'userWishlist', updatedWishlist)
            print(prof.put().urlsafe())  # for debugging
            # prof.put()  # for production
        except ValueError:
            raise endpoints.NotFoundException(
                'Session with key {} not in wishlist.'.format(
                    request.inputString))
        return message_types.VoidMessage()

    # ####################################################################### #
    # Speaker methods                                                         #
    # ####################################################################### #

    @endpoints.method(SpeakerForm,
                      SpeakerForm,
                      path='speaker',
                      http_method='POST',
                      name='createSpeaker')
    def createSpeaker(self, request):
        """Create a speaker."""
        if not request.name:
            raise endpoints.BadRequestException(
                "Speaker 'name' field required")

        speaker = Speaker(name=request.name)
        key = speaker.put().urlsafe()  # for debugging
        print(key)  # for debugging
        return SpeakerForm(name=request.name, websafeKey=key)

    @endpoints.method(GET_OR_DELETE_REQUEST,
                      SpeakerForm,
                      path='speaker/{inputString}',
                      http_method='GET',
                      name='getSpeaker')
    def getSpeaker(self, request):
        """Given a websafe key, returns the appropriate speaker."""
        speaker = ndb.Key(urlsafe=request.inputString).get()
        if not speaker:
            raise endpoints.NotFoundException(
                'No conference found with key: %s' % request.inputString)
        return SpeakerForm(name=getattr(speaker, 'name'))

    @endpoints.method(message_types.VoidMessage,
                      StringMessage,
                      path='featured',
                      http_method='GET',
                      name='getFeaturedSpeaker')
    def getFeaturedSpeaker(self, request):
        """Returns the name of the featured speaker if set else empty
        string."""
        featured = memcache.get(MEMCACHE_FEATURED_KEY) or ""
        return StringMessage(data=featured)

    # ####################################################################### #
    # Queries                                                                 #
    # ####################################################################### #

    @endpoints.method(message_types.VoidMessage,
                      SessionForms,
                      path='query/noworkshopsorlatenights',
                      http_method='GET',
                      name='query_noWorkshopsOrLateNights')
    def query_noWorkshopsOrLateNights(self, request):
        """How would you handle a query for all non-workshop sessions before 7
        pm?"""

        # As suggested here: http://goo.gl/HtsZT2
        q1 = Session.query(Session.typeOfSession != 'Workshop').fetch(
            keys_only=True)
        q2 = Session.query(Session.time < time(19)).fetch(keys_only=True)
        sessionObjects = ndb.get_multi(set(q1).intersection(q2))
        sessionForms = [self._copySessionToForm(sess)
                        for sess in sessionObjects]
        return SessionForms(items=sessionForms)

    @endpoints.method(message_types.VoidMessage,
                      SessionForms,
                      path='query/afterlunchsessions',
                      http_method='GET',
                      name='query_afterLunchSessions')
    def query_afterLunchSessions(self, request):
        """Select only sessions starting after 1 p.m."""
        sessionObjects = Session.query(Session.time >= time(13)).fetch()
        sessionForms = [self._copySessionToForm(sess)
                        for sess in sessionObjects]
        return SessionForms(items=sessionForms)

    @endpoints.method(message_types.VoidMessage,
                      ConferenceForms,
                      path='query/smallconferences',
                      http_method='GET',
                      name='query_smallConferences')
    def query_smallConferences(self, request):
        """Select only conferences with fewer than 50 maxAttendees."""
        conferenceObjects = Conference.query(Conference.maxAttendees < 50)
        conferenceForms = []
        if conferenceObjects:
            for conf in conferenceObjects:
                displayName = None
                if hasattr(conf.key.parent().get(), 'displayName'):
                    displayName = getattr(conf.key.parent().get(),
                                          'displayName')
                form = self._copyConferenceToForm(conf, displayName)
                conferenceForms.append(form)
        return ConferenceForms(items=conferenceForms)

api = endpoints.api_server([ConferenceApi])  # register API

redpajama_set_name: RedPajamaGithub


You probably won't remember this, but I got to spend the day with you recently celebrating the birth of our Lord. This year was the 2nd Christmas that you have been part of my world… and it was so much better than last year.
Last year, you didn't have much interest in presents. You simply crawled around the floor wondering what the fuss was all about. Sure you liked playing with the rocking doe, and the other toys you got from Santa Claus, but you just didn't seem to understand too much of the holiday.
This year, you entered the house… you went straight for the toy box… then out of the corner of your eye – and with a little coaxing by me and Grandma Plaintiff – you noticed the Christmas tree and all of the presents that had been left by Santa Claus at our house for you, your parents and the rest of the family. Of course the race was on!
You helped us deliver each of the presents to the proper person. Often stopping along the way to try to open it yourself to be sure it wasn't actually meant for you. I never realized how smart you are, until I saw you helping each of us open our presents from Santa – ensuring that the present was actually for the person you delivered it to and not something meant for you.
Of course, we had a great feast to celebrate the holiday. We discovered that you absolutely love mashed potatoes. I think you had more of them rubbed around your face than you managed to eat, but it was fun watching you eat.
You let us all know the day was over when you said "Bye Bye", went down and got your favorite two presents and dragged them to the door. I love you. I hope that your new baby doll and Elmo provide you with lots of play time and enjoyment.
← Grandma Plaintiff kills her first deer!


SAN DIEGO, CA (July 7, 2010) – Taverncraft, a subsidiary of 3 Point Entertainment LLC, today announced the debut of a new series of premium-etched glassware based on the literary masterpieces The Hobbit and The Lord of the Rings. Available both as a 16 oz. pint glass and a large 25 oz. glass stein, each high-quality drinking glass is deep-etched with iconic artwork featuring two of the most popular Middle-earth taverns, The Prancing Pony and The Green Dragon. Perfect for everyday use or gift giving, these dishwasher and freezer-safe glasses are available now at hobbitsteins.com for August shipment.
Pint glasses are packaged in 2-glass sets and retail for $29.99 plus shipping and handling. Each 25 oz. glass stein is packaged individually and retails for $29.99 plus shipping and handling. Additional information, images and ordering details are available at hobbitsteins.com.
The Saul Zaentz Company d/b/a Middle-earth Enterprises f/k/a Tolkien Enterprises (SZC), is the holder of worldwide motion picture, legitimate stage, merchandising, and other rights in the literary works of J.R.R. Tolkien including The Lord of the Rings and The Hobbit. SZC has been producing and licensing films, stage productions and merchandise based on the works of Mr. Tolkien for more than 30 years. Its headquarters are located in Berkeley, California and its Middle-earth Enterprises' website may be found at www.middleearth.com.


text:
'Goodbye to the little angel who taught us the meaning of faith'
Posted: June 21st, 2012 ˑ Filled under: Relationships ˑ 1 Comment
The author, his wife Sasa and their first grandchild.
By Jun Ilagan
On May 9, our first grandchild died of respiratory complications from Aicardi Syndrome. Andrea was 4 months, 12 days old.
Six months in her mother's womb, the baby was diagnosed with the rare syndrome. Devastated would seem an understatement to describe how my son and his wife felt when the team of doctors at University of California San Francisco-Benioff Children's Hospital broke the news.
The doctors, together with a counselor, had painted this heart-wrenching scenario: Andrea may live for an hour, a day, a week, a month, a year, a decade. Or beyond. She may not be able to walk and talk, although aggressive therapy programs down the road may provide some, if not very limited, mobility and speech capability. She may not even know how to cry properly or even smile, much less let out a hearty baby laugh. She may even progressively lose her vision. And as if that isn't yet one debilitation too many, she will definitely have seizures.
The couple told us how the doctors at UCSF indicated to them that the choice of carrying the pregnancy through the term, or terminating it, was solely theirs. I would later realize just how special our granddaughter would be, and the core reasons she needed to live even for a brief period. I thank our son and daughter-in-law for their decision.
Andrea was born December 11. We shed tears of immense joy when the nurse brought her out of the delivery room for us to see her for the first time: She was the prettiest thing that ever came to my family. She looked every bit, from head to toe, a normal baby. There and then, we banished mental images of a syndrome-struck Andrea.
Before long, the celebratory mood was overtaken by hopefulness and prayerfulness. The seizures, which by most accounts in medical websites, normally start when the baby turns 3 to 6 months old at the earliest (many children with Aicardi experienced their first seizure only when they reached the age of 3 to 5 years old, and some even later), did start on Andrea just a few days after she was born. She also started showing signs of effortful breathing.
Aicardi Syndrome is mainly characterized by the partial or total absence of the corpus callosum, the structure that connects the left and right sides of the brain and which allows them to communicate. It was discovered only in 1965, and modern-day science and medicine have yet to fully unravel its whys and wherefores. Its cause is still unknown.
This female-only disorder is so rare there are only fewer than 850 reported cases in the U.S., according to medical websites. If my math is correct, that's just a little over 0.0005 percent of the total U.S. female population of about 157 million, as per 2010 Census.
After an entire month at UCSF's Neuro Intensive Care Nursery, Andrea arrived at her Castro Valley home. On the eve of the homecoming, our son made sure his younger brother and sister festooned the apartment with banners, buntings, and balloons to greet the little princess.
Never did my wife and I ever imagine our son, as well as our daughter-in-law, taking on the enormous task of caring for a unique baby. Our son, who as a kid was afraid of doctors and needles, was now Andrea's medicine man. He called doctors regularly to consult about any changes (or non-changes) in her seizure pattern, frequency, and intensity, as well as other issues. He cleaned her up and changed her nappies. But he never reneged on his cooking and other household chores.
Two days after we celebrated her second-month birthday, Andrea had to be rushed back to UCSF. She caught the cold virus and was not feeding very well. She had become a tad too weak and unresponsive. Increasingly, too, her breathing difficulty had become much more pronounced as she struggled for air. We didn't think she and our daughter-in-law would be in for a longer-haul at the hospital, but they were there for no less than six weeks.
During those six weeks, rarely did our son miss sleeping over at UCSF, his after-work destination and now his family's second home. If he didn't spend the night there, he has had to go home to check on their Castro Valley apartment, gather the mail, or retrieve clothes and personal stuff for his wife.
Even more rarely did my wife and I miss seeing Andrea at the hospital, and bonding with the couple over dinner every Wednesday, and lunch every Sunday after church. We were a picture of a happy family that maintained faith in the 'fighter' in Andrea, in her doctors, and above all, in the goodness of her Maker.
The Wednesday and Sunday sit-down family dining became an even more poignant ritual of bonding and sharing. Looking back though, we all had actually begun cementing family relationships the day Andrea, in her mother's womb, was diagnosed with Aicardi.
But I must admit that never before had I seen my son, next to our daughter-in-law, fully consumed with the noblest of missions: providing a lifeline to a human being. A complete departure from his computer-related work as Field Technology Specialist in downtown San Francisco, and car-tinkering hobby at home. But he told me one time that he often caught Andrea in tears during procedures, while just so much as meowing like a cat. My heart cried out: "Those moments must have been heartbreaking."
One day, our son had to sell his work commute car, which he had bought and given so much TLC long before Andrea's arrival. The couple had to buy a high-end stroller, one with the seat that supported my granddaughter's abnormal spine. He announced to her in jest: "See, princess …. Daddy sold his car to buy you your own car." My wife and I were there, and we couldn't have felt prouder of the couple.
They then soon noticed that Andrea was sweating even in cold weather, and notwithstanding the cool breeze a fan near her crib blew. On phone consultation with the UCSF doctor, they were told she could be working very hard to breathe despite the oxygen, and she might be requiring colder ambient temperature, day and night. So one evening, the couple shopped for a portable air conditioner, and vowed to negotiate yet again with PG&E on their electric bill on the strength of a medical certificate, as they had successfully done with Andrea's concentrator.
After a few more days, Andrea slipped into a very unresponsive state and was rushed to the emergency room of Valley Care Medical Center in Pleasanton, where UCSF-Benioff Children's maintains satellite operations. She died past 3:30 p.m. on a Wednesday, May 9.
For me and my wife, we now see Andrea as our little angel who had prepared our son and daughter-in-law for lifetime of parenthood. She taught them, and everyone of us in the family, the value of faith, patience, perseverance, and sacrifice.
Jun Ilagan is the editor of The Fil-Am Star weekly in San Francisco. This essay originally appeared in his paper.
Baby Andrea surrounded by her loving parents Brian and Rosalie Ilagan, grandparents Jun and Sasa Ilagan, Aunt Bianca and Uncle Jamil.
Adora wrote:
First, I would like to offer my condolences to you and your family for your loss.
As, I was reading your story, I was in tears!
May your Angel Rest in Peace always.


text:
Zebrzydowscy – polska rodzina szlachecka, herbu Radwan, sławna od nazwanego ich imieniem rokoszu Zebrzydowskiego. Okres jej znaczenia w historii Polski to druga połowa XVI i pierwsza połowa XVII wieku.

Ich rodzinnym gniazdem były Zebrzydowice w Małopolsce.

Znani członkowie
 Andrzej Zebrzydowski (1496–1560) – biskup krakowski
 Bartłomiej Zebrzydowski (?-?) -  kasztelan brzeski, woj. inowrocławski i brzeski
 Franciszek Florian Zebrzydowski (1615 - 1650) – kasztelan lubelski
 Florian Zebrzydowski (? - zm. 1562) – hetman polny koronny
 Jan Zebrzydowski (1583 - 1641) – miecznik koronny
 Józef Bernard Zebrzydowski (1642-1710), kanonik krakowski
 Kasper Zebrzydowski (?- 1584) – wojewoda kaliski
 Kasper Zebrzydowski (1592–1649) – kasztelan kaliski
 Michał Zebrzydowski (1613 - 1667) – wojewoda krakowski, ostatni przedstawiciel rodu
 Mikołaj Zebrzydowski (1553 - 1620) – marszałek wielki koronny
 Mikołaj Zebrzydowski (1494 - 1568) - starosta raciąski

Linki zewnętrzne

!

redpajama_set_name: RedPajamaWikipedia


text:
Volumes Archive > Vol.11 – 2005 > Vol.11 – 2005 – Vol.3 > THE BLACK SEA: A NEW TRANSPORT FOCUS FOR…
THE BLACK SEA: A NEW TRANSPORT FOCUS FOR EAST-WEST TRADE
A. Erhan Bakirci
Istanbul University,Engineering Faculty, Department of Maritime Transport and Management Engineering, Avcilar Kampus, Istanbul, TURKEY
The Black Sea is an inland sea between south-eastern Europe and Asia Minor. It is connected to the Oceans by way of the Mediterranean Sea via the Bosporus, the Sea of Marmara, the Dardanelles, the Aegean Sea, the Gibraltar Strait and the Suez Canal. The Black Sea served as a transport node for many centuries. The Silk Road is one of the World's oldest and historically most important trade routes and is the longest land bridge of the time between Asia and Europe for more than 1000 years. It lost its importance in times when the security of transit no longer existed. Most of the east-west trade hence shifted to shipping transport through the Suez Canal and Malacca Straits. With the collapse of the USSR in 1991 revitalisation of the Silk Road was taken up and gained momentum. TRACECA (TRAnsport Corridor Europe-Caucasus-Asia) is such a project to connect Europe to Central Asia. It is planned a continuous railway to run from the Yellow Sea to Western Europe via the Black Sea. Black Sea is to be transited back and forth by means of several ferry connections reaching seaport terminals at Northern Anatolia, Georgia, Bulgaria and Romania. TRACECA is designed to provide combined transport services. Combined transport, at the European level, is an individual mode of transport which makes maximum use of the advantages of the various modes of transport, namely railways and shipping and land transport where necessary. Combined transport thus implies the organisation of intermodal door-to-door transport by transferring the goods from one mode of transport to another without changing the loading unit. Ports in the Black Sea rim will gain importance when the TRACECA corridor is fully operational. Ports in the region however lagged behind changes and developments faced mostly with the advent of containerisation; and on the contrary, developments in the transportation modes in the area and nearby have necessitated the port industry be re-shaped for rational service(s) to shipping. The Black Sea has a vast – though not well organised and co-ordinated – hinterland; linking several continents and seas in all directions. In order to attract the shipping traffic by way of direct or feeder type connections, a common but co-ordinated port policy with a well-defined ,long term action plan set forth by the surrounding states' administrations is needed.
Keywords: Black Sea, Silk Road, TRACECA, transport corridor, combined transport, port


1. I can't decide whether to go or (to) stay.
2. I can't decide whether to go (or not).
2. = I can't decide whether (or not) to go.
1. I can't decide whether I am to go or I am (to) stay.
2. I can't decide whether I am to go (or not).
2. = I can't decide whether (or not) I am to go.
1. I can't decide whether I should go or stay.
2. I can't decide whether I should go (or not).
2. = I can't decide whether (or not) I should go.
1. I can't decide whether to go or whether to stay.
3. I didn't know whether to laugh or (to) cry.
4. The question was whether to receive the money (or not).
3. = The question was whether (or not) to receive the money.
5. I'm not sure (of/about) whether to go today or (to go) tomorrow.
5. I'm not sure whether to go today or (to go) tomorrow.


adidas Rugby has today begun the offensive against the British and Irish Lions by unveiling a range of special edition Super Rugby jerseys. The range is set to be worn by each team during the Investec Super Rugby season, and again in their highly-anticipated matches against the Lions in June.
The special edition Super Rugby jerseys have been specifically designed to showcase the territories each team represents and will protect against the British and Irish Lions. The five jerseys will feature a distressed map design of their respective club territory, with each of the 26 Provincial Unions that make up the Super Rugby regions represented.
"Each jersey is a visual representation of the pride they have in their region and what's become very clear to us in our conversations with team leaders is that losing this battle is not an option." Cartwright concludes.
NZR General Manager of the 2017 DHL NZ Lions Series, Nigel Cass, said the matches involving the Investec Super Rugby teams provide fans in the five regions the opportunity to see their teams take on the best players of the Northern Hemisphere.
"The fixtures involving the British & Irish Lions and Super Rugby teams are unique and will be remembered for years to come. It's great that the teams will wear adidas special edition jerseys for these matches and we're confident they will prove popular among fans." Cass concludes.
The special edition Super Rugby jerseys are available in kids and mens sizes, priced at $110 RRP and $150 RRP respectively. The range will be stocked at all adidas stores, rugby retailers and online at www.adidas.com.


Spectacular views of Chesapeake Bay from this dramatic setting in Bay Ridge. Elegant residence for the discerning buyer -- architectural millwork and moldings, custom hardwood floors, sweeping staircases and curated fixtures create a feeling of warmth and well-being. Enjoy the views from large windows that provide wonderful light and an airy feeling throughout the home. Large rooms with marvelous flow and cook's kitchen for entertaining in style. There is an elevator to all 4 levels including the top floor with covered loggia looking out to the Bay, luxurious master suite on the second floor; lower level with in-law/nanny suite, storage and 3-car garage. A perfect place to call home!
3 Garage Spaces. Circular Driveway, Paved Driveway.
Water Front, Exterior Lighting, Flood Lights, Outside Shower.
I am interested in 49 Bay Drive, Annapolis, MD 21403.


"Down," "Check," and "College" were produced by Century Media for Gore for President. To see transcripts of the ads, click.
"Down" is a textbook comparative ad: 15 seconds of mean words about George W. Bush (accompanied by an ominous hum), followed by 15 seconds of nice words about Al Gore (accompanied by a dynamic melody) to wash out the bad taste. The key phrase, "trickle down," is repeated three times, compounded by Gore's usual statement of devotion to "the middle class." On the screen, a giant $100 bill façade dissolves, amid the sound of trickling water, to reveal 62 measly cents—the amount Gore says Bush's tax cut would give "most taxpayers." Gore keeps using this figure despite recent articles debunking it. In the positive half of the ad, the scene switches from the impersonal currency metaphor to images of real people fulfilling real needs: a family eating a meal, a doctor examining a patient, college graduates celebrating their commencement. This neatly obscures the fact that many of these people could use a tax cut to pay for the same needs.
"Check" shifts the comparison strategy from half-and-half to side-by-side. It's a response to Bush's previous ad, " Notebook," which used side-by-side ledgers to compare the candidates' prescription drug plans. This is the closest thing in political advertising to a compliment—an acknowledgment that the other guy's ad not only is doing enough damage to require an explicit response, but also has implanted an image (in this case, the notebook) that viewers will instantly recognize.
Gore's ad crosses out the notebook but uses the same side-by-side format to compare the two plans, essentially inverting Bush's claims. Bush said Gore's plan would force seniors into a "drug HMO" or a "government HMO" (a claim that is just as false as Gore's 62-cents-a-day figure); Gore says Bush's plan would force seniors "into HMOs and insurance companies." The checkbook metaphor ("The truth about prescription drugs isn't in this notebook; it's in your checkbook") does convey an important truth obscured by Bush's ad: While government insurance costs money, so does private insurance.
"College" pays another compliment—this time, to Bush's "Education Recession" ad, which in my opinion is one of the cleverest spots aired this year. Bush has staked out this issue so early, often, and creatively that Gore can't beat him on it head-to-head. So Gore tries to outflank him in two ways. Rather than tackle Bush's arguments about what's wrong with K-12 education, Gore fast-forwards past those years, changing the focus to college tuition. At this level, Gore feels politically free to offer what Democrats won't offer for K-12 private schools: a hefty tuition tax break. Gore dubiously portrays this as more important than Bush's K-12 level. "I'm for a lifelong commitment to education," he says.
The second end-run in "College" is Gore's resort to class conflict. While Bush increasingly views every issue through the prism of "trust," Gore increasingly views every issue through the prism of the "middle class." That phrase appears four times in this commercial. The ad opens with pictures of men in suits in high-rise offices, as the announcer complains, "Big corporations get a tax write-off for education for their high-paid executives." Bill Clinton never had to invoke this kind of envy to justify education assistance. It was obvious that education was good, and voters would appreciate help paying for it. Gore's gratuitous use of "high-paid executives" as a foil for his college tax-break pitch is a testament to how fully—and perhaps dangerously—his campaign is committed to populist resentment.


Do you love jingles? Then you'll love this episode. Tom has made his very own set of two peas in a podcast jingles, but will any of them make it into the show? We get some updates of previous news stories in everyone's favourite regular feature "Binns' pick of the news". Luke tries to make sense of Tom's brand new feature "Do you know the video?". A policeman pretends to fall over, a priest does a cartwheel and find out which of the two peas used a polling station to flirt with old women.


We are back from the Thanksgiving break with a whole lot of new content ahead for this week! First, wanted to start with some signed cards we got back that, unfortunately, had no surveys.
The man who guided the New York Mets to the 1986 World Series championship (breaking the hearts of many Boston Red Sox fans, myself included, in the process) Johnson was a heck of a player during his 13-year career. A four-time All Star, his best season came in 1973 with the Atlanta Braves when he blasted 43 home runs and drove in 99 runs. Johnson teamed with Darrell Evans (41) and Hank Aaron (40) to become the first trio to hit 40-plus home runs in the same season for the same team. The feat was not equalled until 1996 when Andres Galarraga (47), Vinny Castilla (40) and Ellis Burks (40) did it for the Colorado Rockies. Galarraga (41), Castilla (40) and Larry Walker (49) did it again the next season for the Rockies as well.
A middle infielder like Johnson, Wine played Gold-Glove caliber defense for the Philadelphia Phillies and Montreal Expos from 1960-1972. A career .215 hitter, Wine did not have the power of Johnson either as he hit just 30 home runs in his entire career (or 13 fewer than Davey hit in 1973). Wine was also a coach and manager following his playing career. He skippered the 1985 Atlanta Braves and was a coach for the World Champion 1980 Philadelphia Phillies.
Dobson was a solid starting pitcher for five seasons with the Kansas City and then Oakland A's. Winning at least 10 games per year from 1967-1970, Dobson's career peaked in 1971 as he went 15-5 with a 3.81 ERA for Oakland. An injury to his elbow effectively ended his career following that season. He appeared in just 15 big league games over the next four years and retired following a minor-league stint in 1976.
This entry was posted in Swings and misses, Uncategorized and tagged A's, baseball, Dobson, history, Johnson, Mets, Orioles, Phillies, Wine. Bookmark the permalink.


As a lawyer who is also an adoptive parent, Mr. Kuenzel knows how stressful the adoption process can be. This is the kind of know-how you can rely on to help you navigate the process of adopting a child, bringing him or her home sooner. We can help ensure that we keep your parental rights in mind during the process. In cases where you are adopting a newborn, we can help confirm what visitation rights, if any, you grant to the biological parents. If you are in the Logan County area and are planning on adopting, do not leave things to chance. Get an attorney who knows exactly what to expect during the adoption process. Contact Kuenzel Law, PLLC, at 866-708-2460 or 304-310-4263 to begin planning your adoption today. You can also find out more by reaching out to us online.


text:
War Party è il nono album in studio del gruppo rock-satirico statunitense GWAR, pubblicato nel 2004.

Tracce

Collegamenti esterni


text:
Q: Link between interpolation and numerical series There are the following types of interpolation:

*

*polynomial interpolation

*trigonometric interpolation.

There are also the following types of numerical series:

*

*Taylor series, as a power series

*Fourier series, as a trigonometric series.

It feels like there is a link between the concepts of interpolation and numerical series. Is it just a coincidence, or it is more to say about it? I mean, given a series, can we plug the corresponding basis functions into an interpolation task?

redpajama_set_name: RedPajamaStackExchange


I am a HUGE fan of Laura Mercier complexion products (this foundation is a holy grail formula for me and this powder is one that I will never be without), so I was ecstatic to try these new Candleglow Perfecting powders. The Candleglow foundation was actually a tad too shiny for my combo skin, but these powders were an instant hit for me. To date, I have never found a powder that rivals my trusted Hourglass Ambient Lighting Powder. I typically like to use that powder to give my cheeks a natural glow and radiance, without adding too much color. However, my Hourglass powders have met their match with these new ones from Laura Mercier.
There are various shades suitable for different skin tones, though I find that I can use multiple shades for different purposes. Shade 1 is the perfect finishing powder for my cheeks and face. It helps to blur imperfections, give my skin a natural glow while never making it shiny. Shade 2 is one that I use before my blush or bronzer to give my cheeks a bit of warmth. The texture of each powder is smooth and finely milled which allows it to glide effortlessly onto the skin. The other shade I was sent to test was Shade 4, which I was afraid would be too dark but surprisingly worked as the most beautiful bronzer for my coloring.
I have all three swatched above, with Shade 1 being at the far left, followed by Shade 2 and then Shade 4. They all have a warm undertone but fall in the middle between being slightly yellow and slightly orange, which I find is perfect to add warmth and radiance to my skin without looking unnatural. I never thought I would see the day when something would rival (and on some days replace) my Hourglass powders, but these have impressed me greatly. Whether you are looking for a pressed powder to set your makeup without making it look too matte or you want to add a bit of warmth to your cheeks and face, these powders are so versatile and would work to create many different effects.
So excited to try these! I use the hourglass powders in the same way you do and I'm so surprised and intrigued that you find these to be a rival!
They really are quite exceptional!


Samsung Galaxy, Samsung Galaxy Note 9, Samsung Galaxy S2, Samsung Galaxy S2, Samsung Galaxy S3, Samsung Galaxy S3 Mini, Samsung Galaxy S4, Samsung Galaxy S4 Mini, Samsung Galaxy Note 1, Note 2, Note 3, Note 4, Note 5, Note 6, Samsung Galaxy S5, and S5 Mini, and S5 Active, Samsung Galaxy S6, S6 Edge, S6 Edge +, S6 Active, Samsung galaxy S7, S7 Edge, Samsung Galxy S8, S8 +, Samsung S9, S9 +, Note 8 and most Samsung phone models.
While your Samsung phone is in for repairs let us install a screen protector, phone case, and other accessories that will add protection and help make repairs a thing of the past. We carry a complete line of top of the line cases by OtterBox, LIFEPROOF, mophie, and PUREGEAR and screen protectors by NITRO.


SJI helped HBO go where it's never gone before, working with them from the ground up on launch materials for the introduction of HBO GO. From name development to on-air, online, print and out-of-home advertising, we produced a wide range of materials to help introduce and promote HBO GO to both consumer and trade audiences.
To launch the product, a campaign was created using a clean, simple graphic palette to keep the focus on HBO's immensely popular original programming, and to reinforce a simple, easy user experience.
After the initial launch, additional creative was developed to build the brand and promote specific offers from affiliates. On air spots featuring must-see moments from years of HBO originals were used to make an emotional appeal to consumers, while highlighting one of main benefits of HBO GO: the ability to watch entire series from first episode to last.
In all, over a dozen separate campaigns were created over the course of two years. The launch was a huge success, with over 3 million users downloading HBO GO within the first year. The product is now available through most major service providers and many other platforms.
SJI just 'gets' us. They take risks, they listen, and are truly collaborative partners in the process. They're also known for a mean turnaround time! We love them!


text:
Paulo César da Guia Almeida (, ) é um médico e político brasileiro.

Foi vereador em Cabo Frio. Em 2006 foi candidato a deputado federal, tendo ficado com a suplência. Em 6 de janeiro de 2009 assumiu definitivamente com a renúncia de Sandro Matos, eleito prefeito de São João de Meriti. No entanto, já vinha exercendo o cargo desde que Sandro Matos se licenciara para concorrer, em meados de 2008.

Deputados federais do Brasil pelo Rio de Janeiro
Vereadores de Cabo Frio


text:
Gonatocerus latipennis är en stekelart som beskrevs av Girault 1911. Gonatocerus latipennis ingår i släktet Gonatocerus och familjen dvärgsteklar. Inga underarter finns listade i Catalogue of Life.

Källor

Dvärgsteklar
latipennis


text:
Belonging, Believing, Becoming
Inclusive Church
Baptism and Thanksgiving
Home Café
30 August 1926 to 14 October 2017
Gwen was faithful, loving and giving and tried to follow Jesus as best as she could.
This eulogy was written by Gwen's daughter Janice.
Mum was born and brought up in Cheshire. Her mother, Hilda, came from Wrexham in North Wales; a milliner by profession. Her father, Tom, was from Wem in Shropshire; a self-made businessman who had the knack of knowing just when to move from buying and selling bicycles to run coal lorries local buses and a petrol station.
Gwendoline Mary, "Gwennie" was three quarters Welsh and very proud of it. She was an only child. At primary school in Tattenhall she fainted at the age of 9 in front of the other children in assembly. This was the first of many times, so the doctor put her on "Parishes Food" iron drink which she had to drink through a straw. It made her teeth go black! The anaemia stayed with her most of her life. Meantime Mum learnt lots of poems at school and was able to recite poems from memory. Her fascination and skill with words started there. Later in life she wrote many poems herself.
Dogs accompanied Mum throughout her life. In her teens she had two red setters at once. She always said dogs understand us better than humans!
On she went to Chester City High School. She did well again in English and went on to study it at Aberystwyth University. For her MA she wrote a thesis on John Wesley. At university she met Dad (Howard) studying science there. They got engaged, but unfortunately her father was opposed to her getting married to anyone – let alone a scientist and a Londoner! He wanted her to be a headteacher. She taught English at Secondary Schools and then Howard and Gwen married despite her Dad, since they'd waited 5 years already.
Mum gave up her teaching career (as was usual then) and they started married life together in Northampton. They moved to Didsbury in 1957. Mum had learned to play the organ with the organist of Chester Cathedral and she continued to play for services at St James and Emmanuel and elsewhere. She ran a Baby Fellowship in St James' old Sunday School in Sandhurst Road, playing and singing CSSM choruses with the mums and arranging speakers for them. The children went off to the big hall and played games organised by Miss Cheetham and Miss Brookes, kindly spinsters who helped Mum faithfully in this ministry for several years.
Opportunities came often to give talks herself to ladies groups, Withington Methodists, Mothers Unions in various places and at the Women's World Day of Prayer for instance. Mountain walks every Saturday were a source of possible anecdotes for her talks. "Oh I could use that in my next talk!" she'd exclaim delightedly. "I'll wangle it in somehow" she'd say if you questioned how it would relate to the theme she'd been given.
Howard and Gwen waiting to receive Maunday money from the Queen.
Mum and Dad ran a youth group at home for Bible discussions, prayer and playing Elvis records and the like. Mum was an official church visitor at Withington Hospital for many years. It was there that she picked up some teaching again in the Burns Unit. She taught some very sick children, a boy with spina bifida, a girl with facial cancer and a young man who was quadriplegic from a driving accident and wanted to do "O level" English. Very interesting and challenging work.
Apart from the hospital visiting, Mum was a faithful regular visitor of the elderly. There was a housebound old lady in Millgate Lane, Horace the verger and later Marjorie Bennett. Every Sunday afternoon Mum and the dog would go to see Marjorie after their walk by the river.
Mum was a wonderful storyteller. Often on walks in Northwest Scotland, late coming down a mountain, we'd forget how tired we were as she told us plots of Dickens stories, the Ancient Mariner or her John Wesley research.
Caring for Mum in this last four years has helped me get to know her better. I really admire her bravery in the face of total blindness. How did she cope? She was an extraordinarily strong lady and a huge presence even in her frail body at the end.
We were grateful for the help of Crossroads Care increasingly over the 4 years. I could confidently leave Mum in their care while I got back to my flat in London. The Care carers were just getting to know Mum when she was taken ill and were so nice about her. Also we are grateful for all the District Nurses did. Wonderful neighbours helped also to keep Mum in her own home right 'til the last week of her life. I'm most grateful to all those who have helped Mum in any way. She only had one week of serious illness at the end in hospital.
May she rest in peace.
Revd Christine Sandiford adds the following:
The Psalmist said, "Lord, you have been our dwelling-place in all generations."
Before the mountains were formed by the upheaval of the earth, before animals took their present shape, even before religion was formulated, before the first prayer was breathed, there was God.
I will remember Gwen as someone who loved the hills and winds, for whom walking in the mountains was a regular practice and a great blessing.
And I remember Gwen as one whose love for creation, especially animals, caused her to wrestle with readings in the Bible which talked of cruelty to animals – especially the blood sacrifice system in Ancient Israel.
And I remember Gwen as someone for whom prayer and worship – especially Welsh hymns and organ music – were deeply rooted in her life and restored her soul time and again.
Gwen was committed to her children (Janice and Andrew) and to her work (paid and unpaid) and to the church. And I remember that after retirement, Gwen and her beloved Howard went hospital visiting every week – visiting the wards and bringing cheer, a listening ear and a prayer in season, putting their faith into practice in so many ways.
And Gwen has left a legacy to us. She was devout and tried to follow Jesus as best as she could. Faithful is a word that describes the Gwen I know. And in these last years I saw the feisty side of her, too. She had spirit, even as her strength and sight faded. Life was not all rosy for Gwen, but her security was in the love of her beloved Howard, the selfless care by her daughter Janice, and in the God to whom she had entrusted everything.
As the Psalmist said:
The days of our life are seventy years, or perhaps eighty, if we are strong;
even then their span is only toil and trouble;
they are soon gone, and we fly away.
So teach us to count our days that we may gain a wise heart.
Gwen made not just 70, not just 80 but more than 90 years, yet remained attentive to her Maker, that she might gain a wise heart.
And she held fast to the promise in the Bible that "death has been swallowed up in victory" through our Lord Jesus Christ. Although our bodies are perishable, they will put on imperishability; though we are mortal, our bodies will put on immortality, and the dead will be raised. How?… When?… we cannot know, but "thanks be to God, who gives us the victory through our Lord Jesus Christ".
Some years ago, when I was an editor of the parish magazine here, Gwen offered us some of her poems, many of which we printed. It was hard to choose just one to share with you today – and I think Janice had the same problem herself choosing one poem for today, not to mention being allowed only a finite amount of music. Where does one stop? So many of Gwen's poems seem profound and appropriate, but I have chosen to read one called 'Completion'. She published this in 2001 when she was only 75:
I am older than my mother,
Younger than my father.
Strange riddle to solve!
And I begin to understand
Their way of thinking,
Now I am old too.
We have become contemporaries.
And when I see them
There will be such a sharing,
So much to remember,
And great gratitude.
We will laugh again
At his incredible humour,
And laugh again
At her wonderful Welshness.
Surely we will!
For all the good in life
Will be found again,
Shadows no longer, but reality,
And we are home.
And now Gwen is home – with her mum and dad, with Howard, with all those she loved who have gone before, and with the One she loves best of all because He loved her into life. He loved Gwen from before even the mountains were formed and forever.
And someday we too will reach that greater home and meet again. Someday we will all be with those we love. Someday this separation called death will be no more. Thanks be to God.
Sign up for the SJE weekly enews
(check spam folder for opt-in email)
New sidebar text
Since we are surrounded by so great a cloud of witnesses, let us also lay aside every weight and run with perseverance the race that is set before us.
Hebrews 12 v1
Our own Cloud of Witnesses honours those in our community who we have loved. Their lives continue to influence our own as we live out our faith in Christ.
Ernest Camotta
David Edmondson
Margaret Greaves
John Gunstone
Dorothy Heath
Doreen King-Hele
Lizzie Lowe
Jean McFarlane
Marjorie Morris
Stan Morris
Alex Royle
Colin Vickerman
Eleanor Vickerman
Dirk van Zuylen
The office is located in the Parish Centre, behind Emmanuel church, and is open five days a week
Nurturing our shared life requires money. All of ours comes from the members of our church family
St James and Emmanuel is your church and you can help shape its life and serve its neighbours
Accessibility code! Works?
T- | T+ | Reset
Data Privacy Notice · © 2020 · St James & Emmanuel
Parish Office, Parish Centre, Emmanuel, 6 Barlow Moor Road, Didsbury M20 6TR.